1. åå¿è åãã® Git ã®è©³çŽ°ã¬ã€ã
ä»æ¥ã¯ããŒãžã§ã³ç®¡çã·ã¹ãã ãã€ãŸã Git ã«ã€ããŠèª¬æããŸãã
ãã®ããŒã«ãç¥ããç解ããããšããªããã°ãæ¬æ Œçãªããã°ã©ããŒã«ãªãããšã¯ã§ããŸããããã¡ãããç¶ç¶çã«äœ¿çšããããã«ãGit ã®ãã¹ãŠã®ã³ãã³ããšæ©èœãé ã®äžã«å ¥ããŠããå¿ èŠã¯ãããŸãããäœãèµ·ãã£ãŠãããããã¹ãŠç解ããã®ã«åœ¹ç«ã€äžé£ã®ã³ãã³ããç¥ã£ãŠããå¿ èŠããããŸãã
Git ã®åºæ¬
Git ã¯ã³ãŒãã®åæ£ããŒãžã§ã³ç®¡çã·ã¹ãã ã§ãããªããããå¿ èŠãªã®ã§ãããã? ããŒã ã«ã¯ãä»äºã管çããããã®äœããã®ã·ã¹ãã ãå¿ èŠã§ããæéã®çµéãšãšãã«çºçããå€åã远跡ããããã«å¿ èŠã§ãã
ã€ãŸããã©ã®ãã¡ã€ã«ãã©ã®ããã«å€æŽãããã®ãã段éçã«ç¢ºèªã§ããå¿ èŠããããŸããããã¯ãåäžã¿ã¹ã¯ã®ã³ã³ããã¹ãã§äœãå€æŽããããã調æ»ããå€æŽãå ã«æ»ãããšãã§ããå Žåã«ç¹ã«éèŠã§ãã
次ã®ç¶æ³ãæ³åããŠã¿ãŸããããåäœããã³ãŒããããããã®å 容ã¯ãã¹ãŠè¯å¥œã§ãããäœããæ¹åãŸãã¯åŸ®èª¿æŽããããšã«ããŸããã倧ããããšã§ã¯ãããŸããããç§ãã¡ã®ãæ¹è¯ãã«ããããã°ã©ã ã®æ©èœã®ååãå£ããåäœã§ããªããªããŸããããã§ãã©ãããïŒGit ããªããã°ããã¹ãŠãå ã®ç¶æ ã§ãã£ãããšãæãåºãããšãäœæéã座ã£ãŠèããªããã°ãªããŸãããããããGit ã䜿çšãããšãã³ããããããŒã«ããã¯ããã ãã§æžã¿ãŸãã
ãããã¯ã2 人ã®éçºè ãåæã«èªåã®ã³ãŒããå€æŽããå Žåã¯ã©ããªãã§ãããã? Git ã䜿çšããªãå Žåã¯ãå ã®ã³ãŒã ãã¡ã€ã«ãã³ããŒããåå¥ã«å€æŽããŸããäž¡æ¹ãšãã¡ã€ã³ ãã£ã¬ã¯ããªã«å€æŽãè¿œå ããããšããæ¥ãŸãããã®å Žåã©ãããŸãã?
Git ã䜿çšããã°ãã®ãããªåé¡ã¯çºçããŸããã
Gitã®ã€ã³ã¹ããŒã«
ã³ã³ãã¥ãŒã¿ã« Java ãã€ã³ã¹ããŒã«ããŸããã ãã®ããã»ã¹ã¯ããªãã¬ãŒãã£ã³ã° ã·ã¹ãã ã«ãã£ãŠè¥å¹²ç°ãªããŸãã
Windows ãžã®ã€ã³ã¹ããŒã«
ãã€ãã®ããã«ãexe ãã¡ã€ã«ãããŠã³ããŒãããŠå®è¡ããå¿ èŠããããŸããããã§ã¯ãã¹ãŠãç°¡åã§ããæåã® Google ãªã³ã¯ãã¯ãªãã¯ããã€ã³ã¹ããŒã«ãå®è¡ããã ãã§ãããããè¡ãã«ã¯ãWindows ãæäŸãã bash ã³ã³ãœãŒã«ã䜿çšããŸãã
Windows ã§ã¯ãGit Bash ãå®è¡ããå¿ èŠããããŸãã[ã¹ã¿ãŒã] ã¡ãã¥ãŒã§ã¯æ¬¡ã®ããã«è¡šç€ºãããŸãã
ããã§ãã³ãã³ã ããã³ããã䜿çšããŠäœæ¥ã§ããããã«ãªããŸããã
Git ãéãããã«æ¯åãããžã§ã¯ãã®ãããã©ã«ããŒã«ç§»åããå¿ èŠããªãããã«ããã«ã¯ãå¿ èŠãªãã¹ãæå®ããŠããŠã¹ã®å³ãã¿ã³ã§ãããžã§ã¯ã ãã©ã«ããŒå ã®ã³ãã³ã ããã³ãããéããŸãã
Linux ãžã®ã€ã³ã¹ããŒã«
Git ã¯å ã Linux ã«ãŒãã«éçºçšã«äœæãããããŒã«ã§ãããããéåžžãGit 㯠Linux ãã£ã¹ããªãã¥ãŒã·ã§ã³ã®äžéšã§ããããã§ã«ã€ã³ã¹ããŒã«ãããŠããŸããããããããã§ãªãç¶æ³ããããŸãã確èªããã«ã¯ãã¿ãŒããã«ãéã㊠git --version ãšèšè¿°ããå¿ èŠããããŸããããããããçããåŸãããå Žåã¯ãäœãã€ã³ã¹ããŒã«ããå¿ èŠã¯ãããŸããã
ã¿ãŒããã«ãéããŠã€ã³ã¹ããŒã«ããŸããUbuntu ã®å Žåã¯ã次ã®ããã«èšè¿°ããå¿ èŠããããŸã: sudo apt-get install gitãããã§ãã©ã®ã¿ãŒããã«ã§ã Git ã䜿çšã§ããããã«ãªããŸãã
macOS ã«ã€ã³ã¹ããŒã«ãã
ããã§ããæåã« Git ããã§ã«ååšãããã©ããã確èªããå¿ èŠããããŸã (Linux ã®å Žåãšåããäžèšãåç §)ã
ãæã¡ã§ãªãå Žåã¯ãææ°ããŒãžã§ã³ãããŠã³ããŒãããã®ãæãç°¡åãªæ¹æ³ã§ããXcode ãã€ã³ã¹ããŒã«ãããŠããå ŽåãGit ã¯èªåçã«ã€ã³ã¹ããŒã«ãããŸãã
Gitã®èšå®
Git ã«ã¯ãäœæ¥ãéä¿¡ãããŠãŒã¶ãŒã®ãŠãŒã¶ãŒèšå®ããããŸããGit ã¯ã³ãããã®äœææã«ãã®æ å ±ã Author ãã£ãŒã«ããšããŠååŸãããããããã¯çã«ããªã£ãŠãããå¿ èŠã§ãã
次ã®ã³ãã³ããå®è¡ããŠããã¹ãŠã®ãããžã§ã¯ãã®ãŠãŒã¶ãŒåãšãã¹ã¯ãŒããèšå®ããŸãã
ç¹å®ã®ãããžã§ã¯ã (å人ãããžã§ã¯ããªã©) ã®äœæè ãå€æŽããå¿ èŠãããå Žåã¯ãã--globalããåé€ã§ããŸããããã«ããã次ã®ããšãããããŸãã
ã¡ãã£ãšããçè«
ãã®ãããã¯ã«å ¥ãã«ã¯ãããã€ãã®æ°ããèšèãè¡åã玹ä»ããå¿ èŠããããŸã...ããããªããšã話ãããšãäœããªããªã£ãŠããŸããŸãããã¡ãããããã¯è±èªããæ¥ãå°éçšèªãªã®ã§ãæ¬åŒ§å ã«èš³ãè¿œå ããŸãã
ã©ã®ãããªèšèãè¡åã§ããããïŒ
- gitãªããžããª
- å°å¿µ
- ãã©ã³ã
- ããŒãž
- è¡çª
- åŒã
- æŒã
- äžéšã®ãã¡ã€ã« (.gitignore) ãç¡èŠããæ¹æ³
çã ã
Git ã®ã¹ããŒã¿ã¹
Git ã«ã¯ãç解ããŠèŠããŠããå¿ èŠã®ããããã€ãã®åããããŸãã
- 远跡ãããŠããªã
- ä¿®æ£ããã
- æŒåºããã
- é¢äžãã
ãããã©ã®ããã«ç解ããã°ããã§ãããã?
ãããã¯ãã³ãŒããå«ããã¡ã€ã«ã«é©çšãããã¹ããŒã¿ã¹ã§ããèšãæããã°ããããã®ã©ã€ããµã€ã¯ã«ã¯é垞次ã®ããã«ãªããŸãã
- äœæãããŠããªããžããªã«ãŸã è¿œå ãããŠããªããã¡ã€ã«ã¯ããæªè¿œè·¡ãã¹ããŒã¿ã¹ã«ãªããŸãã
- Git ãªããžããªã«æ¢ã«è¿œå ãããŠãããã¡ã€ã«ã«å€æŽãå ãããšããã®ã¹ããŒã¿ã¹ã¯ãå€æŽæžã¿ãã«ãªããŸãã
- å€æŽãããã¡ã€ã«ã®äžããå¿ èŠãªãã®ãéžæã (ããšãã°ãã³ã³ãã€ã«æžã¿ã¯ã©ã¹ã¯å¿ èŠãããŸãã)ããããã®ã¯ã©ã¹ã¯ãã¹ããŒãžã³ã°ãã¹ããŒã¿ã¹ã«å€æŽãããŸãã
- ã¹ããŒãžã³ã°ãããç¶æ ã§æºåããããã¡ã€ã«ããã³ããããäœæãããGit ãªããžããªã«å ¥ããããŸãããã®åŸããã¹ããŒãžã³ã°æžã¿ãã¹ããŒã¿ã¹ã®ãã¡ã€ã«ã¯ãªããªããŸãããã ããã¹ããŒã¿ã¹ããå€æŽæžã¿ãã®ãã¡ã€ã«ããŸã ååšããå¯èœæ§ããããŸãã
èŠãç®ã¯ãããªæãã§ãã
ã³ããããšã¯äœã§ãã?
ããŒãžã§ã³ç®¡çã«é¢ããŠã¯ãã³ããããäž»èŠãªã€ãã³ãã§ããããã«ã¯ãã³ãããã®éå§ä»¥éã«è¡ããããã¹ãŠã®å€æŽãå«ãŸããŸããã³ãããã¯ãåäžãªã³ã¯ããããªã¹ãã®ããã«çžäºã«ãªã³ã¯ãããŸãã
å ·äœçã«ã¯ãæåã®ã³ãããããããŸãã2 çªç®ã®ã³ããããäœæããããšã(2 çªç®ã®) ã³ãããã¯æåã®ã³ãããã®åŸã«äœãæ¥ãããèªèããŸãããã®ããã«ããŠãæ å ±ã远跡ããããšãã§ããŸãã
ã³ãããã«ã¯ãã¡ã¿ããŒã¿ãšåŒã°ããç¬èªã®æ å ±ããããŸãã
- ã³ãããã®äžæã®èå¥åãã³ããããèŠã€ããããã«äœ¿çšã§ããŸãã
- ã³ãããã®äœæè ã®åå (ã³ããããäœæãã人)
- ã³ããããäœæãããæ¥ä»
- ã³ãããäžã«äœãè¡ããããã説æããã³ã¡ã³ã
ãã®æ§åã¯æ¬¡ã®ãšããã§ãã
æ¯åºãšã¯äœã§ãã?
ãã©ã³ãã¯ãããã³ããããžã®ãã€ã³ã¿ã§ããã³ãããã¯ã©ã®ã³ããããèªåããåã«ããããç¥ã£ãŠããããããã©ã³ããã³ããããæãå Žåã以åã®ãã¹ãŠã®ã³ãããããã®ã³ãããã«é©çšãããŸãã
ãããã£ãŠãåãã³ããããæããã©ã³ããå¿ èŠãªæ°ã ãæã€ããšãã§ãããšèšããŸãã
äœæ¥ã¯ãã©ã³ãå ã§è¡ããããããæ°ããã³ããããäœæããããšããã©ã³ãã¯ãã€ã³ã¿ãããæ°ããã³ãããã«ç§»åããŸãã
Git ãå§ãã
ããŒã«ã« ãªããžããªã ãã§ãªãããªã¢ãŒã ãªããžããªã§ãäœæ¥ã§ããŸãã
å¿ èŠãªã³ãã³ããç·Žç¿ããã«ã¯ãããŒã«ã« ãªããžããªã«éå®ããããšãã§ããŸãããã¹ãŠã®ãããžã§ã¯ãæ å ±ã¯ããŒã«ã«ã® .git ãã©ã«ããŒã«ã®ã¿ä¿åãããŸãã
ãªã¢ãŒã ãªããžããªã«ã€ããŠè©±ããŠããå Žåããã¹ãŠã®æ å ±ã¯ãªã¢ãŒã ãµãŒããŒäžã®ã©ããã«ä¿åãããŸããããŒã«ã«ã«ä¿åãããã®ã¯ãããžã§ã¯ãã®ã³ããŒã®ã¿ã§ããããŒã«ã« ã³ããŒã«å ããããå€æŽã¯ããªã¢ãŒã ãªããžããªã«ããã·ã¥ (git Push) ã§ããŸãã
ãããšä»¥äžã®èª¬æã§ã¯ãã³ã³ãœãŒã«ã§ã® Git ã®æäœã«ã€ããŠèª¬æããŸãããã¡ãããäœããã® GUI ããŒã¹ã®ãœãªã¥ãŒã·ã§ã³ (IntelliJ IDEA ãªã©) ã䜿çšããããšãã§ããŸããããŸããå®è¡ãããŠããã³ãã³ããšãã®æå³ãç解ããå¿ èŠããããŸãã
ããŒã«ã« ãªããžããªã§ã® Git ã®æäœ
ããŒã«ã« ãªããžããªãäœæããã«ã¯ã次ã®ããã«èšè¿°ããå¿ èŠããããŸãã
ããã«ãããã³ã³ãœãŒã«ã®çŸåšã®ãã£ã¬ã¯ããªã«é ã .git ãã©ã«ããŒãäœæãããŸãã
.git ãã©ã«ããŒã«ã¯ãGit ãªããžããªã«é¢ãããã¹ãŠã®æ å ±ãä¿åãããŸããåé€ããªãã§ãã ãã;ïŒ
次ã«ããã¡ã€ã«ããããžã§ã¯ãã«è¿œå ããããæªè¿œè·¡ãã¹ããŒã¿ã¹ãå²ãåœãŠãããŸããäœæ¥ã®çŸåšã®ã¹ããŒã¿ã¹ã確èªããã«ã¯ã次ã®ããã«èšè¿°ããŸãã
ç§ãã¡ã¯ master ãã©ã³ãã«ããŸããå¥ã®ãã©ã³ãã«åãæ¿ãããŸã§ããã«æ®ããŸãã
ããã¯ãå€æŽãããããŸã ãã¹ããŒãžã³ã°ãã¹ããŒã¿ã¹ã«è¿œå ãããŠããªããã¡ã€ã«ã瀺ããŸãããããããstagedãã¹ããŒã¿ã¹ã«è¿œå ããã«ã¯ããgit addããšèšè¿°ããå¿ èŠããããŸããããã«ã¯ããã€ãã®ãªãã·ã§ã³ããããŸããããšãã°ã次ã®ãšããã§ãã
- git add -A â ãã¹ãŠã®ãã¡ã€ã«ããã¹ããŒãžã³ã°ãã¹ããŒã¿ã¹ã«è¿œå ããŸã
- git add ãâ ãã®ãã©ã«ããŒãšãã¹ãŠã®ãµããã©ã«ããŒãããã¹ãŠã®ãã¡ã€ã«ãè¿œå ããŸããåºæ¬çã«ã¯åã®ãã®ãšåãã§ãã
- git add <file name> â ç¹å®ã®ãã¡ã€ã«ãè¿œå ããŸããããã§ã¯ãæ£èŠè¡šçŸã䜿çšããŠãç¹å®ã®ãã¿ãŒã³ã«åŸã£ãŠãã¡ã€ã«ãè¿œå ã§ããŸããããšãã°ã git add *.java: ããã¯ãjava æ¡åŒµåãæã€ãã¡ã€ã«ã®ã¿ãè¿œå ããããšãæå³ããŸãã
æåã® 2 ã€ã®ãªãã·ã§ã³ã¯æããã«åçŽã§ããææ°ã®æ©èœãè¿œå ããããšããã«é¢çœããªãã®ã§ã次ã®ããã«æžããŠã¿ãŸãããã
ã¹ããŒã¿ã¹ã確èªããã«ã¯ããã§ã«ç¥ãããŠããã³ãã³ãã䜿çšããŸãã
ããã§ã¯ãæ£èŠè¡šçŸãæ£ããæ©èœããŠããããšãããããŸããtest_resource.txt ã¯ãã¹ããŒãžã³ã°æžã¿ãã¹ããŒã¿ã¹ã«ãªããŸããã
ãããŠæåŸã«ãããŒã«ã« ãªããžããªãæäœããæåŸã®æ®µé (ãªã¢ãŒã ãªããžããªãæäœããå Žåã¯ãã 1 ã€ãããŸã ;)) â æ°ããã³ããããäœæããŸãã
次ã¯ããã©ã³ãäžã®ã³ãããå±¥æŽã確èªããããã®åªããã³ãã³ãã§ããããã掻çšããŠã¿ãŸããã:
ããã§ã¯ãæåã®ã³ããããäœæãããŠãããã³ãã³ãã©ã€ã³ã§æå®ããããã¹ããå«ãŸããŠããããšãããããŸãããã®ããã¹ãã§ã¯ããã®ã³ãããäžã«äœãè¡ãããããå¯èœãªéãæ£ç¢ºã«èª¬æããå¿ èŠãããããšãç解ããããšãéåžžã«éèŠã§ããããã¯å°æ¥äœåºŠã圹ç«ã¡ãŸãã
ãŸã ç ãã«å°±ããŠããªã奜å¥å¿æºçãªèªè ã¯ãGitTest.java ãã¡ã€ã«ã«äœãèµ·ãã£ãã®ãçåã«æã£ãŠãããããããŸãããä»ãã調ã¹ãŠã¿ãŸãããããããè¡ãã«ã¯ã以äžã䜿çšããŸãã
ã芧ã®ãšããããŸã ã远跡ãããŠããªããç¶æ ã§åŸ æ©äžã§ããããããããããããžã§ã¯ãã«ãŸã£ããè¿œå ããããªãå Žåã¯ã©ãããã°ããã§ãããã? æã ããããããšãèµ·ãããŸãã
ç©äºãããã«é¢çœãããããã«ãtest_resource.txt ãã¡ã€ã«ãå€æŽããŠã¿ãŸããããããã«ããã¹ããè¿œå ããŠã¹ããŒã¿ã¹ã確èªããŠã¿ãŸãããã
ããã§ã¯ããæªè¿œè·¡ãã¹ããŒã¿ã¹ãšãå€æŽæžã¿ãã¹ããŒã¿ã¹ã®éããæ確ã«ããããŸãã
GitTest.java ã¯ãæªè¿œè·¡ãã§ãããtest_resource.txt ã¯ãå€æŽæžã¿ãã§ãã
ãã¡ã€ã«ãå€æŽãããç¶æ ã«ãªã£ãã®ã§ããã¡ã€ã«ã«å ããããå€æŽã調ã¹ãããšãã§ããŸããããã¯ã次ã®ã³ãã³ãã䜿çšããŠå®è¡ã§ããŸãã
ã€ãŸããããã§ç§ãããã¹ã ãã¡ã€ã«ã«è¿œå ããå 容ãã¯ã£ãããšããããŸã: hello world!
ããã¹ã ãã¡ã€ã«ã«å€æŽãè¿œå ããã³ããããäœæããŸãããã
ãã¹ãŠã®ã³ãããã確èªããã«ã¯ã次ã®ããã«èšè¿°ããŸãã
ã芧ã®ãšãããçŸåš 2 ã€ã®ã³ãããããããŸãã
åãæ¹æ³ã§ GitTest.java ãè¿œå ããŸããããã«ã¯ã³ã¡ã³ãã¯ãããŸãããã³ãã³ãã ãã§ãã
.gitignore ã®æäœ
æããã«ããªããžããªã«ã¯ãœãŒã¹ ã³ãŒãã®ã¿ãä¿æããä»ã«ã¯äœãä¿æããªãã§ãã ãããããã§ã¯ãä»ã«äœãããåŸãã§ããããïŒå°ãªããšããéçºç°å¢ã«ãã£ãŠçæãããã³ã³ãã€ã«æžã¿ã®ã¯ã©ã¹ããã¡ã€ã«ã
Git ã«ããããç¡èŠããããã«æ瀺ããã«ã¯ãç¹å¥ãªãã¡ã€ã«ãäœæããå¿ èŠããããŸãããããå®è¡ããŸãããããžã§ã¯ãã®ã«ãŒãã« .gitignore ãšãããã¡ã€ã«ãäœæããŸãããã®ãã¡ã€ã«ã®åè¡ã¯ãç¡èŠãããã¿ãŒã³ãè¡šããŸãã
ãã®äŸã§ã¯ã.gitignore ãã¡ã€ã«ã¯æ¬¡ã®ããã«ãªããŸãã
ã¿ãŒã²ãã/
*.iml
.idea/
èŠãŠã¿ãŸããã:
- æåã®è¡ã¯ã.class æ¡åŒµåãæã€ãã¹ãŠã®ãã¡ã€ã«ãç¡èŠããŸãã
- 2 è¡ç®ã¯ããã¿ãŒã²ããããã©ã«ããŒãšããã«å«ãŸãããã¹ãŠã®ãã®ãç¡èŠããããšã§ãã
- 3 è¡ç®ã¯ã.iml æ¡åŒµåãæã€ãã¹ãŠã®ãã¡ã€ã«ãç¡èŠããŸãã
- 4 è¡ç®ã¯ .idea ãã©ã«ããŒãç¡èŠããŸãã
äŸã䜿ã£ãŠã¿ãŸããããã©ã®ããã«åäœãããã確èªããããã«ãã³ã³ãã€ã«ããã GitTest.class ããããžã§ã¯ãã«è¿œå ãããããžã§ã¯ãã®ã¹ããŒã¿ã¹ã確èªããŠã¿ãŸãããã
æããã«ã(git add -A ã䜿çšããŠ) ã³ã³ãã€ã«ãããã¯ã©ã¹ãäœããã®åœ¢ã§èª€ã£ãŠãããžã§ã¯ãã«è¿œå ããããªãã®ã¯æããã§ãããããè¡ãã«ã¯ã.gitignore ãã¡ã€ã«ãäœæããåã«èª¬æãããã®ããã¹ãŠè¿œå ããŸãã
次ã«ãã³ãããã䜿çšã㊠.gitignore ãã¡ã€ã«ããããžã§ã¯ãã«è¿œå ããŸãããã
ãããŠä»ãæ£å¿µå Žã§ããã远跡ãããŠããªããã³ã³ãã€ã«æžã¿ã¯ã©ã¹ GitTest.class ããããããã Git ãªããžããªã«è¿œå ããããããŸããã§ããã
ããã§ã.gitignore ãã¡ã€ã«ã®å¹æã確èªã§ããã¯ãã§ãã
å®å šïŒ.gitignore +1 :)
ãã©ã³ãã®æäœ
åœç¶ã®ããšãªããã1 ã€ã®ãã©ã³ãã ãã§äœæ¥ããã®ã¯å€ç¬ãªéçºè ã«ãšã£ãŠã¯äžäŸ¿ã§ãããããŒã ã«è€æ°äººãããå Žåã¯äžå¯èœã§ãããããæ¯åºãããçç±ã§ãã
ãã©ã³ãã¯ã³ããããžã®ç§»åå¯èœãªãã€ã³ã¿ã«ãããŸããã
ãã®ããŒãã§ã¯ãããŸããŸãªãã©ã³ãã§ã®äœæ¥ãã€ãŸããããã©ã³ãããå¥ã®ãã©ã³ãã«å€æŽãããŒãžããæ¹æ³ãã©ã®ãããªç«¶åãçºçããããªã©ã«ã€ããŠèª¬æããŸãã
ãªããžããªå ã®ãã¹ãŠã®ãã©ã³ãã®ãªã¹ãã衚瀺ããèªåãã©ã®ãã©ã³ãã«ããããç解ããã«ã¯ã次ã®ããã«èšè¿°ããå¿ èŠããããŸãã
master ãã©ã³ãã 1 ã€ã ãããããšãããããŸãããã®åã®ã¢ã¹ã¿ãªã¹ã¯ã¯ããã®äžã«ããããšã瀺ããŸããã¡ãªã¿ã«ããgit statusãã³ãã³ãã䜿çšããŠãã©ã®ãã©ã³ãã«ãããã確èªããããšãã§ããŸãã
次ã«ããã©ã³ããäœæããããã®ãªãã·ã§ã³ãããã€ããããŸã (ä»ã«ãããå¯èœæ§ããããŸãããããã¯ç§ã䜿çšããŠãããã®ã§ã)ã
- çŸåšãããã©ã³ãã«åºã¥ããŠæ°ãããã©ã³ããäœæããŸã (99% ã®å Žå)
- ç¹å®ã®ã³ãããã«åºã¥ããŠãã©ã³ããäœæãã (ã±ãŒã¹ã® 1%)
ç¹å®ã®ã³ãããã«åºã¥ããŠãã©ã³ããäœæããŸããã
ã³ãããã®äžæã®èå¥åã«äŸåããŸãããããèŠã€ããã«ã¯ã次ã®ããã«æžããŸãã
ãhello world ãè¿œå ããŸãã...ããšããã³ã¡ã³ããä»ããŠã³ãããã匷調衚瀺ããŸããããã®äžæã®èå¥å㯠6c44e53d06228f888f2f454d3cb8c1c976dd73f8 ã§ãããã®ã³ãããããéå§ãããéçºããã©ã³ããäœæããããšæããŸãããããè¡ãã«ã¯ã次ã®ããã«æžããŸãã
ãã©ã³ãã¯ãmaster ãã©ã³ãããã®æåã® 2 ã€ã®ã³ãããã®ã¿ã䜿çšããŠäœæãããŸããããã確èªããã«ã¯ããŸãå¥ã®ãã©ã³ãã«åãæ¿ããŠãããã§ã®ã³ãããæ°ã確èªããŸãã
ãããŠäºæ³ã©ãããã³ãããã 2 ã€ãããŸãããšããã§ãããã§èå³æ·±ãç¹ããããŸãããã®ãã©ã³ãã«ã¯ãŸã .gitignore ãã¡ã€ã«ããªããããã³ã³ãã€ã«ããããã¡ã€ã« (GitTest.class) ã¯ãæªè¿œè·¡ãã¹ããŒã¿ã¹ã§åŒ·èª¿è¡šç€ºãããŠããŸãã
ããã§ã次ã®ããã«èšè¿°ããŠãã©ã³ããå床確èªã§ããŸãã
ãmasterããšãdevelopmentãã® 2 ã€ã®ãã©ã³ããããããšãããããŸããçŸåšéçºäžã§ãã
çŸåšã®ãã©ã³ãã«åºã¥ããŠãã©ã³ããäœæããŸããã
ãã©ã³ããäœæãã 2 çªç®ã®æ¹æ³ã¯ãå¥ã®ãã©ã³ããããã©ã³ããäœæããããšã§ããmaster ãã©ã³ãã«åºã¥ããŠãã©ã³ããäœæããããšèããŠããŸãããŸããããã«åãæ¿ããå¿ èŠãããã次ã®ã¹ãããã¯æ°ãããã®ãäœæããããšã§ããèŠãŠã¿ãŸããã:
- git checkout master â master ãã©ã³ãã«åãæ¿ãã
- git status â å®éã« master ãã©ã³ãã«ããããšã確èªããŸã
ããã§ã¯ãmaster ãã©ã³ãã«åãæ¿ãã.gitignore ãã¡ã€ã«ãæå¹ã«ãªããã³ã³ãã€ã«ãããã¯ã©ã¹ãã远跡ãããŠããªãããšããŠåŒ·èª¿è¡šç€ºãããªããªã£ãŠããããšãããããŸãã
次ã«ãmaster ãã©ã³ãã«åºã¥ããŠæ°ãããã©ã³ããäœæããŸãã
ãã®ãã©ã³ãããmasterããšåããã©ããäžæãªå Žåã¯ããgit logããå®è¡ããŠãã¹ãŠã®ã³ãããã確èªããããšã§ç°¡åã«ç¢ºèªã§ããŸããããã㯠4 ã€ããã¯ãã§ãã
çŽäºè§£æ±º
競åãšã¯äœãã説æããåã«ããããã©ã³ããå¥ã®ãã©ã³ãã«ããŒãžããããšã«ã€ããŠèª¬æããå¿ èŠããããŸãã
ãã®å³ã¯ããããã©ã³ããå¥ã®ãã©ã³ãã«ããŒãžããããã»ã¹ã瀺ããŠããŸãã
ããã«æ¬åºããããŸããããæç¹ã§ãã¡ã€ã³ ãã©ã³ãããã»ã«ã³ã㪠ãã©ã³ããäœæãããå€æŽãããŸããäœæ¥ãå®äºããããäžæ¹ã®ãã©ã³ããããäžæ¹ã®ãã©ã³ãã«ããŒãžããå¿ èŠããããŸãã
ãã®äŸã§ã¯ãfeature/update-txt-files ãã©ã³ããäœæããŸããããã©ã³ãã®ååã瀺ãããã«ãããã¹ããæŽæ°ããŠããŸãã
次ã«ããã®äœæ¥çšã«æ°ããã³ããããäœæããå¿ èŠããããŸãã
ããã§ãfeature/update-txt-files ãã©ã³ãããã¹ã¿ãŒã«ããŒãžããå Žåã¯ããã¹ã¿ãŒã«ç§»åããŠãgit merge feature/update-txt-filesããšèšè¿°ããå¿ èŠããããŸãã
ãã®çµæãmaster ãã©ã³ãã«ã¯ãfeature/update-txt-files ã«è¿œå ãããã³ããããå«ãŸããããã«ãªããŸããã
ãã®æ©èœãè¿œå ããããããæ©èœãã©ã³ããåé€ã§ããããã«ãªããŸãããããè¡ãã«ã¯ã次ã®ããã«æžããŸãã
ç¶æ³ãããã«è€éã«ããŠã¿ãŸããããtxt ãã¡ã€ã«ãå床å€æŽããå¿ èŠããããšããŸãããã ãããã®ãã¡ã€ã«ã¯ master ãã©ã³ãã§ãå€æŽãããããã«ãªããŸããã€ãŸãã䞊è¡ããŠå€åããŠãããŸããæ°ããã³ãŒãã master ãã©ã³ãã«ããŒãžããããšãã«ãGit ã¯äœãããã°ããã®ãããããŸããã
master ã«åºã¥ããŠæ°ãããã©ã³ããäœæããtext_resource.txt ã«å€æŽãå ããŠããã®äœæ¥ã®ã³ããããäœæããŸãã
...ãã¡ã€ã«ã«å€æŽãå ããŸã
master ãã©ã³ãã«ç§»åããfeature ãã©ã³ããšåãè¡ã«ãããã®ããã¹ã ãã¡ã€ã«ãæŽæ°ããŸãã
âŠtest_resource.txtãæŽæ°ããŸãã
ããã§æãèå³æ·±ãç¹ã§ããfeature/add-header ãã©ã³ãããã®å€æŽã master ã«ããŒãžããå¿ èŠããããŸããç§ãã¡ã¯ master ãã©ã³ãã«ããã®ã§ã次ã®ããã«æžãã ãã§æžã¿ãŸãã
ãã ãããã®çµæãtest_resource.txt ãã¡ã€ã«å ã§ç«¶åãçºçããŸãã
ããã§ãGit ããã®ã³ãŒããããŒãžããæ¹æ³ãç¬èªã«æ±ºå®ã§ããªãã£ãããšãããããŸãããŸã競åã解決ããããããã³ããããå®è¡ããå¿ èŠãããããšãããããŸãã
OKã競åã®ãããã¡ã€ã«ãããã¹ã ãšãã£ã¿ã§éããšã次ã®ããã«è¡šç€ºãããŸãã
ãã㧠Git ãäœãããããç解ããã«ã¯ãã©ã®å€æŽãã©ãã«å ããããèŠããŠæ¯èŒããå¿ èŠããããŸãã
- master ãã©ã³ãã®ãã®è¡ã«å ããããå€æŽã¯ãã<<<<<<< HEADããšã=======ãã®éã«ãããŸãã
- feature/add-header ãã©ã³ãå ã®å€æŽã¯ãã======= ãš ">>>>>>> feature/add-headerãã®éã«ãããŸãã
ããã¯ãGit ããã¡ã€ã«å ã®ãã®å Žæã§ããŒãžãå®è¡ããæ¹æ³ãèŠã€ããããªãã£ãããšã瀺ãæ¹æ³ã§ãããã®ã»ã¯ã·ã§ã³ã¯ç°ãªããã©ã³ããã 2 ã€ã®éšåã«åå²ãããŠãããããŒãžç«¶åãèªåã§è§£æ±ºããããå§ããããŠããŸãã
ãã£ããã ã倧èã«ããã¹ãŠãåé€ããŠããããããŒããšããåèªã ããæ®ãããšã«ããŸããã
å€æŽç¶æ³ãèŠãŠã¿ãŸãããã説æã¯å°ãç°ãªããŸãããä¿®æ£ããããã¹ããŒã¿ã¹ã§ã¯ãªãããçµ±åã解é€ããããç¶æ ã§ããããã§ã¯ã5 çªç®ã®ã¹ããŒã¿ã¹ã«ã€ããŠèšåã§ããã§ãããã? ããã¯å¿ èŠãªããšæããŸããã©ãã©ãïŒ
ç§ãã¡ã¯ãããç¹å¥ã§çããã±ãŒã¹ã§ãããšç¢ºä¿¡ã§ããŸããç¶ããŸãããïŒ
説æã§ã¯ãgit commitãã®ã¿ãèšè¿°ããããšãæšå¥šããŠããããšã«æ°ã¥ããããããŸããããããæžããŠã¿ãŸããã:
ãããŠãŸãã«ãã®ããã«ããŠãã³ã³ãœãŒã«å ã®ç«¶åã解決ããŸããã
ãã¡ãããçµ±åéçºç°å¢ã§ã¯ãããããå°ãç°¡åã«è¡ãããšãã§ããŸããããšãã°ãIntelliJ IDEA ã§ã¯ããã¹ãŠãé©åã«ã»ããã¢ãããããŠããããããã®äžã§å¿ èŠãªã¢ã¯ã·ã§ã³ããã¹ãŠå®è¡ã§ããŸããããããIDE ã¯ãå éšã§ãå€ãã®ããšãå®è¡ããŠãããããã§äœãèµ·ãã£ãŠããã®ãæ£ç¢ºã«ç解ã§ããªãããšããããããŸãããããŠãç解ããªããšåé¡ãçºçããå¯èœæ§ããããŸãã
ãªã¢ãŒããªããžããªã®æäœ
æåŸã®ã¹ãããã§ã¯ããªã¢ãŒã ãªããžããªãæäœããããã«å¿ èŠãªã³ãã³ããããã«ããã€ãç解ããŸãã
å ã»ã©ãè¿°ã¹ãããã«ããªã¢ãŒã ãªããžããªã¯ããªããžããªãä¿åãããããããã¯ããŒã³ãäœæã§ããå Žæã§ãã
ãªã¢ãŒããªããžããªã«ã¯ã©ã®ãããªçš®é¡ããããŸãã? äŸ:
- GitHub ã¯ããªããžããªãšå ±åéçºã®ããã®æ倧ã®ã¹ãã¬ãŒãž ãã©ãããã©ãŒã ã§ãã
- GitLab ã¯ããªãŒãã³ãœãŒã¹ã䜿çšãã DevOps ã©ã€ããµã€ã¯ã«ã®ããã® Web ããŒã¹ã®ããŒã«ã§ããããã¯ãç¬èªã® Wikiããã°è¿œè·¡ã·ã¹ãã ãCI/CD ãã€ãã©ã€ã³ããã®ä»ã®æ©èœãåããã³ãŒã ãªããžããªã管çããããã® Git ããŒã¹ã®ã·ã¹ãã ã§ãã
- BitBucket ã¯ãMercurial ããã³ Git ããŒãžã§ã³ç®¡çã·ã¹ãã ã«åºã¥ãããããžã§ã¯ã ãã¹ãã£ã³ã°ããã³å ±åéçºã®ããã® Web ãµãŒãã¹ã§ãããã€ãŠã¯ãç¡æã®ãã©ã€ããŒã ãªããžããªãæäŸãããšããç¹ã§ãGitHub ããã倧ããªå©ç¹ããããŸãããæšå¹ŽãGitHub ããã®æ©èœã誰ã§ãç¡æã§å°å ¥ããŸããã
- çã âŠ
ãªã¢ãŒã ãªããžããªã䜿çšããå Žåãæåã«è¡ãããšã¯ããããžã§ã¯ãã®ã¯ããŒã³ãããŒã«ã« ãªããžããªã«äœæããããšã§ãã
ãã®ããã«ãããŒã«ã«ã§äœæãããããžã§ã¯ãããšã¯ã¹ããŒãããŸãããããã§ã誰ããèªåã§ãã®ãããžã§ã¯ãã®ã¯ããŒã³ãäœæã§ããŸãã
ããã§ããããžã§ã¯ãã®å®å šãªããŒã«ã« ã³ããŒãäœæãããŸããããããžã§ã¯ãã®ããŒã«ã« ã³ããŒãææ°ã§ããããšã確èªããã«ã¯ã次ã®ããã«èšè¿°ããŠãããžã§ã¯ãããã«ããå¿ èŠããããŸãã
ç§ãã¡ã®å ŽåãçŸæç¹ã§ã¯ãªã¢ãŒã ãªããžããªã«ã¯äœãå€æŽãããŠããªããããå¿çã¯æ¬¡ã®ããã«ãªããŸããããã§ã«ææ°ã§ããã
ãã ãããªã¢ãŒã ãªããžããªã«å€æŽãå ããå ŽåãããŒã«ã« ãªããžããªã¯ãã«åŸã«æŽæ°ãããŸãã
ãããŠæåŸã®ã³ãã³ãã¯ãããŒã¿ããªã¢ãŒã ãªããžããªã«ããã·ã¥ããããšã§ããããŒã«ã«ã§äœããå®è¡ããããããªã¢ãŒã ãªããžããªã«éä¿¡ãããå Žåã¯ããŸãããŒã«ã«ã§æ°ããã³ããããäœæããå¿ èŠããããŸããããã瀺ãããã«ãããã¹ã ãã¡ã€ã«ã«äœããè¿œå ããŠã¿ãŸãããã
ããã§ãç§ãã¡ã«ãšã£ãŠéåžžã«äžè¬çãªããšã§ãããã®äœæ¥ã®ããã«ã³ããããäœæããŸãã
ããããªã¢ãŒã ãªããžããªã«ããã·ã¥ããã³ãã³ãã¯æ¬¡ã®ãšããã§ãã
ä»ã®ãšããã¯ãããŸã§ã§ãïŒ
圹ç«ã€ãªã³ã¯ |
---|
|
2. IntelliJ IDEA 㧠Git ãæäœããæ¹æ³
ãã®ããŒãã§ã¯ãIntelliJ IDEA 㧠Git ãæäœããæ¹æ³ãåŠã³ãŸãã
å¿ é å ¥å:
- åã®éšåãèªã¿ãåŸã£ãŠãç解ããŠãã ãããããã«ããããã¹ãŠãã»ããã¢ãããããããã«äœ¿çšã§ããããã«ãªããŸãã
- IntelliJ IDEA ãã€ã³ã¹ããŒã«ããŸããããã§ã¯ãã¹ãŠãæŽã£ãŠããã¯ãã§ã:)
- å®å šã«ç¿åŸããã«ã¯ 1 æéãå²ãåœãŠãŠãã ããã
Git ã«é¢ããèšäºã§äœ¿çšããã㢠ãããžã§ã¯ãã䜿ã£ãŠã¿ãŸãããã
ãããžã§ã¯ãã®ã¯ããŒã³ãããŒã«ã«ã«äœæãã
ããã«ã¯ 2 ã€ã®ãªãã·ã§ã³ããããŸãã
- ãã§ã« GitHub ã¢ã«ãŠã³ãããæã¡ã§ãåŸã§äœããããã·ã¥ãããå Žåã¯ããããžã§ã¯ãããã©ãŒã¯ããŠç¬èªã®ã³ããŒãè€è£œããããšããå§ãããŸãããã©ãŒã¯ã®äœææ¹æ³ã«ã€ããŠã¯ãããã©ãŒã¯ ã¯ãŒã¯ãããŒã®äŸããšããèŠåºãã®äžã®å¥ã®èšäºãåç §ããŠãã ããã
- ãªããžããªã®ã¯ããŒã³ãäœæãããã¹ãŠããµãŒããŒã«ããã·ã¥ããããšãªãããã¹ãŠãããŒã«ã«ã§å®è¡ããŸãã
GitHub ãããããžã§ã¯ãã®ã¯ããŒã³ãäœæããã«ã¯ããããžã§ã¯ã ãªã³ã¯ãã³ããŒã㊠IntelliJ IDEA ã«æž¡ãå¿ èŠããããŸãã
-
ãããžã§ã¯ãã®ã¢ãã¬ã¹ãã³ããŒããŸãã
-
IntelliJ IDEA ãéãããããŒãžã§ã³ç®¡çããååŸããéžæããŸãã
-
ãããžã§ã¯ãã®ã¢ãã¬ã¹ãã³ããŒããŠè²Œãä»ããŸãã
-
IntelliJ IDEA ãããžã§ã¯ããäœæããããã«æ±ããããŸãããªãã¡ãŒãåãå ¥ããŸã:
-
ãã«ã ã·ã¹ãã ããªãããããæ¢åã®ãœãŒã¹ãããããžã§ã¯ããäœæããéžæããŸãã
-
次ã«ããã®çŸããç»é¢ã衚瀺ãããŸãã
ã¯ããŒã³äœæã«ã€ããŠç解ããã®ã§ãèŠãŠã¿ãŸãããã
Git UI ãšããŠã® IntelliJ IDEA ã®æŠèŠ
ã¯ããŒã³ããããããžã§ã¯ãã詳ããèŠãŠã¿ãŸããããããŒãžã§ã³ç®¡çã·ã¹ãã ã«é¢ããå€ãã®æ å ±ããã§ã«åŸãããŠããŸãã
ãŸããå·Šäžé ã«ããŒãžã§ã³ç®¡çãã€ã³ããããŸããããã§ã¯ããã¹ãŠã®ããŒã«ã«å€æŽãæ€çŽ¢ããã³ãããã®ãªã¹ããååŸã§ããŸã (ãgit logãã«äŒŒãŠããŸã)ã
ãã°ã®èª¬æã«ç§»ããŸããããéçºãã©ã®ããã«é²è¡ããããæ£ç¢ºã«ç解ããã®ã«åœ¹ç«ã€ç¹å®ã®èŠèŠåããããŸããããšãã°ãtxt commit ã«ããããŒãè¿œå ãããæ°ãããã©ã³ããäœæãããããã master ãã©ã³ãã«ããŒãžãããããšãããããŸããã³ããããã¯ãªãã¯ãããšãå³é ã«ã³ãããã«é¢ãããã¹ãŠã®æ å ± (ãã¹ãŠã®å€æŽãšã¡ã¿ããŒã¿) ã衚瀺ãããŸãã
ããã«ãå®éã®å€åã確èªã§ããŸãããŸããããã§ç«¶åã解決ãããããšãããããŸããIDEA ããããéåžžã«ãã瀺ããŠããŸãã
ãã®ã³ãããäžã«å€æŽããããã¡ã€ã«ãããã«ã¯ãªãã¯ãããšã競åãã©ã®ããã«è§£æ±ºããããã衚瀺ãããŸãã
å·ŠåŽãšå³åŽã«ã¯ã1 ã€ã«ããŒãžããå¿ èŠãããåããã¡ã€ã«ã® 2 ã€ã®ããŒãžã§ã³ãããããšãããããŸãããããŠçãäžã«ã¯ãæçµçãªããŒãžçµæããããŸãã
ãããžã§ã¯ãã«å€ãã®ãã©ã³ããã³ãããããŠãŒã¶ãŒãããå Žåã¯ããã©ã³ãããŠãŒã¶ãŒãæ¥ä»ããšã«åå¥ã«æ€çŽ¢ããå¿ èŠããããŸãã
å§ããåã«ãèªåãã©ã®ãã©ã³ãã«ããã®ããç解ããæ¹æ³ã説æããããšãéèŠã§ãã
å³äžé ã«ãGit: masterããšããã©ãã«ã®ãã¿ã³ããããŸãããGit:ãã«ç¶ããã®ã¯ãã¹ãŠçŸåšã®ãã©ã³ãã§ãããã¿ã³ãã¯ãªãã¯ãããšãå¥ã®ãã©ã³ããžã®åãæ¿ããæ°ãããã©ã³ãã®äœæãæ¢åã®ãã©ã³ãã®ååå€æŽãªã©ãããŸããŸãªäŸ¿å©ãªæäœãè¡ãããšãã§ããŸãã
ãªããžããªã®æäœ
䟿å©ãªãããããŒ
ä»åŸã®äœæ¥ã®ããã«ãéåžžã«äŸ¿å©ãªãããããŒãããã€ãèŠããŠããå¿ èŠããããŸãã
- CTRL+T â ãªã¢ãŒã ãªããžããªããææ°ã®å€æŽãååŸããŸã (git pull)ã
- CTRL+K â ã³ããããäœæ/çŸåšã®å€æŽããã¹ãŠè¡šç€ºããŸããããã«ã¯ã远跡ãããŠããªããã¡ã€ã«ãšå€æŽããããã¡ã€ã« (git commit) ã®äž¡æ¹ãå«ãŸããŸãã
- CTRL+SHIFT+K â ããã¯ãå€æŽããªã¢ãŒã ãªããžããªã«ããã·ã¥ããããã®ã³ãã³ãã§ããããŒã«ã«ã§äœæããããªã¢ãŒã ãªããžããªã«ãŸã ååšããŠããªããã¹ãŠã®ã³ããããããã·ã¥ãããŸã (git Push)ã
- ALT+CTRL+Z â ç¹å®ã®ãã¡ã€ã«å ã®å€æŽããããŒã«ã« ãªããžããªã«äœæãããæåŸã®ã³ãããã®ç¶æ ã«ããŒã«ããã¯ããŸããå·Šäžé ã§ãããžã§ã¯ãå šäœãéžæãããšããã¹ãŠã®ãã¡ã€ã«ã®å€æŽãããŒã«ããã¯ã§ããŸãã
ç§éã¯äœã欲ããã®ãïŒ
ä»äºãæãéããã«ã¯ãã©ãã§ã䜿ãããåºæ¬çãªã·ããªãªããã¹ã¿ãŒããå¿ èŠããããŸãã
ç®çã¯ãæ°ããæ©èœãå¥ã®ãã©ã³ãã«å®è£ ããããããªã¢ãŒã ãªããžããªã«ããã·ã¥ããããšã§ã (ãã®åŸãã¡ã€ã³ ãã©ã³ããžã®ãã« ãªã¯ãšã¹ããäœæããå¿ èŠããããŸãããããã¯ãã®ã¬ãã¹ã³ã®ç¯å²ãè¶ ããŠããŸã)ã
ãããè¡ãã«ã¯äœãå¿ èŠã§ãã?
-
ã¡ã€ã³ ãã©ã³ã (ããšãã°ããmasterã) å ã®çŸåšã®å€æŽããã¹ãŠååŸããŸãã
-
ãã®ã¡ã€ã³ ãã©ã³ããããäœæ¥çšã«å¥ã®ãã©ã³ããäœæããŸãã
-
æ°ããæ©èœãå®è£ ããŸãã
-
ã¡ã€ã³ ãã©ã³ãã«ç§»åããäœæ¥äžã«æ°ããªå€æŽããã£ããã©ããã確èªããŸããããã§ãªãå Žåã¯ããã¹ãŠåé¡ãããŸããããã ããå€æŽããã£ãå Žåã¯ã次ã®æäœãå®è¡ããŸããäœæ¥ãã©ã³ãã«ç§»åããå€æŽãã¡ã€ã³ ãã©ã³ãããç§ãã¡ã®ãã©ã³ãã«ãªããŒã¹ããŸãããã¹ãŠãããŸãããã°ãçŽ æŽãããããšã§ããããããè¡çªãèµ·ããå¯èœæ§ã¯ååã«ãããŸããå¶ç¶ã«ãããªã¢ãŒã ãªããžããªã§æéãç¡é§ã«ããããšãªããäºåã«è§£æ±ºããããšãã§ããŸãã
ãªããããè¡ãå¿ èŠãããã®ãââçåã«æããŸãã? ããã¯è¯ããããŒã§ããããã©ã³ããããŒã«ã« ãªããžããªã«ããã·ã¥ããåŸã«ç«¶åãçºçããã®ãé²ããŸã (ãã¡ãããäŸç¶ãšããŠç«¶åãçºçããå¯èœæ§ã¯ãããŸããã競åã¯å€§å¹ ã«å°ãããªããŸã)ã
-
å€æŽããªã¢ãŒã ãªããžããªã«ããã·ã¥ããŸãã
ãªã¢ãŒããµãŒããŒããå€æŽãååŸããã«ã¯ã©ãããã°ããã§ãã?
æ°ããã³ãããã®èª¬æã README ã«è¿œå ãããããã®å€æŽãååŸããããšèããŠããŸããããŒã«ã« ãªããžããªãšãªã¢ãŒã ãªããžããªã®äž¡æ¹ã§å€æŽãè¡ãããå Žåã¯ãããŒãžããªããŒã¹ã®ã©ã¡ãããéžæããããæ±ããããŸããç§ãã¡ã¯å䜵ããããšãéžæããŸãã
CTRL+T ãå ¥åããŠãã ãã:
README ãã©ã®ããã«å€æŽãããããã€ãŸããªã¢ãŒã ãªããžããªããã®å€æŽãåã蟌ãŸããããšãããããŸãããŸããå³äžé ã«ã¯ãµãŒããŒããã®å€æŽã®è©³çŽ°ããã¹ãŠè¡šç€ºãããŸãã
ãã¹ã¿ãŒã«åºã¥ããŠæ°ãããã©ã³ããäœæããŸã
ããã§ã¯ãã¹ãŠãã·ã³ãã«ã§ãã
å³äžé ã«ç§»åããŠããGit: masterããã¯ãªãã¯ããŸãã[+ æ°ãããã©ã³ã]ãéžæããŸãã
[ãã§ãã¯ã¢ãŠã ãã©ã³ã]ãã§ãã¯ããã¯ã¹ãéžæãããŸãŸã«ããæ°ãããã©ã³ãã®ååãå ¥åããŸããç§ãã¡ã®å Žå: ããã¯readme-improverã«ãªããŸããGit: master ã¯Git: readme-improverã«å€æŽãããŸãã
䞊è¡äœæ¥ãã·ãã¥ã¬ãŒã·ã§ã³ããŠã¿ãã
競åãçºçããã«ã¯ã誰ãã競åãäœæããå¿ èŠããããŸãã
ãã©ãŠã¶ãä»ããŠæ°ããã³ããã㧠README ãç·šéãã䞊åäœæ¥ãã·ãã¥ã¬ãŒãããŸããç§ãã¡ãäœæ¥ããŠããéã«èª°ããåããã¡ã€ã«ã«å€æŽãå ãããã®ããã§ãããã®çµæãçŽäºãçºçããŸãã10 è¡ç®ãããfullyããšããåèªãåé€ããŸãã
æ©èœãå®è£ ãã
ç§ãã¡ã®ã¿ã¹ã¯ã¯ãREADME ãå€æŽããæ°ããèšäºã«èª¬æãè¿œå ããããšã§ããã€ãŸããGit ã§ã®äœæ¥ã¯ IntelliJ IDEA ãçµç±ããŸãããããè¿œå ïŒ
å€æŽãå®äºããŸãããããã§ã³ããããäœæã§ããããã«ãªããŸãããCTRL+KãæŒããšã次ã®ããã«ãªããŸãã
ã³ããããäœæããåã«ããã®ãŠã£ã³ããŠãäœãæäŸããã®ãã詳ãã調ã¹ãå¿ èŠããããŸãã
ãã³ãããã¡ãã»ãŒãžãã»ã¯ã·ã§ã³ã§ã¯ãã³ãããã«é¢é£ä»ããããããã¹ããèšè¿°ããŸãã次ã«ããããäœæããã«ã¯ã ãã³ãããããã¯ãªãã¯ããå¿ èŠããããŸãã
README ãå€æŽãããããšãèšè¿°ããã³ããããäœæããŸããå·Šäžé ã«ã³ãããåã瀺ãã¢ã©ãŒãããããã¢ãã衚瀺ãããŸãã
main ãã©ã³ããå€æŽããããã©ããã確èªãã
ç§ãã¡ã¯ä»»åãå®äºããŸãããã§ããŸããç§ãã¡ã¯ãã¹ããæžããŸããããã¹ãŠé 調ããã ãããµãŒããŒã«ããã·ã¥ããåã«ããã®éã«ã¡ã€ã³ ãã©ã³ãã«å€æŽããã£ããã©ããã確èªããå¿ èŠããããŸããã©ãããŠãããªããšãèµ·ããã®ã§ããããïŒéåžžã«ç°¡åã«ã誰ããããªãã®åŸã«ã¿ã¹ã¯ãåãåãããã®èª°ããããªãã®ã¿ã¹ã¯ãå®äºãããããæ©ãã¿ã¹ã¯ãå®äºããŸãã
ãããã£ãŠãmaster ãã©ã³ãã«ç§»åããå¿ èŠããããŸãããããè¡ãã«ã¯ã以äžã®ã¹ã¯ãªãŒã³ã·ã§ããã®å³äžé ã«ç€ºãããŠããæäœãè¡ãå¿ èŠããããŸãã
master ãã©ã³ãã§CTRL+TãæŒããŠããªã¢ãŒã ãµãŒããŒããææ°ã®å€æŽãååŸããŸããå€æŽå 容ãèŠããšãäœãèµ·ãã£ãã®ããç°¡åã«ããããŸãã
ãfullyããšããåèªãåé€ãããŸãããããããããŒã±ãã£ã³ã°éšéã®èª°ãããã®ããã«æžãã¹ãã§ã¯ãªããšå€æããéçºè ã«ãããæŽæ°ããã¿ã¹ã¯ãäžããã®ã§ãããã
ããã§ãmaster ãã©ã³ãã®ææ°ããŒãžã§ã³ã®ããŒã«ã« ã³ããŒãã§ããŸãããreadme-improverã«æ»ããŸãã
ããã§ãå€æŽã master ãã©ã³ãããç§ãã¡ã®ãã©ã³ãã«ãªããŒã¹ããå¿ èŠããããŸããç§ãã¡ã¯ãããè¡ããŸã:
ãã¹ãŠãæ£ããå®è¡ããç§ã®æ瀺ã«åŸã£ãŠããã°ãçµæãšã㊠README ãã¡ã€ã«ã«ççŸã衚瀺ãããã¯ãã§ãã
ããã«ããç解ãåžåãã¹ãæ å ±ããããããããŸããããã«ç€ºãããŠããã®ã¯ã競åããŠãããã¡ã€ã« (ãã®äŸã§ã¯ 1 ã€ã®ãã¡ã€ã«) ã®ãªã¹ãã§ãã次㮠3 ã€ã®ãªãã·ã§ã³ããéžæã§ããŸãã
- ããªãã®ãã®ãåãå ¥ãã â readme-improver ããã®å€æŽã®ã¿ãåãå ¥ããŸãã
- 圌ãã®ãã®ãåãå ¥ãã â ãã¹ã¿ãŒããã®å€æŽã®ã¿ãåãå ¥ããŸãã
- ããŒãž â äœãæ®ããäœãç Žæ£ããããèªåã§éžæããŸãã
äœãå€ãã£ãã®ãã¯äžæã§ããmaster ãã©ã³ãã«å€æŽãããå Žåã¯ãããã«å€æŽãå¿ èŠã«ãªããããåçŽã«å€æŽãåãå ¥ããããšã¯ã§ããŸããããããã£ãŠããmergeããéžæããŸãã
ããã§ã¯ 3 ã€ã®éšåãããããšãããããŸãã
- ããã㯠readme-improver ããã®å€æŽç¹ã§ãã
- çµåããçµæãçŸæç¹ã§ã¯ãããã¯å€æŽåã«ååšããŠãããã®ã§ãã
- master ãã©ã³ãããã®å€æŽã
誰ããæºè¶³ã§ããçµ±åçµæãçã¿åºãå¿ èŠããããŸããå€æŽåã®å€æŽå 容ã確èªãããšãåã«ãfullyããšããåèªãåé€ãããã ãã§ããããšãããããŸãããããã倧äžå€«ïŒã€ãŸããããŒãžçµæãããåé€ããŠããå€æŽãè¿œå ããŸããããŒãžçµæãä¿®æ£ãããã ãé©çšããã¯ãªãã¯ããŸãã
次ã«ããªããŒã¹ãæåããããšã瀺ãéç¥ããããã¢ãã衚瀺ãããŸãã
ããã«ã¯ïŒæåã®ç«¶å㯠IntelliJ IDEA ãéããŠè§£æ±ºããŸããã
å€æŽããªã¢ãŒããµãŒããŒã«ããã·ã¥ãã
次ã®ã¹ãããã§ã¯ãå€æŽããªã¢ãŒã ãµãŒããŒã«ããã·ã¥ãããã« ãªã¯ãšã¹ããäœæããŸãããããè¡ãã«ã¯ãCTRL+SHIFT+KãæŒãã ãã§ãããããšã次ã®ããã«ãªããŸãã
å·ŠåŽã«ã¯ããªã¢ãŒã ãªããžããªã«ããã·ã¥ãããŠããªãã³ãããã®ãªã¹ãã衚瀺ãããŸããå³åŽã«ã¯ãå€æŽããããã¹ãŠã®ãã¡ã€ã«ã衚瀺ãããŸãã以äžã§ãïŒPushãæŒããšå¹žããäœéšã§ããŸã:)
ããã·ã¥ãæåãããšãå³äžé ã«æ¬¡ã®ãããªéç¥ã衚瀺ãããŸãã
ããŒãã¹: ãã« ãªã¯ãšã¹ãã®äœæ
GitHub ãªããžããªã«ç§»åããŠã¿ãŸããããGitHub ãç§ãã¡ãäœãæãã§ããã®ãããã§ã«ç¥ã£ãŠããããšãããããŸãã
[æ¯èŒãšãã«ãªã¯ãšã¹ã]ãã¯ãªãã¯ããŸãã次ã«ãããã«ãªã¯ãšã¹ãã®äœæããã¯ãªãã¯ããŸããäºåã«ç«¶åã解決ããããããã« ãªã¯ãšã¹ããäœæãããšãã«ããã«ããŒãžã§ããããã«ãªããŸããã
ä»ã®ãšããã¯ãããŸã§ã§ãïŒ