翻蚳è
ã«ããç°¡åãªçŽ¹ä»ã GitHub Inc. ã®éçºè
ã® 1人ã«ãããå瀟ãæ¡çšããã¯ãŒã¯ãããŒã«é¢ããèå³æ·±ãèšäºã§ã¯ã翻蚳ã§äœ¿çšããç¹å¥ãªçšèªãããã€ãå¿
èŠã§ããã
è±èªã§ã ã¯ãŒã¯ãã㌠ããšããåèª1ã€ã§ååãªæŠå¿µã¯ã ã ã¯ãŒã¯ãã㌠ããšãããã¬ãŒãºã§ãã·ã¢èªã«ç¿»èš³ããå¿
èŠããããŸã ã ç§èªèº«ãã Googleã®ç¿»èš³ã®å©ããåããŠãããè¯ãããšãç¥ã£ãŠããããã§ã¯ãããŸããããããã£ãŠãç§ãšèªè
ã®äž¡æ¹ããããšãç¡çã§ãªããŠããããã«èããå¿
èŠããããŸãã
å¥ã®æŠå¿µã ããã〠ãã¯ããã°ãã°ã ããã〠ããšããèšèã§ãã·ã¢èªã«ç¿»èš³ãããŸãããç§ã®ç¿»èš³ã§ã¯ããœããšãã®äºåäœæ¥ããã®è»¢æãæãåºãããšã«ããŸãã-ã çç£ã«ããã ã€ãããŒã·ã§ã³ã®å°å ¥ ã-ç§ã¯ã å°å
¥ ãã®æ°æ©èœã«ã€ã㊠話ãå§ããŸãã å®éã®ãšããã以äžã§èª¬æããã¯ãŒã¯ãããŒã«ã¯ããªãªãŒã¹ãããªããããããªãªãŒã¹ãã«ã€ããŠèª¬æããã®ã¯å€å°äžäŸ¿ã§ãã
æ®å¿µãªããšã«ãäžéšã®ç¿»èš³è ã¯ãã ã³ãŒãã€ã³ãžã§ã¯ã·ã§ã³ ããšããçšèªã«å«ãŸãããã€ã³ãžã§ã¯ã·ã§ã³ãïŒãŸãã¯ãã€ã³ãžã§ã¯ã·ã§ã³ãïŒã®ãžã¥ãŒã·ãŒãªã¡ã¿ãã¡ãŒãç¡ç€Œã«æ®ºãããšããåŸåãããããã ã ã³ãŒãã€ã³ãžã§ã¯ã·ã§ã³ ããšãããã¬ãŒãºã«ãã£ãŠç¿»èš³ãããããšããããŸãã ãã®æ··ä¹±ã¯ç§ãæ··ä¹±ãããŸãããç§ãããã«ã€ããŠã§ããããšã¯äœããããŸããã ããã§ãã³ãŒãã€ã³ãžã§ã¯ã·ã§ã³ããšã¯ãä» ã®äººã®ã³ãŒãã§ã¯ãªãããããã¯ã·ã§ã³ïŒãããã¯ã·ã§ã³ïŒã§æ£ç¢ºã«å°å
¥ããããšãå¿ããªã㧠ãã ããã
ãGitHub Inc.ããšããæå³ãæã€ãGithubããšãããã¬ãŒãºãšããGitHub.comã ãšããæå³ãæã€ãGithubããšãããã¬ãŒãºã䜿çšããããšããŸããã 確ãã«ãæã«ã¯ããããåé¢ããããšã¯å°é£ã§ãã
è±èªã§
å¥ã®æŠå¿µã ããã〠ãã¯ããã°ãã°ã ããã〠ããšããèšèã§ãã·ã¢èªã«ç¿»èš³ãããŸãããç§ã®ç¿»èš³ã§ã¯ããœããšãã®äºåäœæ¥ããã®è»¢æãæãåºãããšã«ããŸãã-ã çç£ã«ããã ã€ãããŒã·ã§ã³ã®å°å ¥ ã-ç§ã¯
æ®å¿µãªããšã«ãäžéšã®ç¿»èš³è ã¯ã
ãGitHub Inc.ããšããæå³ãæã€ãGithubããšãããã¬ãŒãºãšãã
GitãããŒã®åé¡
ç§ã¯ãã¡ãã¡ãæ ããŠã人ã ã«GitãæããŠããŸããæè¿å®æœããã»ãšãã©ãã¹ãŠã®ã¬ãã¹ã³ãšã»ãããŒã§ã圌ãã¯git-flow
ãã ããgit-flowã«ãåé¡ããããŸãã æ©èœãã©ã³ããmaster
ç§ã«ãšã£ãŠã
ãããã®åé¡ã¯ãã¹ãŠãã¯ããã«åçŽãªã¯ãŒã¯ãããŒã«åŸãããšã§ç°¡åã«å æã§ããŸãã githubã§ã¯
ãã®ã·ã³ãã«ãã«ã¯ããã€ãã®å©ç¹ããããŸãã
Githubã¯ãŒã¯ãããŒ
ããã§ã¯ããªãgithubã§
ãã®ãããªæ°è£œåã®é »ç¹ãªå°å ¥ã«ã¯ãå€ãã®å©ç¹ããããŸãã æ°æéããšã«çºçããå Žåãå€æ°ã®äž»èŠãªãã°ãåŒãèµ·ããããšã¯ã»ãšãã©äžå¯èœã§ãã å°ããªæ¬ é¥ãçºçããŸããããããã¯éåžžã«è¿ éã«ä¿®æ£ã§ããŸãïŒãããŠãä¿®æ£ãé çªã«å®è£ ãããŸãïŒã éåžžããããããã£ãã¯ã¹ããäœæãã
å€æŽãç¶ç¶çã«å®è£ ããããšã®ãã1ã€ã®å©ç¹ã¯ãããããçš®é¡ã®åé¡ã«è¿ éã«å¯Ÿå¿ã§ããããšã§ãã ã»ãã¥ãªãã£åé¡ã®å ±åã«å¯Ÿå¿ããããæ°æ©èœã«å¯Ÿããå°ããªïŒãããèå³æ·±ãïŒãªã¯ãšã¹ããå®è¡ããããšãã§ããŸãããéåžžã®ïŒãŸãã¯å€§èŠæš¡ãªïŒãµã€ãºã®æ©èœã®éçºã«é¢é£ããå€æŽãè¡ãå Žåã«ãåãããã»ã¹ãæ©èœããŸãã ããã»ã¹ã¯åãã§ãéåžžã«ç°¡åã§ãã
ã©ããã£ãŠããã®
ã§ã¯ãgithubã®ã¯ãŒã¯ãããŒãšã¯äœã§ããïŒ
- masterãã©ã³ãã®ã³ã³ãã³ãã¯åžžã«ãããã€å¯èœã§ãã
-
æ°ãããã®ã§ äœæ¥ã éå§ãã ãã¹ã¿ãŒãã©ã³ããã æ°ãããã©ã³ããäœæããŸããååã¯ãã®ç®çã«å¯Ÿå¿ããŠããŸãïŒããšãã°ãã new-oauth2-scopes ãïŒã
- ãã®ãã©ã³ãã«ããŒã«ã«ã§ã³ãããããåŸãäœæ¥ãââãµãŒããŒäžã®åãååã®ãã©ã³ãã«å®æçã«éä¿¡ããŸãã
- ãã£ãŒãããã¯ããã«ããå¿
èŠãªãšãããŸãã¯ããŒãžã®æºåãã§ããŠãããã©ã³ããèŠã€ãã£ãããããŒãžãªã¯ãšã¹ããéä¿¡ããŸãã
- ä»ã®äººãæ©èœãã¬ãã¥ãŒããŠæ¿èªãããããã©ã³ã
ã ãã¹ã¿ãŒãã©ã³ãã« ããŒãžã§ããŸãã
- ãã¹ã¿ãŒãã©ã³ãã«æ°ããã³ãŒããè£å
ãããã
ã ããã«å®çšŒå ç°å¢ã«å®è£ ã§ããŸã ã
ãããã¯ãŒã¯ãããŒå šäœã§ãã éåžžã«ã·ã³ãã«ã§çç£çã§ãããªã倧ããªã¯ãŒãã³ã°ã°ã«ãŒãã§æ©èœããŸããçŸåš35人ãGithubã§åããŠããããã®ãã¡15人ã20人ãåããããžã§ã¯ã
ããã§ã¯ãåã¹ããããé çªã«èŠãŠãããŸãããã
masterãã©ã³ãã®ã³ã³ãã³ãã¯åžžã«ãããã€å¯èœã§ãã
äžè¬ã«ãããã¯ã·ã¹ãã å šäœã§å¯äžã®å³æ Œãªã«ãŒã«ã§ãã ãã©ã³ãã¯1ã€ã ãã§ãåžžã«ç¹å¥ãªæå³ãããã ãã¹ã¿ãŒãšåŒãã§ããŸãã ç§ãã¡ã«ãšã£ãŠãããã¯ããã®ãã©ã³ãã®ã³ãŒããå®çšŒåç°å¢ã§å®è£ ãããããææªã®å Žåãæ°æé以å ã«å®è£ ãããããšãæå³ããŸãã ãã®ãã©ã³ããããã€ãã®ã³ããããããŒã«ããã¯ããããšã¯éåžžã«ãŸãã§ãïŒäœæ¥ããã£ã³ã»ã«ããããïŒïŒåé¡ãçºçããå Žåãã³ãããããã®å€æŽã¯ãã£ã³ã»ã«ãããããå®å šã«æ°ããã³ãããã§åé¡ãä¿®æ£ãããŸããããã©ã³ãèªäœã¯ã»ãšãã©æ»ããŸããã
ãã¹ã¿ãŒãã©ã³ãã¯å®å®ããŠããŸãã æ¬çªã³ãŒããå®è£ ããããããã«åºã¥ããŠæ°ãããã©ã³ããäœæããããšã¯åžžã«ãåžžã«å®å šã§ãã ãã¹ã¿ãŒãããã¹ããããŠããªãã³ãŒããåãåã£ãããã¢ã»ã³ããªãå£ããå ŽåãéçºããŒã ã®ã瀟äŒçå¥çŽãã«éåããŠããã®ã§ãããã«ã€ããŠç«ãããéããŠãã ããã åãã©ã³ãã¯åœç€Ÿã§ãã¹ããããçµæã¯
ãã¹ã¿ãŒ ãã©ã³ãããã® åå²ãååãç®çã«å¯Ÿå¿ããæ°ãããã©ã³ã
Githubã«ãã©ã³ãã®ãªã¹ããããããŒãžã«ã¢ã¯ã»ã¹ãããšãæè¿äœæ¥ãããã©ã³ã
![[ã¹ã¯ãªãŒã³ã·ã§ãã]](https://habrastorage.org/getpro/habr/post_images/d34/331/a8d/d34331a8d0a6f47b983a1a9d79845b03.png)
ããã¯ãçŸåšã®ç¶æ ã倧ãŸãã«æšå®ããå°æ¥ã®æ©èœã®ãªã¹ãã®ãããªãã®ã§ãã ãã®ããŒãžã䜿çšããªãå Žåã¯ãã¯ãŒã«ãªæ©èœãããããšãç¥ã£ãŠããå¿ èŠããããŸããçŸåšéžæãããã©ã³ãã«åºæã®äœæ¥ãè¡ããããã©ã³ãã®ã¿ã衚瀺ãããææ°ã®ãã©ã³ãã衚瀺ãããããã«ãœãŒããããŸãä»äºã¯äžããã§ããã 奜å¥å¿ãæã¡ããå Žåã¯ããæ¯èŒããã¿ã³ãã¯ãªãã¯ããŠãæ£ç¢ºã«çµåãããå·®åãšãã®ãã©ã³ãã«åºæã®ã³ãããã®ãªã¹ãã確èªããŸãã
ããŠããããæžããšããªããžããªã«æªæ¥ç¶ã®ã³ãŒããæã€44ã®ãã©ã³ãããããŸãããå é±ã«ã³ãŒããåãåã£ãã®ã¯ãã®ãã¡ã®9ãŸãã¯10ã ãã§ããããšãæããã§ãã
ååä»ããã©ã³ãã³ãŒãããµãŒããŒã«åžžã«éä¿¡ãã
ããã«ãããã©ãããããã®çŽå€±ãŸãã¯ããŒããã©ã€ãã®é害ãçºçããå Žåã«å®å šã³ããŒãäœæãããŸãã ããã¯ãéçºè éã®çµ¶ãéãªãæ å ±äº€æããµããŒãããããã«éèŠã§ãã åçŽãª
$ git fetch remote: Counting objects: 3032, done. remote: Compressing objects: 100% (947/947), done. remote: Total 2672 (delta 1993), reused 2328 (delta 1689) Receiving objects: 100% (2672/2672), 16.45 MiB | 1.04 MiB/s, done. Resolving deltas: 100% (1993/1993), completed with 213 local objects. From github.com:github/github * [new branch] charlock-linguist -> origin/charlock-linguist * [new branch] enterprise-non-config -> origin/enterprise-non-config * [new branch] fi-signup -> origin/fi-signup 2647a42..4d6d2c2 git-http-server -> origin/git-http-server * [new branch] knyle-style-commits -> origin/knyle-style-commits 157d2b0..d33e00d master -> origin/master * [new branch] menu-behavior-act-i -> origin/menu-behavior-act-i ea1c5e2..dfd315a no-inline-js-config -> origin/no-inline-js-config * [new branch] svg-tests -> origin/svg-tests 87bb870..9da23f3 view-modes -> origin/view-modes * [new branch] wild-renaming -> origin/wild-renaming
ãŸãã誰ã§ãïŒGithubãã©ã³ããªã¹ãããŒãžã§ïŒä»ã®èª°ãäœæ¥ããŠãããã確èªã§ããŸããã³ãŒããåæããéçºè ãæ¯æŽãããã©ããã決å®ã§ããŸãã
ãã€ã§ãããŒãžãªã¯ãšã¹ããäœæãã
GitHubã«ã¯ã ããŒãžèŠæ±ãšåŒã°ãããã°ãããã³ãŒãã¬ãã¥ãŒã·ã¹ãã ããããŸã ã éçºè ããããååã«èªèããŠããªãã®ã§ã¯ãªãããšæããŸãã å€ãã®äººã ã¯ããªãŒãã³ãœãŒã¹ã³ãŒãã®éåžžã®äœæ¥ã§ããã䜿çšããŸãããããžã§ã¯ããåå²ããã³ãŒããæŽæ°ãããããžã§ã¯ãææè ã«ããŒãžèŠæ±ãéä¿¡ããŸããã ãã ãããã®ã·ã¹ãã ã¯å éšã³ãŒãæ€èšŒã®æ段ãšããŠã䜿çšã§ããããã䜿çšããŠããŸãã
å®éãããŒãžèŠæ±ãšããŠã§ã¯ãªãããã©ã³ãã衚瀺ããã³è°è«ããæ段ãšããŠäœ¿çšããŸãã GitHubã¯ãåããããžã§ã¯ãïŒãªãŒãã³ãŸãã¯ãã©ã€ããŒãïŒã®ãããã©ã³ãããå¥ã®ãã©ã³ããžã®ããŒãžãªã¯ãšã¹ãã®éä¿¡ããµããŒãããŠããããããªã¯ãšã¹ãã§ã¯ãããã®ã³ãŒããåãå ¥ããŠãã ãããã ãã§ãªããããã®ã³ãŒãã®ãã³ããŸãã¯æŠèŠãå¿ èŠã§ãããšèšãããšãã§ããŸãã
![[ã¹ã¯ãªãŒã³ã·ã§ãã]](https://habrastorage.org/getpro/habr/post_images/d12/ec7/1f1/d12ec71f16a3407bee8b491f909bf4cf.png)
ãã®å³ã§ã¯ãJoshãBrianã«ã³ãŒãã調ã¹ãããã«äŸé Œããã³ãŒãã®1è¡ã«ã€ããŠã¢ããã€ã¹ãäžããŠããããšãããããŸãã 以äžã«ãJoshãBrianã®èæ ®äºé ã«ã©ã®ããã«åæãããããã«å¿çããããã«ã³ãŒããè£å ãããã瀺ããŸãã
![[ã¹ã¯ãªãŒã³ã·ã§ãã]](https://habrastorage.org/getpro/habr/post_images/4f6/d9e/451/4f6d9e45140bff51431559c22f9ba58c.png)
æçµçã«ãã³ãŒãã¯ãŸã ãã¹ã段éã«ããããšãããããŸãããŸã å®è£ ã®æºåãã§ããŠãããã©ã³ãã§ã¯ãããŸãããå®é
æ©èœããã©ã³ãã§ã®äœæ¥ãæ»ãããã«ããã¢ããã€ã¹ãå¿ èŠãªå ŽåããŸãã¯éçºè ã§ããããã¶ã€ããŒãäœæ¥ã確èªããå¿ èŠãããå ŽåïŒãŸãã¯ãã®éïŒããŸãã¯ã³ãŒããã»ãšãã©ãªãïŒãŸãã¯ãŸã£ãããªãïŒå Žåã§ããã¹ã¯ãªãŒã³ã·ã§ãããšäžè¬çãªã¢ã€ãã¢ã®
ããŒãžãªã¯ãšã¹ãã§ã¯ãçµåãããdiffã®åã ã®è¡ãåã ã®ã³ãããããŸãã¯ãªã¯ãšã¹ãå šäœå šäœã«ã€ããŠã³ã¡ã³ãããããšãã§ããã¬ããªã«ã®ã³ããŒãåäžã®ãã£ã¹ã«ãã·ã§ã³ã圢æãããããããã¯çŽ æŽãããããšã§ãã ãã©ã³ãã«ã³ãŒããè£å ãç¶ããããšãã§ããŸãããã®ããã
ãã©ã³ããé·ãããŠããã©ã³ãå ã®ã³ãŒãã
![[ã¹ã¯ãªãŒã³ã·ã§ãã]](https://habrastorage.org/getpro/habr/post_images/d93/f8d/6cf/d93f8d6cf682b8a07a2f7c8434ba292b.png)
ãã©ã³ãã§ã®äœæ¥ãå®å šã«å®å šã«çµäºããå®è£ ã®æºåãã§ãããšæãããã次ã®ã¹ãããã«é²ãããšãã§ããŸãã
ã¯ãšãªã¬ãã¥ãŒåŸã«ã®ã¿ããŒãž
![[ã¹ã¯ãªãŒã³ã·ã§ãã]](https://habrastorage.org/getpro/habr/post_images/68b/481/bac/68b481bac01639a14be98c5bb5fdcbec.png)
æ¿èªãåŸããããã©ã³ããCIã«åæ Œãããšã
ã¬ãã¥ãŒçŽåŸã®å®è£
æåŸã«ãäœæ¥ã¯çµäºãããã®ææã¯masterãã©ã³ãã«ãããŸãã ããã¯ãä»ããå®è£ ãéå§ããªããŠããä»ã®åŸæ¥å¡ã®ãã©ã³ãã®åºç€ãšãªãã次ã®å®è£ ïŒæ°æé以å ã«è¡ãããå¯èœæ§ãé«ãïŒãããžãã¹ã«æ¬æ°ããããããããšãæå³ããŸãã ãããŠã
hubotãšããååã®ãã£ã³ããã¡ã€ã€ãŒãããã¯ãåŸæ¥å¡ã®æ瀺ã«åŸã£ãŠã³ãŒããæ¿å ¥ã§ããŸãã hubot deploy githubããã£ããã®ãããã¯ã·ã§ã³ã³ãã³ãã«éä¿¡ããã ãã§ååã§ããã³ãŒãã¯ãããã¯ã·ã§ã³ã«ç§»åããå¿ èŠãªãã¹ãŠã®ããã»ã¹ãïŒããŠã³ã¿ã€ã ãªãã§ïŒåèµ·åããŸãã ãããGithubã§ã©ã®ãããã®é »åºŠã§çºçããããèªåã§å€æã§ããŸãã
![[ã¹ã¯ãªãŒã³ã·ã§ãã]](https://habrastorage.org/getpro/habr/post_images/a1c/aa6/790/a1caa6790c77bfc0a04fa43cc78fc13b.png)
ã芧ã®ãšããã6人ã®ç°ãªã人ïŒ1人ã®ãµããŒããš1人ã®ãã¶ã€ããŒãå«ãïŒã1æ¥ã«20å以äžã³ãŒããå®è£ ããŸããã
äžèšã®ãã¹ãŠãã1è¡ã®å€æŽãå«ã1ã€ã®ã³ãããã§ãã©ã³ãã«å¯ŸããŠè¡ããŸããã ãã®ããã»ã¹ã¯ãã·ã³ãã«ã§ãããããããã¹ã±ãŒã©ãã«ã§åŒ·åã§ãã åãããšã¯ã2é±éã®äœæ¥ãå¿ èŠãšãã50ã®ã³ããããå«ãæ©èœãã©ã³ãã§ãçŽ10åã§1ã€ã®ã³ãããã§è¡ãããšãã§ããŸãã ããã»ã¹ã¯éåžžã«åçŽã§ãããè² æ ãå°ãªããããã·ã³ã°ã«ã³ãããã®å Žåã§ããã®å¿ èŠæ§ã¯è¿·æã§ã¯ãããŸããããã®ããã人ã ã¯ãã£ãã«åã ã®ã¹ããããã¹ããããããã¹ããããããããŸãã-ãããéèŠã§ããã»ã©å°ãããŠåãã«è¶³ããªãå€æŽã§ãªãéãã
ç§ãã¡ã®ã¯ãŒã¯ãããŒã¯ã匷åã§ãããªããéåžžã«ã·ã³ãã«ã§ãã GitHubã¯éåžžã«å®å®ãããã©ãããã©ãŒã ã§ãããåââé¡ãçºçããå Žåã¯è¿ éã«å¯Ÿå¿ããæ°ããæ©èœãæ¥éã«å®è£ ãããŠãããšããç¹ã«å€ãã®äººãåæãããšæããŸãã ã¯ãŒã¯ãããŒã®é床ãšã·ã³ãã«ããåäžãããããã¹ãããæ°ãåæžãããããå質ãå®å®æ§ã®é¢ã§åŠ¥åã¯ãããŸããã
ãããã«
Gitèªäœãç解ããã®ã¯ããªãé£ããã§ãã å¿ èŠä»¥äžã«è€éãªäœæ¥ããã»ã¹ã§ã䜿çšãããŠããå Žåãåé¡ã¯æ¥ã ã®é床ã®çæ§çãªåªåã§çµãããŸãã ç§ã¯ãããªãã®ã°ã«ãŒãã®ä»äºã«é©ããå¯èœãªéãã·ã³ãã«ãªã·ã¹ãã ã®äœ¿çšãããããŠãã®ã·ã¹ãã ãæ©èœããªããªããŸã§ãåžžã«æå±ããŸãã é¿ããããªãå Žåã«ã®ã¿è€éããè¿œå ããŠãã ããã
å ¬åŒã³ãŒããªãªãŒã¹ãé·ãééïŒãªãªãŒã¹éã§æ°é±éããæ°ãæïŒã§æºåããä¿®æ£ããã°ã©ã ãäœæãã以åã®ããŒãžã§ã³ã®ãã©ã³ãããµããŒããããã®ãããªãŸããªã³ãŒããªãªãŒã¹ã®ããã«å¿ èŠãªä»ã®äœæ¥ãè¡ãå¿ èŠãããã¯ãŒãã³ã°ã°ã«ãŒãã®å Žåãããã¯çã«ããªã£ãŠããŸã
æ¯æ¥ã®çç£ãæŽæ°ããæ©èœãç¶ç¶çã«ãã¹ãããã³å®è£ ããã³ãŒãé ä¿¡ãäžå¿ã«æ§ç¯ãããã°ã«ãŒãã®å Žå