ã¯ããã«
ãã®èšäºã§ã¯ãå šäžçã®ãœãããŠã§ã¢éçºè ã«ãšã£ãŠæ¬ ãããªãããŒã«ã§ããGitHubã«ã€ããŠããã®ç¹åŸŽãã¡ãªããããããŠåºæ¬çãªäœ¿ãæ¹ãŸã§ã解説ããŸããããããããã°ã©ãã³ã°ãåŠã³å§ããæ¹ããããã¯æ¢ã«åŠãã§ããããŸã GitHubã®å©çšã«æ £ããŠããªãæ¹ã ã«åãããæ°ããªäžæ©ãèžã¿åºãããã®æ å ±ãæäŸããŸããããã°ã©ãã³ã°ã®äžçã¯åºå€§ã§ããã®äžã§GitHubã¯äžã€ã®å¿ é ã¹ãã«ãšãèšããã§ãããã
æ¬ã¬ã€ãã®ç®ç
æ¬ã¬ã€ãã®ç®çã¯ãGitHubãäœã§ããããã©ã®ãããªåœ¹å²ãæã¡ããªãããããœãããŠã§ã¢éçºã«ãããŠéèŠãªã®ããç解ããããšã§ãããŸããGitHubã®åºæ¬çãªäœ¿ãæ¹ãããããå®è·µçãªäœ¿çšæ³ãŸã§ã段éçã«åŠã³ãGitHubãçšãããœãããŠã§ã¢éçºã®æµããæŽãããšãç®çãšããŠããŸããããªãã®GitHubã¹ãã«ãäžæ®µãšåäžããããšã§ããã倧ããªãããžã§ã¯ãã«ææŠã§ããããã«ãªãããšã§ãããã
GitHubãšã¯
GitHubãšã¯ããœãããŠã§ã¢ã®ããŒãžã§ã³ç®¡çãè¡ãããã®ããŒã«ã§ããGitãå©çšãããŠã§ãããŒã¹ã®ãã©ãããã©ãŒã ã§ããè€æ°äººã§ã®éçºäœæ¥ãå€æŽå±¥æŽã®ç®¡çãªã©ããããžã§ã¯ãã®ç®¡çãåæ»ã«é²ããããã®æ©èœãå€æ°åãã£ãŠããŸããããã«ãå šäžçã®éçºè ãäœæãããããžã§ã¯ããå ¬éãå ±æããå ŽãšããŠãç¥ãããŠããããªãŒãã³ãœãŒã¹ã®çºå±ã«å€§ããªè²¢ç®ãããŠããŸãããã®èšäºãéããŠãããªãããã®äžéšãšãªãããšãã§ããã§ãããã
1. GitHubã®åºæ¬
1.1 ããŒãžã§ã³ç®¡çã·ã¹ãã ãšã¯
ããŒãžã§ã³ç®¡çã·ã¹ãã ãšã¯ããã¡ã€ã«ã®å€æŽå±¥æŽãèšé²ããŠç®¡çããã·ã¹ãã ã®ããšãæããŸããããã«ããã以åã®ç¶æ ã«æ»ãããšïŒããŒã«ããã¯ïŒããåããã¡ã€ã«ãè€æ°äººã§åæã«ç·šéããããšïŒäžŠè¡éçºïŒãªã©ãå¯èœã«ãªããŸãããã®äžã§ãGitã¯åæ£åã®ããŒãžã§ã³ç®¡çã·ã¹ãã ã§ãããããããã®éçºè ãå šãŠã®ãœãŒã¹ã³ãŒããšå€æŽå±¥æŽãããŒã«ã«ã«æã€ããšãã§ããŸãã
1.2 GitHubã®åœ¹å²ãšç¹åŸŽ
GitHubã¯ããã®Gitã䜿çšãããªã¢ãŒããªããžããªãæäŸãããã©ãããã©ãŒã ã§ãããœãŒã¹ã³ãŒãã®ãã¹ãã£ã³ã°ã ãã§ãªãããã°è¿œè·¡ãã¿ã¹ã¯ç®¡çããŠã£ãã®æäŸãªã©ããããžã§ã¯ãã®å šäœçãªç®¡çãæ¯ããæ©èœãå€æ°æäŸããŠããŸãããŸããä»ã®ãŠãŒã¶ãŒãšã®ã³ãŒãå ±æããä»äººã®ã³ãŒããæ¹è¯ããŠææ¡ããããšãå¯èœã§ãã
1.3 GitHubã®ã€ã³ã¹ããŒã«æ¹æ³
GitHubèªäœã¯ãŠã§ããµãŒãã¹ãªã®ã§ã€ã³ã¹ããŒã«ã¯å¿ èŠãããŸããããããŒã«ã«ã§Gitãæäœããããã«ã¯Gitã®ã€ã³ã¹ããŒã«ãå¿ èŠã§ããWindowsã§ã¯å ¬åŒãµã€ãããã€ã³ã¹ããŒã©ãŒãããŠã³ããŒãããMacã§ã¯Homebrewãªã©ã®ããã±ãŒãžç®¡çã·ã¹ãã ãçšããŠã€ã³ã¹ããŒã«ããããšãã§ããŸããã€ã³ã¹ããŒã«åŸã¯ã¿ãŒããã«ãŸãã¯ã³ãã³ãããã³ããããGitã®ã³ãã³ããå©çšå¯èœãšãªããŸãã
1.4 GitHubã®ã¢ã«ãŠã³ãèšå®
GitHubã䜿çšããã«ã¯ããŸãå ¬åŒãŠã§ããµã€ãã§ã¢ã«ãŠã³ããäœæããŸããäœæã«ã¯ã¡ãŒã«ã¢ãã¬ã¹ããŠãŒã¶ãŒããŒã ããã¹ã¯ãŒããå¿ èŠã§ããã¢ã«ãŠã³ãäœæåŸã«ã¯ãããã£ãŒã«ã®èšå®ãå ¬ééµã®ç»é²ãè¡ããã»ãã¥ãªãã£ã®åŒ·åãå人æ å ±ã®å å®ãå³ãããšãã§ããŸããç¹ã«å ¬ééµã®ç»é²ã¯ãGitHubäžã®ãªããžããªãžã®pushãpullãå®å šã«è¡ãããã«éèŠãªäœæ¥ã§ãã
2. GitHubã䜿ã£ãåºæ¬çãªæäœ
2.1 ãªããžããªã®äœæãšã¯ããŒã³
ãªããžããªã®äœæã¯GitHubã®ãŠã§ããµã€ãäžã§è¡ããŸããå³äžã®ãïŒãã¢ã€ã³ã³ãã¯ãªãã¯ãã”New repository”ãéžæãããšæ°ããªãªããžããªãäœæããããšãã§ããŸãããªããžããªåã説ææãå ¬éèšå®ãå ¥åããããCreate repositoryããã¯ãªãã¯ããŸãã
äœæãããªããžããªãããŒã«ã«ç°å¢ã«ã³ããŒããã«ã¯ãCloneãã䜿çšããŸãããªããžããªã®ã¡ã€ã³ããŒãžã«è¡šç€ºããã”Code”ãã¿ã³ãã¯ãªãã¯ãããšããªããžããªã®URLã衚瀺ãããŸãããããã³ããŒããããŒã«ã«ã®ã¿ãŒããã«ã§ãgit clone [ã³ããŒããURL]ããšå ¥åãããšãªããžããªãã¯ããŒã³ãããŸãã
2.2 ãã¡ã€ã«ã®ã³ããããšããã·ã¥
ãã¡ã€ã«ã®å€æŽããªããžããªã«ä¿åããã«ã¯ããã³ããããã䜿çšããŸããå€æŽããããã¡ã€ã«ãç·šéããåŸããgit add [ãã¡ã€ã«å]ããšãgit commit -m “ã³ãããã¡ãã»ãŒãž”ããšããã³ãã³ããé ã«å®è¡ããŸãã
ããŒã«ã«ã§ã®å€æŽãGitHubäžã®ãªããžããªã«åæ ããã«ã¯ããããã·ã¥ãã䜿çšããŸãããgit push origin [ãã©ã³ãå]ããšå ¥åããããšã§ãæå®ãããã©ã³ãã«å¯ŸããŠå€æŽãããã·ã¥ãããŸãã
2.3 ãã©ã³ãã®äœæãšããŒãž
æ°æ©èœã®éçºããã°ä¿®æ£ãè¡ãéã«ã¯ãæ°ããªãã©ã³ããäœæããŸãããgit branch [ãã©ã³ãå]ããšå ¥åããããšã§ãã©ã³ããäœæã§ãããã®ãã©ã³ãã«åãæ¿ããã«ã¯ãgit checkout [ãã©ã³ãå]ããšå ¥åããŸãã
ãã©ã³ãäžã§ã®äœæ¥ãçµãã£ããããã®å€æŽãã¡ã€ã³ã®ãã©ã³ãã«åæ ãããå¿ èŠããããŸããããããããŒãžããŸãã¯ããã«ãªã¯ãšã¹ãããšåŒã³ãŸããããŒãžã¯ãgit merge [ãã©ã³ãå]ãã§è¡ãããšãã§ããŸãã
2.4 ãã«ãªã¯ãšã¹ãã®äœæãšããŒãž
ãã«ãªã¯ãšã¹ãã¯GitHubã®ãŠã§ããµã€ãäžã§è¡ããŸããäœæ¥ãã©ã³ãããã¡ã€ã³ãã©ã³ããžã®ãã«ãªã¯ãšã¹ããäœæããã³ãŒãã¬ãã¥ãŒãäŸé ŒããŸããã¬ãã¥ãŒãçµãããåé¡ããªããã°ãMerge pull requestããã¿ã³ãã¯ãªãã¯ããããšã§ãã«ãªã¯ãšã¹ããããŒãžãããã¡ã€ã³ãã©ã³ãã«å€æŽãåæ ãããŸãã
3. GitHubã®ã¡ãªãã
3.1 ããŒã éçºã«ãããå¹çå
GitHubã¯ããŒã ã§ã®éçºäœæ¥ã倧ãã«å¹çåããŸããåã ã®ã¡ã³ããŒãããããã®äœæ¥ãåæ ããç¬ç«ãããã©ã³ãã§é²è¡ããããšã§ãä»ã®ã¡ã³ããŒã®äœæ¥ã«åœ±é¿ãäžããããšãªãã³ãŒããç·šéã§ããŸãããŸããå€æŽã®å±¥æŽãå ±æããããšãã§ãããããã©ã®ã¡ã³ããŒãã©ã®éšåãä¿®æ£ããã®ãããªããã®ãããªä¿®æ£ãè¡ã£ãã®ããæ確ã«ãªããŸãããã®æ©èœã«ãããããŒã å šäœãäžèŽããé²è¡ç¶æ³ãä¿ã¡ãè€æ°ã®ã¡ã³ããŒãåæã«äœæ¥ãè¡ã£ãŠãåé¡ãçºçãã«ãããªããŸãã
3.2 ããŒãžã§ã³ç®¡çã®å©äŸ¿æ§
GitHubã䜿çšããæ倧ã®å©ç¹ã®äžã€ã¯ãããŒãžã§ã³ç®¡çã®å®¹æãã§ããããŒãžã§ã³ç®¡çãšã¯ããã¡ã€ã«ã®å€æŽå±¥æŽã远跡ãä¿åããã·ã¹ãã ã®ããšã§ãã³ãŒãã®åã®ããŒãžã§ã³ã«æ»ãããŸãã¯äœãå€æŽãããã®ãã確èªãããªã©ã®ããšãå¯èœã§ããç¹ã«ãè€æ°äººã§ã®äœæ¥ãé·æéã«ããããããžã§ã¯ãã§ã¯ãã³ãŒãã®å€æŽã远跡ããããããããã«äžå¯æ¬ ãªæ©èœã§ãã
3.3 ãªãŒãã³ãœãŒã¹ã®å©çšãšè²¢ç®
GitHubã¯ãªãŒãã³ãœãŒã¹ãããžã§ã¯ãã®ãã¹ãã£ã³ã°ã«æé©ãªå Žæã§ããæ°å€ãã®éçºè ãèªåã®ãããžã§ã¯ããå ¬éããä»ã®éçºè ããããã®ãããžã§ã¯ãã«è²¢ç®ããããšãã§ããŸããããã«ãããããããçš®é¡ã®ããã°ã©ã ãã©ã€ãã©ãªãããŒã«ãåºå€§ãªã³ãã¥ããã£ã«ãã£ãŠç¶æããçºå±ããŠããŸãããŸããèªèº«ãéçºãããããžã§ã¯ããå ¬éããä»ã®äººã ãããã£ãŒãããã¯ãåŸãããšãå¯èœã§ãããã®ããã«ãGitHubã¯éçºè ãäºãã«åŠã³ãååããæé·ããããã®ã³ãã¥ããã£ãæäŸããŠããŸãã
4. GitHubã䜿ã£ãå®è·µçãªãããžã§ã¯ã管ç
4.1 ãããžã§ã¯ãã®èšç»
GitHubã«ã¯ããããžã§ã¯ããèšç»ããããã®æ©èœãåãã£ãŠããŸãã”Issues”ãš”Projects”ã¿ããå©çšããããšã§ãåã¿ã¹ã¯ã管çããé²æãäžèŠ§ã§ç¢ºèªããããšãå¯èœã§ãã”Issues”ã¯ã¿ã¹ã¯ããã°ãæ°æ©èœã®èŠæãªã©ãèšé²ãã管çããããã®ããŒã«ã§ããã”Projects”ã¯ãããã®Issueãå¯èŠåããã¿ã¹ã¯ã®ç¶æ³ã远跡ããããã®ããŒã«ã§ãããããã®æ©èœã䜿çšããããšã§ããããžã§ã¯ãã®å šäœåãææ¡ããããå¹ççã«ç®¡çããããšãã§ããŸãã
4.2 ã³ãŒãã¬ãã¥ãŒã®é©çš
GitHubã®Pull Requestæ©èœã¯ãã³ãŒãã¬ãã¥ãŒãåæ»ã«è¡ãããã®åŒ·åãªããŒã«ã§ããPull Requestã¯ããã©ã³ãã§è¡ã£ãå€æŽãã¬ãã¥ãŒããæ¿èªããäžã§ã¡ã€ã³ã®ã³ãŒãããŒã¹ã«ããŒãžããããã®ä»çµã¿ã§ããã¬ãã¥ã¢ãŒã¯å€æŽãããã³ãŒããè¡åäœã§ç¢ºèªããå¿ èŠã«å¿ããŠã³ã¡ã³ããæ®ãããšãã§ããŸããããã«ãããã³ãŒãã®å質ãä¿ã¡ã€ã€ããã¹ãäžæçãªç®æãçºèŠããæ©äŒãæäŸãããŸãã
4.3 GitHub Actionsãçšããèªåå
GitHub Actionsã¯ãCI/CDïŒContinuous Integration/Continuous DeploymentïŒãå®çŸããããã®æ©èœã§ãããœãããŠã§ã¢éçºã®ã¯ãŒã¯ãããŒãèªååããããšã§ãã³ãŒãã®ãã«ãããã¹ãããããã€ãšãã£ãäžé£ã®äœæ¥ãå¹ççã«è¡ãããšãã§ããŸããäŸãã°ãæ°ããã³ãŒããPushãããéã«èªåçã«ãã¹ããå®è¡ããåé¡ãããã°éçºè ã«éç¥ããããšãã£ãéçšãå¯èœã§ãã
4.4 ã»ãã¥ãªãã£ãšãã©ã€ãã·ãŒ
GitHubã¯ã»ãã¥ãªãã£ãšãã©ã€ãã·ãŒã«åªããŠããŸããåå¥ã®ãªããžããªã¯ãããªãã¯ïŒå šãŠã®äººãé²èŠ§å¯èœïŒãšãã©ã€ããŒãïŒç¹å®ã®ãŠãŒã¶ãŒã®ã¿ãé²èŠ§å¯èœïŒã®ã©ã¡ãããéžã¶ããšãã§ããŸãããŸãã2段éèªèšŒãæ©å¯æ å ±ã®èªåã¹ãã£ã³æ©èœãªã©ãå€æ°ã®ã»ãã¥ãªãã£ãªãã·ã§ã³ãæäŸãããŠããŸããããã«ãããããªãã®ãããžã§ã¯ããšãã®ããŒã¿ã¯ãã£ãããšä¿è·ãããŸãã
5. GitHubã®ã³ãã¥ããã£ãšãªãœãŒã¹
5.1 å ¬åŒããã¥ã¡ã³ããŒã·ã§ã³ãšãã¥ãŒããªã¢ã«
GitHubã®å ¬åŒããã¥ã¡ã³ããŒã·ã§ã³ã¯ãåå¿è ããäžçŽè ãŸã§å¹ åºãç¥èã¬ãã«ã«å¯Ÿå¿ããŠããŸããããã¥ã¡ã³ããŒã·ã§ã³ã«ã¯GitHubã®æ©èœãæäœæ¹æ³ããã¹ããã©ã¯ãã£ã¹ãªã©ã詳现ã«èšèŒãããŠãããããŸããŸãªãããã¯ã«ã€ããŠç解ãæ·±ããããšãã§ããŸãããŸããå ¬åŒãã¥ãŒããªã¢ã«ãçšæãããŠãããå®éã®æé ã«æ²¿ã£ãŠGitHubã䜿ããªããåŠã¶ããšãã§ããŸãã
5.2 GitHubã«é¢ããããã°ããã©ãŒã©ã
GitHubã«é¢ããæ å ±ãåŸãããã®ããã°ããã©ãŒã©ã ã掻çºã«ååšããŠããŸããGitHubå ¬åŒã®ããã°ã§ã¯ææ°ã®ã¢ããããŒããæ©èœã®çŽ¹ä»ããŠãŒã¹ã±ãŒã¹ã®å ±æãªã©ãè¡ãããŠããŸãããŸããGitHubãŠãŒã¶ãŒã³ãã¥ããã£ãStack Overflowã®GitHubã¿ã°ãªã©ã§ã¯ãå®éã®éçºè ããã®ã¢ããã€ã¹ã質åãžã®åçãåŸãããšãã§ããŸãããããã®ãªãœãŒã¹ã掻çšããããšã§ãããæ·±ãç解ãå®è·µçãªæ å ±ãåŸãããšãã§ããŸãã
5.3 GitHubã«é¢ããæžç±ãšã³ãŒã¹
GitHubã«é¢ããæžç±ããªã³ã©ã€ã³ã³ãŒã¹ãå€æ°ååšããŠããŸããæžç±ã¯è©³çŽ°ãªè§£èª¬ããŠãŒã¹ã±ãŒã¹ã®çŽ¹ä»ãªã©ãç¶²çŸ çãªç¥èãæäŸããŠãããŸããäžæ¹ããªã³ã©ã€ã³ã³ãŒã¹ã§ã¯ãããªã¬ãã¹ã³ã課é¡ãéããŠGitHubã®åºç€ãå¿çšãåŠã¶ããšãã§ããŸããææã®ãã®ããããŸãããç¡æã§åå ã§ããã³ãŒã¹ããããŸãã®ã§ãèªåã®åŠç¿ã¹ã¿ã€ã«ã«åã£ãæ¹æ³ãéžã¶ããšãã§ããŸãã
GitHubã®ã³ãã¥ããã£ãšãªãœãŒã¹ã¯ãåžžã«é²åããŠããŸããæ°ããæ å ±ãåŠç¿ææãå®æçã«ãã§ãã¯ããããšã§ãææ°ã®GitHubã®å©çšæ¹æ³ããã¹ããã©ã¯ãã£ã¹ãææ¡ããã¹ãã«ã磚ãããšãéèŠã§ãã
çµè«
GitHubã®åŠç¿ã®äžæ©
æ¬ã¬ã€ããéããŠãGitHubã®åºæ¬çãªæŠå¿µãæ©èœããããŠæŽ»çšæ¹æ³ã«ã€ããŠåŠã³ãŸãããGitHubã¯ããŒãžã§ã³ç®¡çã·ã¹ãã ãšããŠã®åœ¹å²ã ãã§ãªãããããžã§ã¯ãã®å šäœçãªç®¡çãããŒã ã¯ãŒã¯ã®åŒ·åãæ¯ããå€æ©èœããŒã«ãšããŠåªããŠããŸãããã®ã¬ã€ãã§åŠãã ã¡ãªããã䜿ãæ¹ãç解ããå®éã®ãããžã§ã¯ããéçºæŽ»åã«ç©æ¥µçã«åãå ¥ããŠã¿ãŠãã ããã
GitHubã䜿ãããšã§ãã³ãŒãã®ããŒãžã§ã³ç®¡çãããŒã å ã®ã³ãã¥ãã±ãŒã·ã§ã³åŒ·åããããžã§ã¯ãã®é²è¡ç¶æ³ã®å¯èŠåãªã©ãéçºããã»ã¹ã®å¹çåãšå¹æçãªéçšãå¯èœãšãªããŸããããã«ããªãŒãã³ãœãŒã¹ã³ãã¥ããã£ãžã®åå ãä»ã®ãããžã§ã¯ããžã®è²¢ç®ãéããŠãåŠã³ã®å¹ ãåºããèªèº«ã®ã¹ãã«åäžã«ã€ãªããããšãå¯èœã§ãã
次ã®ã¹ããã
GitHubã®åºæ¬ãåŠãã åŸã¯ãå®éã®ãããžã§ã¯ãã§ã®æŽ»çšã«ææŠããŸããããå人ãããžã§ã¯ãã管çããããã®ãã©ã€ããŒããªããžããªã®äœæããæ¢åã®ãªãŒãã³ãœãŒã¹ãããžã§ã¯ãã«åå ããŠå®éã«ã³ãŒãã®è²¢ç®ãè¡ããªã©ã®çµéšã¯ãããªãã®ã¹ãã«ãåäžãããŸãã
ããã«ãGitHubã®å ¬åŒããã¥ã¡ã³ããŒã·ã§ã³ããã¥ãŒããªã¢ã«ãããã°ããã©ãŒã©ã ãªã©ã®è±å¯ãªãªãœãŒã¹ã掻çšããããæ·±ãç解ããŸãããããŸãããªã³ã©ã€ã³ã³ãŒã¹ãã³ãã¥ããã£ãéããŠããããžã§ã¯ã管çãéçºæ¹æ³ã«ã€ããŠã®ææ°ã®ãã¹ããã©ã¯ãã£ã¹ãåŠã¶ããšã倧åã§ãã
GitHubã¯ãåŠç¿ãšæé·ãç¶ããããã®çæ³çãªãã©ãããã©ãŒã ã§ããæ°ããªç¥èãç¶ç¶çã«åŸãªãããå®è·µçãªçµéšãç©ã¿éããããšã§ãããªãã¯GitHubãããå¹æçã«æŽ»çšããèªèº«ã®éçºã¹ãã«ãé«ããŠããããšãã§ããŸãã