ä»Šę—„ć‹ć‚‰ćÆć˜ć‚ć‚‹GitHub ļ½ž åˆåæƒč€…ćŒGitć‚’ć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«ć—ć¦ć€ćƒ—ćƒ«ćƒŖć‚Æć§ćć‚‹ć‚ˆć†ć«ćŖć‚‹ć¾ć§ć‚’č§£čŖ¬

ć‚Øćƒ³ć‚øćƒ‹ć‚¢ć§ć‚ć‚Œć°ć€ćƒćƒ¼ćƒ é–‹ē™ŗć§ćÆć‚‚ć”ć‚ć‚“ć®ć“ćØć€å€‹äŗŗé–‹ē™ŗć§ć‚‚Gitć‚’ē”Øć„ć¦ćƒćƒ¼ć‚øćƒ§ćƒ³ē®”ē†ć—ć¦ć„ććŸć„ć‚‚ć®ć€‚ä»Šå›žćÆć€Git悄GitHubć‚’ćÆć˜ć‚ć¦ä½æć†äŗŗć«å‘ć‘ć¦ć€å°Žå…„ć‹ć‚‰åˆę­©ēš„ćŖä½æć„ę–¹ć¾ć§ć‚’č§£čŖ¬ć—ć¾ć™ć€‚

ä»Šę—„ć‹ć‚‰ćÆć˜ć‚ć‚‹GitHub ļ½ž åˆåæƒč€…ćŒGitć‚’ć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«ć—ć¦ć€ćƒ—ćƒ«ćƒŖć‚Æć§ćć‚‹ć‚ˆć†ć«ćŖć‚‹ć¾ć§ć‚’č§£čŖ¬

ć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰ć®ē®”ē†ćÆć§ćć¦ć„ć¾ć™ć‹ļ¼Ÿ ćƒ•ć‚”ć‚¤ćƒ«ć‚’äæ®ę­£ć™ć‚‹ćØćć«ć€äæ®ę­£å‰ć®ć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰ć‚’hoge.php.bakć®ć‚ˆć†ćŖćƒćƒƒć‚Æć‚¢ćƒƒćƒ—ćƒ•ć‚”ć‚¤ćƒ«ćØć—ć¦ę®‹ć—ć€é–‹ē™ŗē’°å¢ƒć‚’ć‚“ćƒŸć ć‚‰ć‘ć«ć—ć¦ć„ć¾ć›ć‚“ć‹ļ¼Ÿ

ć‚Øćƒ³ć‚øćƒ‹ć‚¢ć§ć‚ć‚Œć°ć€ćƒćƒ¼ćƒ é–‹ē™ŗć§ćÆć‚‚ć”ć‚ć‚“ć®ć“ćØć€å€‹äŗŗé–‹ē™ŗć§ć‚‚Gitć‚’ē”Øć„ć¦ćƒćƒ¼ć‚øćƒ§ćƒ³ē®”ē†ć—ć¦ć„ććŸć„ć‚‚ć®ć€‚ä»Šå›žćÆć€Git悄GitHubć‚’ćÆć˜ć‚ć¦ä½æć†äŗŗć«å‘ć‘ć¦ć€å°Žå…„ć‹ć‚‰åˆę­©ēš„ćŖä½æć„ę–¹ć¾ć§ć‚’č§£čŖ¬ć—ć¾ć™ć€‚

ここではGitć®č©³ē“°ćŖä»•ēµ„ćæć«ćÆč§¦ć‚Œć¾ć›ć‚“ć€‚Git悄GitHubć‚’åˆ©ē”Øć—ćŸć“ćØć®ćŖć„äŗŗćŒć€Gitć‚’ē”Øć„ćŸé–‹ē™ŗć®ęµć‚Œć‚’ć–ć£ćć‚ŠćØē†č§£ć—ć€ćØć‚Šć‚ćˆćšč©¦ć™ć“ćØćŒć§ćć‚‹ć‚ˆć†ć«ćŖć‚‹ć“ćØć‚’ē›®ēš„ćØć—ć¦ć„ć¾ć™ć€‚

GitとGitHubć®åŸŗē¤ŽēŸ„č­˜

Git悄GitHubćØć„ć†čØ€č‘‰ć‚’čžć„ćŸć“ćØćÆć‚ć‚‹ć§ć—ć‚‡ć†ć€‚GitとGitHubćÆć€ćć‚Œćžć‚ŒęŒ‡ć—ē¤ŗć™ć‚‚ć®ćŒé•ć„ć¾ć™ć€‚ć¾ćšćÆć€GitとGitHubćŒćć‚Œćžć‚Œä½•ćŖć®ć‹ć‚’ē°”å˜ć«čŖ¬ę˜Žć—ć¾ć—ć‚‡ć†ć€‚

GitćÆć€åˆ†ę•£åž‹ćƒćƒ¼ć‚øćƒ§ćƒ³ē®”ē†ć‚·ć‚¹ćƒ†ćƒ ć®åē§°ć§ć™ć€‚ć“ć®ć‚ćØč§£čŖ¬ć—ć¾ć™ćŒć€GitćÆćƒ­ćƒ¼ć‚«ćƒ«ć®PCć§ē·Øé›†ä½œę„­ć‚’č”Œć„ć€ćƒ•ć‚”ć‚¤ćƒ«ć®äæ®ę­£å±„ę­“ć‚‚ē®”ē†ć§ćć¾ć™ć€‚

1 Gitgit-scm.com

ć‚½ćƒ•ćƒˆć‚¦ć‚§ć‚¢ć®ćƒćƒ¼ć‚øćƒ§ćƒ³ē®”ē†ć‚·ć‚¹ćƒ†ćƒ ćØć—ć¦ć€ä»„å‰ćÆCVS悄SubversionćŒć‚ˆćä½æć‚ć‚Œć¦ć„ć¾ć—ćŸćŒć€ć„ć¾ć§ćÆGitćŒęŽ”ē”Øć•ć‚Œć‚‹å “åˆćŒå¤šć„ć§ć—ć‚‡ć†ć€‚

一方、GitHubは、Gitć‚’ē”Øć„ćŸć‚½ćƒ•ćƒˆć‚¦ć‚§ć‚¢é–‹ē™ŗćƒ—ćƒ­ć‚øć‚§ć‚Æćƒˆć®ćŸć‚ć®å…±ęœ‰ć‚¦ć‚§ćƒ–ć‚µćƒ¼ćƒ“ć‚¹ć®åē§°ć§ć™ć€‚

2 How people build software Ā· GitHubgithub.com

Gitć§ć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰ć‚’ē®”ē†ć™ć‚‹ć ć‘ć§ćŖćć€GitHubäøŠć§ćƒ¬ćƒ“ćƒ„ćƒ¼ć‚’ć—ćŸć‚Šć€ä»–ć®ćƒ”ćƒ³ćƒćƒ¼ćØć‚³ćƒ©ćƒœćƒ¬ćƒ¼ć‚·ćƒ§ćƒ³ć—ćŸć‚Šć™ć‚‹ć“ćØć§ć€ Gitć®ēœŸć®åŠ›ćŒē™ŗę®ć•ć‚Œć‚‹ć§ć—ć‚‡ć†ć€‚

GitćÆć‚·ć‚¹ćƒ†ćƒ ć€GitHubはGitć‚’ē”Øć„ćŸć‚µćƒ¼ćƒ“ć‚¹ć€‚ę··åŒć—ćŖć„ć‚ˆć†ć«ć—ć¾ć—ć‚‡ć†ć€‚

Gitć§ćÆćƒ­ćƒ¼ć‚«ćƒ«ć§é–‹ē™ŗć‚’é€²ć‚ć‚‹ć“ćØćŒć§ćć‚‹

Gitć®ē‰¹å¾“ć‚’ē°”å˜ć«ć¾ćØć‚ć‚‹ćØć€ę¬”ć®ć‚ˆć†ć«ćŖć‚Šć¾ć™ć€‚

  • ćƒ­ćƒ¼ć‚«ćƒ«ć§ä½œę„­ćŒć§ćć‚‹
  • åŒć˜ęƒ…å ±ć‚’ęŒć£ćŸćƒŖćƒć‚øćƒˆćƒŖļ¼ˆćƒćƒ¼ć‚øćƒ§ćƒ³ē®”ē†åÆ¾č±”ć®ćƒ•ć‚”ć‚¤ćƒ«ē¾¤ļ¼‰ć‚’ć€é–‹ē™ŗč€…ć”ćØć«ęŒć¤ć“ćØćŒć§ćć‚‹

CVS悄Subversionć§ćÆć€ć„ć¤ć§ć‚‚å…Øå“”ćŒå…±ęœ‰ć™ć‚‹ćƒŖćƒć‚øćƒˆćƒŖć«åÆ¾ć—äæ®ę­£å†…å®¹ć‚’åę˜ ļ¼ˆć‚³ćƒŸćƒƒćƒˆļ¼‰ć—ć¾ć™ļ¼ˆé›†äø­åž‹ļ¼‰ć€‚ćć®ćŸć‚ć€ę°—ć‚’ć¤ć‘ćŖć„ćØć‚³ćƒŸćƒƒćƒˆć®éš›ć«é–‹ē™ŗäø­ć®äøå®Œå…ØćŖć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰ć€å®ŸéØ“ēš„ćŖć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰ćŒå…±ęœ‰ć•ć‚Œć¦ć—ć¾ć†å±é™ŗę€§ćŒć‚ć‚Šć¾ć™ć€‚

3
é›†äø­åž‹ć®ćƒćƒ¼ć‚øćƒ§ćƒ³ē®”ē†ć‚·ć‚¹ćƒ†ćƒ ć®å±é™ŗę€§

一方、 åˆ†ę•£åž‹ć®Gitć§ć‚ć‚Œć°ć€ćƒ­ćƒ¼ć‚«ćƒ«ć®PCäøŠć§ć‚³ćƒŸćƒƒćƒˆćŒć§ćć¾ć™ć€‚ę‰‹å…ƒć§ć‚³ćƒŸćƒƒćƒˆć‚’ē¶šć‘ćŸć®ć”ć€ä»»ę„ć®ć‚æć‚¤ćƒŸćƒ³ć‚°ć§ćƒ—ćƒƒć‚·ćƒ„ć§ćć¾ć™ć€‚ćć®ćŸć‚ć€é–‹ē™ŗé€”äø­ć®ć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰ćŒć„ććŖć‚Šå…±ęœ‰ć—ć¦ć„ć‚‹ćƒ”ćƒ³ćƒćƒ¼å…Øå“”ć«å½±éŸæć‚’äøŽćˆć‚‹åæƒé…ćŒć‚ć‚Šć¾ć›ć‚“ć€‚

4
åˆ†ę•£åž‹ć®Gitć§ćÆćƒ­ćƒ¼ć‚«ćƒ«ć§é–‹ē™ŗć—ć¦ćƒžćƒ¼ć‚øć§ćć‚‹

ä¾‹ćˆć‚‹ćŖć‚‰ć°ć€CVS悄Subversionć®ćØććÆå…¬é–‹ęøˆćæć®ćƒ–ćƒ­ć‚°ć‚’ęŽØę•²ć—ćŖć‘ć‚Œć°ćŖć‚‰ćŖć‹ć£ćŸć‚‚ć®ćŒć€Gitć«ćŖć‚Œć°éžå…¬é–‹ć®äø‹ę›øćēŠ¶ę…‹ć§ęŽØę•²ć§ćć‚‹ć‚ˆć†ć«ćŖć£ćŸć€ćØć„ć†ć‚¤ćƒ”ćƒ¼ć‚øć§ć™ć€‚

Gitć®åŸŗē¤Žē”ØčŖž

Gitć‚’ę‰±ć†äøŠć§ć€ęŠ¼ć•ćˆć¦ćŠććŸć„ē”ØčŖžć‚’ć¾ćØć‚ć¾ć™ć€‚

ē”ØčŖž 内容
ćƒŖćƒć‚øćƒˆćƒŖļ¼ˆrepository) ćƒ‡ćƒ¼ć‚æć‚’äæå­˜ć™ć‚‹å “ę‰€ć€‚Gitć§ćÆć€ć“ć®ćƒŖćƒć‚øćƒˆćƒŖå˜ä½ć§ćƒ‡ćƒ¼ć‚æć‚’ē®”ē†ć™ć‚‹ć€‚äæ®ę­£å±„ę­“ć‚‚äæå­˜ć•ć‚Œć¦ć„ć‚‹ć€‚
ćƒŖćƒ¢ćƒ¼ćƒˆćƒŖćƒć‚øćƒˆćƒŖļ¼ˆremote repository) ć‚µćƒ¼ćƒć«ć‚ć‚‹ćƒŖćƒć‚øćƒˆćƒŖć€‚ć‚µćƒ¼ćƒć«äæå­˜ć•ć‚Œć€å…±ęœ‰ć•ć‚Œć‚‹ć€‚
ćƒ­ćƒ¼ć‚«ćƒ«ćƒŖćƒć‚øćƒˆćƒŖļ¼ˆlocal repository) ćƒ­ćƒ¼ć‚«ćƒ«ć«äæå­˜ć•ć‚Œć¦ć„ć‚‹ćƒŖćƒć‚øćƒˆćƒŖć€‚
ć‚Æćƒ­ćƒ¼ćƒ³ļ¼ˆclone) ćƒŖćƒ¢ćƒ¼ćƒˆćƒŖćƒć‚øćƒˆćƒŖć‚’č¤‡č£½ä½œęˆć™ć‚‹ć“ćØć€‚äæ®ę­£å±„ę­“ćŖć©ć‚‚č¤‡č£½ć•ć‚Œć‚‹ć€‚
ćƒ–ćƒ©ćƒ³ćƒļ¼ˆbranch) äø€é€£ć®äæ®ę­£ć‚’ć€äø»ęµć‹ć‚‰ęžć®ć‚ˆć†ć«åˆ†å²ć•ć›ć¦ē®”ē†ć™ć‚‹ć‚‚ć®ć€‚ćƒ–ćƒ©ćƒ³ćƒć§ć®äæ®ę­£å†…å®¹ćÆä»–ć®ćƒ–ćƒ©ćƒ³ćƒć®å½±éŸæć‚’å—ć‘ćŖć„ćŸć‚ć€åŒć˜ćƒŖćƒć‚øćƒˆćƒŖć§åŒę™‚ć«č¤‡ę•°ć®é–‹ē™ŗć‚’č”Œć†ć“ćØćŒć§ćć‚‹ć€‚
ćƒć‚§ćƒƒć‚Æć‚¢ć‚¦ćƒˆļ¼ˆcheckout) ä»–ć®ćƒ–ćƒ©ćƒ³ćƒćøē§»å‹•ć—ć€ä½œę„­ćƒ‡ć‚£ćƒ¬ć‚ÆćƒˆćƒŖć‚’ä»»ę„ć®ć‚³ćƒŸćƒƒćƒˆēŠ¶ę…‹ć«ć™ć‚‹ć“ćØć€‚
ć‚³ćƒŸćƒƒćƒˆļ¼ˆcommit) äæ®ę­£å†…å®¹ć‚’ćƒ­ćƒ¼ć‚«ćƒ«ćƒŖćƒć‚øćƒˆćƒŖć«åę˜ ć™ć‚‹ć“ćØć€‚
ćƒ—ćƒƒć‚·ćƒ„ļ¼ˆpush) ćƒ­ćƒ¼ć‚«ćƒ«ćƒŖćƒć‚øćƒˆćƒŖć®äæ®ę­£å†…å®¹ć‚’ćƒŖćƒ¢ćƒ¼ćƒˆćƒŖćƒć‚øćƒˆćƒŖć«åę˜ ć™ć‚‹ć“ćØć€‚
ćƒ—ćƒ«ļ¼ˆpull) ćƒŖćƒ¢ćƒ¼ćƒˆćƒŖćƒć‚øćƒˆćƒŖć®äæ®ę­£å†…å®¹ć‚’ćƒ­ćƒ¼ć‚«ćƒ«ćƒŖćƒć‚øćƒˆćƒŖć«åę˜ ć™ć‚‹ć“ćØć€‚
ćƒžćƒ¼ć‚øļ¼ˆmerge) ē•°ćŖć‚‹ćƒ–ćƒ©ćƒ³ćƒć®äæ®ę­£å†…å®¹ć‚’åę˜ ć™ć‚‹ć“ćØć€‚ćƒžćƒ¼ć‚øå…ˆćØćƒžćƒ¼ć‚øå…ƒć®äø”ę–¹ć«å¤‰ę›“å±„ę­“ćŒę®‹ć‚‹ć€‚
ć‚³ćƒ³ćƒ•ćƒŖć‚Æćƒˆļ¼ˆconflict) ćƒžćƒ¼ć‚øć®éš›ć«ć€ćƒŖćƒ¢ćƒ¼ćƒˆćØćƒ­ćƒ¼ć‚«ćƒ«ć§åŒć˜ćƒ•ć‚”ć‚¤ćƒ«ć®åŒć˜ē®‡ę‰€ć«åÆ¾ć—ć¦äæ®ę­£ćŒć•ć‚Œć¦ćŠć‚Šć€č‡Ŗå‹•ć§ćƒžćƒ¼ć‚øć§ććŖć„ć“ćØć€‚äø”ę–¹ć®äæ®ę­£ć‚’åˆć‚ć›ćŸå†…å®¹ć«ę‰‹å‹•ć§ē·Øé›†ć™ć‚‹åæ…č¦ćŒć‚ć‚‹ć€‚

GitHubć§ćÆå…¬é–‹ć‚½ćƒ•ćƒˆć‚¦ć‚§ć‚¢ć«äæ®ę­£ęę”ˆć§ćć‚‹

GitHubć®ęœ€å¤§ć®ē‰¹å¾“ćÆć€ć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰ć‚’é€šć˜ć¦ä»–ć®é–‹ē™ŗč€…ćØć‚³ćƒŸćƒ„ćƒ‹ć‚±ćƒ¼ć‚·ćƒ§ćƒ³ćŒćØć‚Œć‚‹ć“ćØć§ć™ć€‚GitHubäøŠć«ćÆć€ę•°å¤šćć®ć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰ćŒå…¬é–‹ć•ć‚Œć¦ć„ć¾ć™ć€‚ćć‚Œć‚‰ć«äæ®ę­£ä¾é ¼ć™ć‚‹ć“ćØćÆć‚‚ć”ć‚ć‚“ć€č‡Ŗć‚‰ćŒäæ®ę­£ć—ćŸć‚½ćƒ¼ć‚¹ć®ęę”ˆć‚‚åÆčƒ½ć§ć™ć€‚

OSSćØć—ć¦å…¬é–‹ć•ć‚Œć¦ć„ć‚‹ć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰ć§ę°—ć«ćŖć‚‹ē‚¹ćŒć‚ć‚‹å “åˆć€ć“ć‚Œć¾ć§ć®ęµć‚Œć‚’ē¢ŗčŖć—ć¤ć¤ć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰ć‚’äæ®ę­£ć—ć€ćƒ—ćƒ«ćƒŖć‚Æć‚Øć‚¹ćƒˆļ¼ˆpull requestļ¼‰ć‚’å‡ŗć™ć“ćØć«ć‚ˆć‚Šć€OSSć«č‡Ŗåˆ†ć®äæ®ę­£ćŒå–ć‚Šč¾¼ć¾ć‚Œć‚‹ć“ćØć‚‚ć‚ć‚Šć¾ć™ć€‚ćć®ćŸć‚ć€GitHubć«ć‚ˆć‚Šć€OSSć«ć‚‚å‚åŠ ć—ć‚„ć™ććŖć‚Šć¾ć—ćŸć€‚

OSSとは

OSSćØćÆć‚Ŗćƒ¼ćƒ—ćƒ³ć‚½ćƒ¼ć‚¹ć‚½ćƒ•ćƒˆć‚¦ć‚§ć‚¢ļ¼ˆOpen-Source Softwareļ¼‰ć®ē•„ē§°ć€‚ä¾‹ćˆć°ć€Linux悄态MySQLć€ēµ±åˆé–‹ē™ŗē’°å¢ƒć®Eclipseć€ć‚¹ć‚ÆćƒŖćƒ—ćƒˆčØ€čŖžć®PHP悄Python悂态OSS恧恙怂GitHubäøŠć§å…¬é–‹ć•ć‚Œć¦ć„ć‚‹OSSć‚‚å¤šćć€TensorFlow态AngularJS态SwiftćŖć©ć®é–‹ē™ŗć«ć‚‚å‚åŠ ć§ćć¾ć™ć€‚

ä»–ć®é–‹ē™ŗč€…ć®ć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰ć‚’č¦‹ć‚‹ć ć‘ć§ćŖćć€č‡Ŗåˆ†ć®ęˆęžœē‰©ć‚‚å…¬é–‹ć§ćć¾ć™ć€‚ćƒ¬ćƒ“ćƒ„ćƒ¼ć®å†…å®¹ć‚‚å«ć‚ć¦å…¬é–‹ć—ć€ćƒ•ć‚£ćƒ¼ćƒ‰ćƒćƒƒć‚Æć‚’å—ć‘ć‚‹ć“ćØć«ä¾”å€¤ćŒć‚ć‚‹ćØć„ćˆć‚‹ć§ć—ć‚‡ć†ć€‚ć‚Øćƒ³ć‚øćƒ‹ć‚¢ęŽ”ē”Øć§ćÆć€GitHubć®ć‚¢ć‚«ć‚¦ćƒ³ćƒˆć‚’ä¼ćˆć€č‡Ŗåˆ†ć®ć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰ć‚’č¦‹ć¦ć‚‚ć‚‰ć†ć“ćØć‚‚ć‚ć‚Šć¾ć™ć€‚

ć‚³ćƒŸćƒ„ćƒ‹ć‚±ćƒ¼ć‚·ćƒ§ćƒ³ä»„å¤–ć«ć‚‚ć€ćƒć‚°ć‚„ę”¹å–„č¦ęœ›ć‚’ć‚¤ć‚·ćƒ„ćƒ¼ļ¼ˆissueļ¼‰ćØć—ć¦ē®”ē†ć™ć‚‹ć€é–‹ē™ŗč€…ć”ćØć®ę“»å‹•ēŠ¶ę³ć‚’č”Øē¤ŗć™ć‚‹ļ¼ˆć€ŒčŠć‚’ē”Ÿć‚„ć™ć€ćØć„ć†ć“ćØć‚‚ć‚ć‚Šć¾ć™ļ¼‰ćŖć©ć€é–‹ē™ŗę™‚ć«ä¾æåˆ©ćŖę©Ÿčƒ½ćŒćć‚ć£ć¦ć„ć¾ć™ć€‚

Gitć®ēœŸć®åŠ›ć‚’ē™ŗę®ć™ć‚‹ćŸć‚ć«ć€GitHubćÆę¬ ć‹ć›ćŖć„å­˜åœØć§ć™ć€‚

čŠć‚’ē”Ÿć‚„ć™ę„½ć—ćæ

ć€ŒčŠć€ćØćÆGitHubćƒ—ćƒ­ćƒ•ć‚£ćƒ¼ćƒ«ć§č”Øē¤ŗć•ć‚Œć‚‹Contributionć‚°ćƒ©ćƒ•ć®ć“ćØć€‚ć‚³ćƒŸćƒƒćƒˆć™ć‚‹ćØć€ćć®ę—„ć®ćƒžć‚¹č‰²ćŒē·‘ć«å¤‰åŒ–ć—ć¾ć™ć€‚

äø€éƒØć®ć‚Øćƒ³ć‚øćƒ‹ć‚¢ć«ćØć£ć¦ć€GitHub上で7ćƒžć‚¹Ć—53ćƒžć‚¹ć®čŠć‚’å¤§åˆ‡ć«ē”Ÿć‚„ć™ć“ćØćÆå¤§ććŖćƒ¢ćƒćƒ™ćƒ¼ć‚·ćƒ§ćƒ³ć«ćŖć£ć¦ć„ć¾ć™ć€‚čŠć«ē€ē›®ć—ćŸć‚µćƒ¼ćƒ“ć‚¹ć‚‚å­˜åœØć™ć‚‹ć»ć©ć§ć™ć€‚

5

恓恮Shibartć§ćÆć€č‡Ŗčŗ«ć®ć‚°ćƒ©ćƒ•ļ¼ˆčŠļ¼‰ćŒćƒ—ćƒŖćƒ³ćƒˆć•ć‚ŒćŸTć‚·ćƒ£ćƒ„ć‚„ćƒžć‚°ć‚«ćƒƒćƒ—ć€ćƒˆćƒ¼ćƒˆćƒćƒƒć‚°ćŖć©ć‚’ä½œęˆćƒ»č³¼å…„ć§ćć¾ć™ć€‚

Shibart | GitHub ć§č‚²ć¦ćŸčŠć‚’ć€ć‚ćŖćŸć ć‘ć®Tć‚·ćƒ£ćƒ„ć«ć€‚shibart.pocke.me

GitHubć®åŸŗē¤Žē”ØčŖž

GitHubć®åŸŗęœ¬ē”ØčŖžć‚‚ęŠ¼ć•ćˆć¦ćŠćć¾ć—ć‚‡ć†ć€‚

ē”ØčŖž 内容
ćƒ—ćƒ«ćƒŖć‚Æć‚Øć‚¹ćƒˆ
(pull request)
GitHubć«å‚™ć‚ć£ć¦ć„ć‚‹ć‚³ćƒ¼ćƒ‰ćƒ¬ćƒ“ćƒ„ćƒ¼ę©Ÿčƒ½ć€‚äæ®ę­£ć‚’å…ƒć®ćƒŖćƒć‚øćƒˆćƒŖć‚„ćƒ–ćƒ©ćƒ³ćƒć«å–ć‚Šč¾¼ć‚€éš›ć«ć€ć“ć®ę©Ÿčƒ½ć‚’ē”Øć„ć¦ä»–ć®é–‹ē™ŗč€…ć«äæ®ę­£ć®å†…å®¹ć‚’ē¢ŗčŖć—ć¦ć‚‚ć‚‰ć†ć€‚ćƒć‚°ć®ę··å…„ć‚’é˜²ć„ć ć‚Šć€ć‚ˆć‚Šč‰Æć„ć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰ć«äæ®ę­£ć—ćŸć‚Šć§ćć‚‹ć€‚
ćƒ•ć‚©ćƒ¼ć‚Æļ¼ˆfork) ä»–ć®é–‹ē™ŗč€…ć®ćƒŖćƒć‚øćƒˆćƒŖć‚’GitHubäøŠć§č¤‡č£½ć—ć€č‡Ŗåˆ†ć§ē·Øé›†ć§ćć‚‹ć‚ˆć†ć«ć™ć‚‹ę©Ÿčƒ½ć€‚ć“ć®ę©Ÿčƒ½ć§č¤‡č£½ć™ć‚‹ć“ćØć«ć‚ˆć‚Šć€č¤‡č£½å…ƒć®ćƒŖćƒć‚øćƒˆćƒŖć‚‚č”Øē¤ŗć•ć‚Œć‚‹ćŸć‚ć€ćć®ć‚³ćƒ¼ćƒ‰ćŒć‚ŖćƒŖć‚øćƒŠćƒ«ćŖć®ć‹ć€ę“¾ē”Ÿē‰ˆćŖć®ć‹ćŒę˜Žć‚‰ć‹ć«ć§ćć‚‹ć€‚
ć‚¤ć‚·ćƒ„ćƒ¼ļ¼ˆissue) GitHubć«å‚™ć‚ć£ć¦ć„ć‚‹čŖ²é”Œē®”ē†ę©Ÿčƒ½ć€‚ćƒ—ćƒ­ć‚øć‚§ć‚Æćƒˆć‚„ć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰ć®čŖ²é”Œć‚’ē®”ē†ć™ć‚‹ć“ćØćŒć§ćć€ć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰ć‚„ćƒ—ćƒ«ćƒŖć‚Æć‚Øć‚¹ćƒˆć€äæ®ę­£å±„ę­“ćØć„ć£ćŸGitHubäøŠć®ęƒ…å ±ćØć€čŖ²é”Œć‚’é–¢é€£ä»˜ć‘ć¦ē®”ē†ć™ć‚‹ć“ćØćŒć§ćć‚‹ć€‚
ć‚Ŗćƒ¼ć‚¬ćƒŠć‚¤ć‚¼ćƒ¼ć‚·ćƒ§ćƒ³ļ¼ˆorganization) ēµ„ē¹”ć‚„å›£ä½“ć€ćƒ—ćƒ­ć‚øć‚§ć‚ÆćƒˆćŖć©ć®ć‚°ćƒ«ćƒ¼ćƒ—ć®ć“ćØć€‚ć‚Ŗćƒ¼ć‚¬ćƒŠć‚¤ć‚¼ćƒ¼ć‚·ćƒ§ćƒ³ć®é…äø‹ć«ćƒŖćƒć‚øćƒˆćƒŖć‚’ä½œęˆć—ć¦ē®”ē†ć™ć‚‹ć“ćØćŒć§ćć‚‹ć€‚
Gist GitHubćŒęä¾›ć—ć¦ć„ć‚‹ć€ēŸ­ć„ć‚³ćƒ¼ćƒ‰ć‚„ćƒ”ćƒ¢ć®å…±ęœ‰ć‚µćƒ¼ćƒ“ć‚¹ć€‚ćƒćƒ¼ć‚øćƒ§ćƒ³ē®”ē†ćÆć‚‚ć”ć‚ć‚“ć€ä»–ć®é–‹ē™ŗč€…ćŒę›øć„ćŸć‚‚ć®ć‚’ćƒ•ć‚©ćƒ¼ć‚Æć—ćŸć‚Šć€GitHubä»„å¤–ć®ćƒ–ćƒ­ć‚°ć«ć‚Øćƒ³ćƒ™ćƒƒćƒ‰ć‚‚ć§ćć‚‹ć€‚gist.github.com
Pages GitHubćŒęä¾›ć™ć‚‹ćƒ›ć‚¹ćƒ†ć‚£ćƒ³ć‚°ć‚µćƒ¼ćƒ“ć‚¹ć€‚GitHubć®ć‚¢ć‚«ć‚¦ćƒ³ćƒˆćŒć‚ć‚Œć°ć€ē„”ę–™ć§ć‚¦ć‚§ćƒ–ćƒšćƒ¼ć‚øć‚’å…¬é–‹ć™ć‚‹ć“ćØćŒć§ćć‚‹ć€‚ę‰‹é †ć‚‚ē°”å˜ć§ć€å°‚ē”Øć«ä½œęˆć—ćŸćƒŖćƒć‚øćƒˆćƒŖć«ć‚ˆć£ć¦ć‚¦ć‚§ćƒ–ćƒšćƒ¼ć‚øć‚’äæ®ę­£ć™ć‚‹ć“ćØć‚‚ć§ćć‚‹ć€‚pages.github.com

ē’°å¢ƒć®ę§‹ēÆ‰ļ¼ˆ1) ćƒ­ćƒ¼ć‚«ćƒ«ē’°å¢ƒć§Gitć‚’ä½æćˆć‚‹ć‚ˆć†ć«ć™ć‚‹

Git/GitHubć‚’ä½æć†ćŸć‚ć«ćÆć€ćƒ­ćƒ¼ć‚«ćƒ«ē’°å¢ƒć§ć®Gitć®ę§‹ēÆ‰ćØć€ćƒŖćƒ¢ćƒ¼ćƒˆć®GitHubć‚¢ć‚«ć‚¦ćƒ³ćƒˆć®ē”Øę„ćŒåæ…č¦ć§ć™ć€‚

ć¾ćšć€Gitć‚’ćƒ­ćƒ¼ć‚«ćƒ«ē’°å¢ƒć§ä½æćˆć‚‹ć‚ˆć†ć«ęŗ–å‚™ć—ć¾ć™ć€‚

Gitć®ć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«ćØęŗ–å‚™

Gitć‚³ćƒžćƒ³ćƒ‰ć‚’ä½æćˆć‚‹ć‚ˆć†ć«ć—ć¾ć—ć‚‡ć†ć€‚ę¬”ć®ę‰‹é †ć§ć€Gitć‚’ć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«ć—ć¾ć™ć€‚

  • Windowsの堓合
  • Macの堓合
    • OS XにはGitćŒä»˜å±žć—ć¦ć„ć¾ć™ć€‚
      ć‚‚ć—ć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«ć•ć‚Œć¦ć„ćŖć‹ć£ćŸć‚Šć€ć‚ˆć‚Šę–°ć—ć„ćƒćƒ¼ć‚øćƒ§ćƒ³ć®Gitć‚’åˆ©ē”Øć™ć‚‹å “åˆćÆć€ļ¼ˆå‰čæ°ć®å…¬å¼ć‚µć‚¤ćƒˆć‹ć‚‰ļ¼‰åˆ„é€”ć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«ć—ć¾ć™ć€‚

ć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«ć§ććŸć‚‰ć€Gitć‚³ćƒžćƒ³ćƒ‰ć‚’ę“ä½œć™ć‚‹ć‚³ćƒžćƒ³ćƒ‰ćƒ©ć‚¤ćƒ³ē’°å¢ƒć‚’ęŗ–å‚™ć—ć¾ć™ć€‚

  • Windowsの堓合
    • Gitć‚³ćƒžćƒ³ćƒ‰ä»˜å±žć®Git Bashć‚’é–‹ćć¾ć™ć€‚
  • Macの堓合
    • ć‚æćƒ¼ćƒŸćƒŠćƒ«ć‚’é–‹ćć¾ć™ć€‚

Gitć‚³ćƒžćƒ³ćƒ‰ćŒå®Ÿč”Œć§ćć‚‹ć“ćØć‚’ē¢ŗčŖć™ć‚‹

ć‚³ćƒžćƒ³ćƒ‰ćƒ©ć‚¤ćƒ³ē’°å¢ƒć§git --versionćØå…„åŠ›ć—ć€Gitć®ćƒćƒ¼ć‚øćƒ§ćƒ³ćŒč”Øē¤ŗć•ć‚Œć‚‹ć“ćØć‚’ē¢ŗčŖć—ć¾ć™ć€‚

$ git --version
git version 2.10.1 (Apple Git-78)

Mac恧Xcodeć‚’ć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«ć—ć¦ć„ć¦ćƒ©ć‚¤ć‚»ćƒ³ć‚¹ć«åŒę„ć—ć¦ć„ćŖć„å “åˆć€ä»„äø‹ć®ć‚ˆć†ćŖćƒ¬ć‚¹ćƒćƒ³ć‚¹ć«ćŖć‚‹å “åˆćŒć‚ć‚Šć¾ć™ć€‚

$ git --version
        
Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.

ć“ć®å “åˆćÆsudoć§å®Ÿč”Œć—ć€ćƒ©ć‚¤ć‚»ćƒ³ć‚¹ć«åŒę„ć—ć¾ć™ć€‚

$ sudo git --version
Password:
        
        
You have not agreed to the Xcode license agreements. You must agree to both license agreements below in order to use Xcode.
        
Hit the Enter key to view the license agreements at '/Applications/Xcode.app/Contents/Resources/English.lproj/License.rtf'
Apple Inc.
        
Xcode and Apple SDKs Agreement
        
PLEASE SCROLL DOWN AND ...
...(snip)...
Software License Agreements Press 'space' for more, or 'q' to quit
q
By typing 'agree' you are agreeing to the terms of the software license agreements. Type 'print' to print them or anything else to cancel, [agree, print, cancel] 
agree
You can view the license agreements in Xcode's About Box, or at /Applications/Xcode.app/Contents/Resources/English.lproj/License.rtf
        
git version 2.10.1 (Apple Git-78)

ćƒ¦ćƒ¼ć‚¶ćƒ¼åćØćƒ”ćƒ¼ćƒ«ć‚¢ćƒ‰ćƒ¬ć‚¹ć‚’čØ­å®šć™ć‚‹

GitäøŠć§ä½æć„ćŸć„ęƒ…å ±ć‚’å…„åŠ›ć—ć¾ć™ć€‚äø‹čØ˜ć®ć‚³ćƒžćƒ³ćƒ‰ć§ć€ćƒ¦ćƒ¼ć‚¶ćƒ¼åć€‘ćØć€ćƒ”ćƒ¼ćƒ«ć‚¢ćƒ‰ćƒ¬ć‚¹ć€‘ć®éƒØåˆ†ć‚’ć€č‡Ŗåˆ†ć®ęƒ…å ±ć«ē½®ćę›ćˆć¦ćć ć•ć„ć€‚

$ git config --global user.name "ć€ćƒ¦ćƒ¼ć‚¶ćƒ¼åć€‘"
$ git config --global user.email ć€ćƒ”ćƒ¼ćƒ«ć‚¢ćƒ‰ćƒ¬ć‚¹ć€‘

ä»„äø‹ć®ć‚³ćƒžćƒ³ćƒ‰ć§čØ­å®šć‚’ē¢ŗčŖć§ćć¾ć™ć€‚

$ git config --list
user.name=ć€ćƒ¦ćƒ¼ć‚¶ćƒ¼åć€‘
user.email=ć€ćƒ”ćƒ¼ćƒ«ć‚¢ćƒ‰ćƒ¬ć‚¹ć€‘
...

ē’°å¢ƒć®ę§‹ēÆ‰ļ¼ˆ2) SSHć®éµć‚’å–å¾—ć™ć‚‹

ę¬”ć«ć€ćƒŖćƒ¢ćƒ¼ćƒˆć®ćƒŖćƒć‚øćƒˆćƒŖćØć‚„ć‚Šå–ć‚Šć™ć‚‹ćŸć‚ć€SSHć®éµć‚’ē”Øę„ć—ć¾ć™ć€‚éµć®ē”ŸęˆćÆć€GitHubć®ćƒ˜ćƒ«ćƒ—ć§ć‚‚čŖ¬ę˜Žć•ć‚Œć¦ć„ć¾ć™ć€‚

ssh-keygenć‚³ćƒžćƒ³ćƒ‰ć§éµć‚’ē”Ÿęˆć™ć‚‹

Windows恧恂悌恰Git Bash态Macć§ćÆć‚æćƒ¼ćƒŸćƒŠćƒ«ć‚’é–‹ć„ć¦ć€ä»„äø‹ć®ę‰‹é †ć§éµć‚’ä½œęˆć—ć¾ć—ć‚‡ć†ć€‚

$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  • -tć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ć§ć€éµć®ć‚æć‚¤ćƒ—ć‚’ęŒ‡å®šć—ć¦ć„ć¾ć™ć€‚
  • -bć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ć§ć€éµć®é•·ć•ć‚’ęŒ‡å®šć—ć¦ć„ć¾ć™ć€‚éµćŒēŸ­ć„ćØć‚»ć‚­ćƒ„ćƒŖćƒ†ć‚£ēš„ć«å±é™ŗć§ć™ć€‚
    ssh-keygenć®ćƒ‡ćƒ•ć‚©ćƒ«ćƒˆå€¤2,048ćƒ“ćƒƒćƒˆć®ć¾ć¾ē”Ÿęˆćƒ»åˆ©ē”Øć•ć‚Œć‚‹å “åˆć‚‚å¤šć„ć®ć§ć™ćŒć€GitHubć®ęŽØå„ØćÆ4,096ćƒ“ćƒƒćƒˆć€‚ć‚ˆć‚Šå®‰å…Øę€§ć®é«˜ć„å€¤ć‚’åˆ©ē”Øć—ć¾ć™ć€‚
  • -Cć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ć§ć€éµć«ć‚³ćƒ”ćƒ³ćƒˆć‚’ä»˜åŠ ć§ćć¾ć™ć€‚ćŖćć¦ć‚‚å•é”Œć‚ć‚Šć¾ć›ć‚“ć€‚
    č¤‡ę•°ć®éµć‚’ē®”ē†ć™ć‚‹ćØććÆć€ä½•ć®éµćŖć®ć‹ć‚’åˆ†ć‹ć‚Šć‚„ć™ćć™ć‚‹ćŸć‚ć€ć‚³ćƒ”ćƒ³ćƒˆć‚’ęœ‰åŠ¹ēš„ć«åˆ©ē”Øć—ć¾ć—ć‚‡ć†ć€‚

éµć®ē”Ÿęˆå “ę‰€ćØćƒ•ć‚”ć‚¤ćƒ«åć‚’ē¢ŗčŖć™ć‚‹

上記のssh-keygenć‚³ćƒžćƒ³ćƒ‰ć‚’å…„åŠ›ć™ć‚‹ćØć€ē”Ÿęˆć•ć‚Œć‚‹éµć®ćƒ•ć‚”ć‚¤ćƒ«åćØå‡ŗåŠ›å “ę‰€ć‚’ē¢ŗčŖć™ć‚‹ćƒ”ćƒƒć‚»ćƒ¼ć‚øćŒč”Øē¤ŗć•ć‚Œć¾ć™ļ¼ˆā€»ć“ć“ć§ē¤ŗć™ćƒ•ć‚”ć‚¤ćƒ«ć®ćƒ‘ć‚¹ćÆMacの例です。Windowsć§ćÆé©å®œčŖ­ćæę›æćˆć¦ćć ć•ć„ļ¼‰ć€‚

Enter file in which to save the key (/Users/hoge/.ssh/id_rsa): 

怌id_rsać€ćØć„ć†ćƒ•ć‚”ć‚¤ćƒ«åć®ć¾ć¾ć§ć‚ˆć‘ć‚Œć°ć€ćć®ć¾ć¾Enterć‚’ęŠ¼ć—ć¾ć™ć€‚ä»Šå›žćÆć€č¤‡ę•°ć®éµē®”ē†ć‚’ęƒ³å®šć—ć€ć“ć®éµćŒGitHubē”Øć§ć‚ć‚‹ć“ćØćŒåˆ†ć‹ć‚‹ć‚ˆć†ć€ćƒ•ć‚”ć‚¤ćƒ«åć‚’å¤‰ę›“ć—ć¾ć™ć€‚

Enter file in which to save the key (/Users/hoge/.ssh/id_rsa): /Users/hoge/.ssh/id_rsa_github

ćƒ‘ć‚¹ćƒ•ćƒ¬ćƒ¼ć‚ŗć‚’å…„åŠ›ć™ć‚‹

ę¬”ć«ć€ćƒ‘ć‚¹ćƒ•ćƒ¬ćƒ¼ć‚ŗć‚’å…„åŠ›ć—ć¾ć™ć€‚

ē©ŗć®ć¾ć¾ē”Ÿęˆć™ć‚‹ć“ćØć‚‚ć§ćć¾ć™ćŒć€ć‚»ć‚­ćƒ„ćƒŖćƒ†ć‚£é¢ć‚’č€ƒćˆć¦ćƒ‘ć‚¹ćƒ•ćƒ¬ćƒ¼ć‚ŗć‚’ęŒ‡å®šć—ć¦ćŠćć¾ć—ć‚‡ć†ć€‚GitHubć®ćƒ˜ćƒ«ćƒ—ć§ć‚‚ćƒ‘ć‚¹ćƒ•ćƒ¬ćƒ¼ć‚ŗć®åˆ©ē”Øć‚’ęŽØå„Øć—ć¦ć„ć¾ć™ć€‚

Enter passphrase (empty for no passphrase): ć€ćƒ‘ć‚¹ćƒ•ćƒ¬ćƒ¼ć‚ŗć‚’å…„åŠ›ć€‚ē”»é¢ć«ćÆč”Øē¤ŗć•ć‚Œć¾ć›ć‚“ć€‘
Enter same passphrase again: ć€ćƒ‘ć‚¹ćƒ•ćƒ¬ćƒ¼ć‚ŗć‚’å…„åŠ›ć€‚ē”»é¢ć«ćÆč”Øē¤ŗć•ć‚Œć¾ć›ć‚“ć€‘

ćƒ‘ć‚¹ćƒ•ćƒ¬ćƒ¼ć‚ŗć®å†å…„åŠ›ćŒå®Œäŗ†ć™ć‚‹ćØć€ē§˜åÆ†éµļ¼ˆid_rsa_githubļ¼‰ćØå…¬é–‹éµļ¼ˆid_rsa_github.pubļ¼‰ć®ćƒšć‚¢ćŒē”Ÿęˆć•ć‚Œć¾ć™ć€‚ē§˜åÆ†éµćÆć€č‡Ŗåˆ†ć—ć‹ć‚¢ć‚Æć‚»ć‚¹ć§ććŖć„å “ę‰€ć§äæē®”ć—ć¾ć—ć‚‡ć†ć€‚

.pubę‹”å¼µå­ćŒć¤ć„ć¦ć„ć‚‹å…¬é–‹éµćÆć€GitHubなど、SSHć§ęŽ„ē¶šć—ćŸć„å…ˆć®ć‚µćƒ¼ćƒ“ć‚¹ć«ē™»éŒ²ć—ć¦ćŠćć‚‚ć®ć§ć™ć€‚SSHé€šäæ”ć‚’ć™ć‚‹éš›ć«ć€ę‰‹å…ƒć®ē§˜åÆ†éµćØé€šäæ”å…ˆć«ē™»éŒ²ć—ć¦ć‚ć‚‹å…¬é–‹éµćŒē…§åˆć•ć‚Œć¦ć€čŖčØ¼ćŒęˆåŠŸć—ć¾ć™ć€‚ć“ć‚Œć«ć‚ˆć‚Šć€ē§˜åÆ†éµć‚’ęŒć£ć¦ć„ć‚‹č‡Ŗåˆ†ć®ćæćŒé€šäæ”ć‚’čØ±åÆć•ć‚Œć‚‹ä»•ēµ„ćæć§ć™ć€‚

Your identification has been saved in /Users/hoge/.ssh/id_rsa_github.
Your public key has been saved in /Users/hoge/.ssh/id_rsa_github.pub.
The key fingerprint is:
SHA256:【畄】 your_email@example.com
The key's randomart image is:
+---[RSA 4096]----+
...(snip)...
+----[SHA256]-----+

ē”Ÿęˆę™‚ć«ęŒ‡å®šć—ćŸå “ę‰€ć«éµćŒé…ē½®ć•ć‚Œć¦ć„ć¾ć™ć€‚

$ ls ~/.ssh/id_rsa_github*
/Users/hoge/.ssh/id_rsa_github     /Users/hoge/.ssh/id_rsa_github.pub

ē”Ÿęˆć•ć‚ŒćŸē§˜åÆ†éµć®ćƒ‘ćƒ¼ćƒŸćƒƒć‚·ćƒ§ćƒ³ć‚’600に変曓します。

$ chmod 600 ~/.ssh/id_rsa_github

怌-rw-------ć€ć«ćŖć£ć¦ć„ć‚Œć°ę­£ć—ć„ćƒ‘ćƒ¼ćƒŸćƒƒć‚·ćƒ§ćƒ³ć«å¤‰ę›“ć§ćć¦ć„ć¾ć™ć€‚

$ ls -la ~/.ssh/id_rsa_github
-rw-------  1 hoge  staff  **** 1 1 00:00 /Users/hoge/.ssh/id_rsa_github

ꬔ恫态SSH恮configćƒ•ć‚”ć‚¤ćƒ«ć‚’ē·Øé›†ć—ć¾ć™ć€‚GitHubへSSHęŽ„ē¶šć™ć‚‹éš›ć«ć€ć©ć®ē§˜åÆ†éµć‚’ęŒ‡å®šć™ć‚‹ć®ć‹ć‚’ē®”ē†ć™ć‚‹ć®ćŒē›®ēš„ć§ć™ć€‚

ä»„äø‹ć®čØ­å®šć‚’ć€ćƒ•ć‚”ć‚¤ćƒ«ćŒå­˜åœØć—ćŖć„å “åˆćÆę–°č¦ä½œęˆć—ć€ć™ć§ć«ć‚ć‚Œć°čæ½čØ˜ć—ć¾ć™ć€‚

$ vim ~/.ssh/config
Host github
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa_github

ć“ć®čØ­å®šć«ć‚ˆć‚Šć€ssh githubćØå…„åŠ›ć™ć‚‹ć ć‘ć§ć€ć“ć“ć§ęŒ‡å®šć—ćŸćƒ›ć‚¹ćƒˆåć€ćƒ¦ćƒ¼ć‚¶ćƒ¼åć€ē§˜åÆ†éµćŒč‡Ŗå‹•ć§ęŒ‡å®šć•ć‚Œć¾ć™ć€‚

ē’°å¢ƒć®ę§‹ēÆ‰ļ¼ˆ3) GitHubć®ć‚¢ć‚«ć‚¦ćƒ³ćƒˆć‚’ä½œęˆć™ć‚‹

ćƒ­ćƒ¼ć‚«ćƒ«ē’°å¢ƒćÆęŗ–å‚™ć§ććŸć®ć§ć€GitHub偓の準備をします。

8 How people build software Ā· GitHubgithub.com

ć¾ć ć‚¢ć‚«ć‚¦ćƒ³ćƒˆć‚’ęŒć£ć¦ć„ćŖć‘ć‚Œć°ć€äøŠčØ˜ć‚µć‚¤ćƒˆć®å³å“ć®ćƒ†ć‚­ć‚¹ćƒˆćƒœćƒƒć‚Æć‚¹ć«ćć‚Œćžć‚Œć€å–å¾—ć—ćŸć„ćƒ¦ćƒ¼ć‚¶ćƒ¼åć€ćƒ”ćƒ¼ćƒ«ć‚¢ćƒ‰ćƒ¬ć‚¹ć€čØ­å®šć—ćŸć„ćƒ‘ć‚¹ćƒÆćƒ¼ćƒ‰ć‚’å…„åŠ›ć—ć€ć€ŒSign up for GitHubć€ć‚’ć‚ÆćƒŖćƒƒć‚Æć—ć¾ć™ć€‚

9

ę¬”ć«ć€ē„”ę–™ē‰ˆć‹ęœ‰ę–™ē‰ˆć‹ć‚’éøęŠžć—ć¾ć™ć€‚å€‹äŗŗć§ä½æē”Øć™ć‚‹ćŖć‚‰ć¾ćšćÆē„”ę–™ē‰ˆć§ć‚ˆć„ć§ć—ć‚‡ć†ć€‚ć€ŒUnlimited public repositories for free.ć€ć‚’éøęŠžć—ć€ć€ŒContinueć€ć‚’ć‚ÆćƒŖćƒƒć‚Æć—ć¾ć™ć€‚

10

ęœ€å¾ŒćÆć€ć‚¢ćƒ³ć‚±ćƒ¼ćƒˆē”»é¢ć§ć™ć€‚å›žē­”ć—ć¦ć€ŒSubmitć€ć™ć‚‹ć‹ć€ćć®ć¾ć¾ć€Œskip this stepć€ć§ć‚¹ć‚­ćƒƒćƒ—ć§ćć¾ć™ć€‚

11

ä»„äøŠć§ć€ćƒ¦ćƒ¼ć‚¶ćƒ¼ē™»éŒ²ćÆå®Œäŗ†ć§ć™ć€‚

12

ćŸć ć—ć€åˆ©ē”Øé–‹å§‹ć™ć‚‹ć«ćÆć‚¢ć‚«ć‚¦ćƒ³ćƒˆć‚’čŖčØ¼ć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚

13

ē™»éŒ²ć—ćŸćƒ”ćƒ¼ćƒ«ć‚¢ćƒ‰ćƒ¬ć‚¹ć«čŖčØ¼ē”Øć®ćƒ”ćƒ¼ćƒ«ćŒå±Šć„ć¦ć„ć‚‹ć®ć§ć€ę–‡é¢äø­ć«ć‚ć‚‹ć€ŒVerify email addressć€ć‚’ć‚ÆćƒŖćƒƒć‚Æć—ć¾ć™ć€‚

ę¬”ć®ć‚ˆć†ć«ć€ŒYour email was verified.ć€ćŒč”Øē¤ŗć•ć‚Œć‚Œć°čŖčØ¼å®Œäŗ†ć§ć™ć€‚

14

å…ˆć»ć©ćØåŒć˜ćƒ”ćƒƒć‚»ćƒ¼ć‚øćŒå†ć³č”Øē¤ŗć•ć‚Œć¦ć„ć¾ć™ćŒć€ć“ć“ć§ć€ŒStart a projectć€ć‚’ć‚ÆćƒŖćƒƒć‚Æć—ć¾ć™ć€‚

ćƒŖćƒć‚øćƒˆćƒŖć‚’ä½œęˆć™ć‚‹

ē¶šć„ć¦ć€ćƒŖćƒć‚øćƒˆćƒŖć‚’ä½œęˆć—ć¾ć™ć€‚ć€ŒRepository nameć€ę¬„ć«ä½œęˆć—ćŸć„ćƒŖćƒć‚øćƒˆćƒŖåć‚’å…„åŠ›ć—ć¾ć™ć€‚ć“ć“ć§ćÆć€ćƒ†ć‚¹ćƒˆē”Øć®ć€Œtestć€ćƒŖćƒć‚øćƒˆćƒŖć‚’ä½œęˆć—ć¦ć„ć¾ć™ć€‚

15

怌Initialize this repository with a READMEć€ć«ćƒć‚§ćƒƒć‚Æć‚’å…„ć‚Œć¦ć€ŒCreate repositoryć€ć‚’ć‚ÆćƒŖćƒƒć‚Æć™ć‚‹ćØć€ę¬”ć®ć‚ˆć†ćŖē”»é¢ćŒč”Øē¤ŗć•ć‚Œć¾ć™ć€‚ćƒŖćƒć‚øćƒˆćƒŖć®å®Œęˆć§ć™ć€‚

16

ć“ć‚Œć‹ć‚‰ć€ć“ć®ćƒŖćƒć‚øćƒˆćƒŖć«åÆ¾ć™ć‚‹ę“ä½œćÆć“ć®ćƒšćƒ¼ć‚øć‚’äø­åæƒć«č”Œć£ć¦ć„ćć¾ć™ć€‚

GitHubć«å…¬é–‹éµć‚’ē™»éŒ²ć™ć‚‹

å…ˆć»ć©ä½œęˆć—ćŸå…¬é–‹éµć‚’GitHubć«ē™»éŒ²ć—ć¾ć™ć€‚äæå­˜ć—ćŸå…¬é–‹éµļ¼ˆ/Users/hoge/.ssh/id_rsa_github.pubļ¼‰ć‚’ć‚Øćƒ‡ć‚£ć‚æć§é–‹ćć€äø­ć®ę–‡å­—åˆ—ć‚’ć‚³ćƒ”ćƒ¼ć—ć¾ć™ć€‚ć‚³ćƒ”ćƒ¼ć™ć‚‹éš›ć«ę”¹č”Œć‚„ä½™åˆ†ćŖę–‡å­—åˆ—ćŒå…„ć‚‰ćŖć„ć‚ˆć†ć«ę³Øę„ć—ć¾ć—ć‚‡ć†ć€‚

GitHubć®ćƒšćƒ¼ć‚øć®å³äøŠē«Æć«ć‚ć‚‹ć‚¢ć‚¤ć‚³ćƒ³ć‚’ć‚ÆćƒŖćƒƒć‚Æć—ć¦ć€ć‚¢ć‚«ć‚¦ćƒ³ćƒˆćƒ”ćƒ‹ćƒ„ćƒ¼ć®äø­ć«ć‚ć‚‹ć€ŒSettingsć€ć‚’é–‹ćć¾ć™ć€‚

17

ćƒ—ćƒ­ćƒ•ć‚£ćƒ¼ćƒ«ć®čØ­å®šē”»é¢ćŒé–‹ćć¾ć™ć€‚

18

å·¦å“ć®ćƒ”ćƒ‹ćƒ„ćƒ¼ć‹ć‚‰ć€ŒSSH and GPG keysć€ć‚æćƒ–ć‚’éøęŠžć—ć¾ć™ć€‚

19

怌New SSH keyć€ć‚’ć‚ÆćƒŖćƒƒć‚Æć™ć‚‹ćØć€å…¬é–‹éµć®ē™»éŒ²ē”»é¢ćŒé–‹ćć¾ć™ć€‚

20

  • 怌Titleć€ć«ćÆä»»ę„ć®å€¤ć‚’čØ­å®šåÆčƒ½ć§ć™ć€‚
    恩恮PCćƒ»ć‚µćƒ¼ćƒć«ē½®ć‹ć‚ŒćŸéµć«åÆ¾ć™ć‚‹å…¬é–‹éµćŖć®ć‹åˆ†ć‹ć‚‹ć‚ˆć†ć€PCåćƒ»ć‚µćƒ¼ćƒåć‚’å…„ć‚Œć¦ćŠććØē®”ē†ć—ć‚„ć™ććŖć‚Šć¾ć™ć€‚
  • 怌Keyć€ć«ćÆć€å…ˆć»ć©ć‚³ćƒ”ćƒ¼ć—ćŸå…¬é–‹éµć®å€¤ć‚’ćć®ć¾ć¾č²¼ć‚Šä»˜ć‘ć¾ć™ć€‚

å…„åŠ›ć—ćŸć‚‰ć€ŒAdd SSH keyć€ć‚’ć‚ÆćƒŖćƒƒć‚Æć—ć¾ć™ć€‚

GitHubへのSSHęŽ„ē¶šć‚’ē¢ŗčŖć™ć‚‹

ē¶šć„ć¦ć€GitHubへSSHęŽ„ē¶šćŒć§ćć‚‹ć‹ē¢ŗčŖć‚’ć—ć¾ć™ć€‚

$ ssh github

SSH恮configćƒ•ć‚”ć‚¤ćƒ«ć‚’å…ˆć»ć©čØ­å®šć—ćŸć®ć§ć€ć“ć®ć‚ˆć†ć«ć€Œgithubć€ćØęŒ‡å®šć™ć‚‹ć ć‘ć§ć€čØ˜č¼‰ć—ćŸćƒ›ć‚¹ćƒˆåć€ćƒ¦ćƒ¼ć‚¶ćƒ¼åć€ē§˜åÆ†éµćŒč‡Ŗå‹•ēš„ć«ä½æć‚ć‚Œć¾ć™ć€‚

é€”äø­ć§ćƒ‘ć‚¹ćƒÆćƒ¼ćƒ‰ć‚’ę±‚ć‚ć‚‰ć‚ŒćŸć‚‰ć€éµć®ē”Ÿęˆę™‚ć«čØ­å®šć—ćŸćƒ‘ć‚¹ćƒ•ćƒ¬ćƒ¼ć‚ŗć‚’å…„åŠ›ć—ć¾ć™ć€‚ę¬”ć®ć‚ˆć†ć«ć€ŒYou've successfully authenticatedć€ćØč”Øē¤ŗć•ć‚ŒćŸć‚‰ęˆåŠŸć§ć™ć€‚

Hi github-sample! You've successfully authenticated, but GitHub does not provide shell access.

ćŸć ć—ć€ć“ć‚ŒćÆSSHęŽ„ē¶šć‚’ē¢ŗčŖć—ćŸć ć‘ć§ć™ć€‚å®Ÿéš›ć®ę“ä½œćÆę¬”ć‹ć‚‰čŖ¬ę˜Žć™ć‚‹ć‚ˆć†ć«Gitć‚³ćƒžćƒ³ćƒ‰ć§č”Œć„ć¾ć™ć€‚

GitHubć‚’ä½æć†ļ¼ˆ1) Gitć‚³ćƒžćƒ³ćƒ‰ć§ćƒŖćƒć‚øćƒˆćƒŖć‚’ć‚³ćƒ”ćƒ¼ć™ć‚‹

ćć‚Œć§ćÆć€GitとGitHubć®åŸŗęœ¬ēš„ćŖę“ä½œć‚’ć€å®Ÿéš›ć®é–‹ē™ŗć®ęµć‚Œć«ę²æć£ć¦čŖ¬ę˜Žć—ć¾ć™ć€‚å…ˆć»ć©ä½œęˆć—ćŸē©ŗć®ć€Œtestć€ćƒŖćƒć‚øćƒˆćƒŖćŒå­˜åœØć™ć‚‹ę®µéšŽć‹ć‚‰å§‹ć‚ć¾ć™ć€‚

ć¾ćšć€Gitć®ä½œę„­ćƒ‡ć‚£ćƒ¬ć‚ÆćƒˆćƒŖćØć—ć¦ć€ć‚½ćƒ¼ć‚¹ć‚’é…ē½®ć™ć‚‹ćƒ‡ć‚£ćƒ¬ć‚ÆćƒˆćƒŖć‚’ä»»ę„ć®å “ę‰€ć«ē”Øę„ć—ć¾ć™ć€‚

$ mkdir git
$ cd git

GitHubć§ä½œęˆć—ćŸćƒŖćƒć‚øćƒˆćƒŖåć‚’ć‚³ćƒ”ćƒ¼ć™ć‚‹

GitHubć®ć‚µć‚¤ćƒˆć§ć€ćƒŖćƒć‚øćƒˆćƒŖć®ćƒšćƒ¼ć‚øć®å³å“ć®ć€ŒClone or downloadć€ć‚’ć‚ÆćƒŖćƒƒć‚Æć—ć€ć€ŒUse SSHć€ć‚’éøęŠžć—ć¾ć™ć€‚

21

怌git@github.com:ć€ćƒ¦ćƒ¼ć‚¶ćƒ¼åć€‘/ć€ćƒŖćƒć‚øćƒˆćƒŖåć€‘.gitć€ćØć„ć†ę–‡å­—åˆ—ć‚’ć‚³ćƒ”ćƒ¼ć—ć¾ć™ć€‚

22

ćƒŖćƒć‚øćƒˆćƒŖć‚’ćƒ­ćƒ¼ć‚«ćƒ«ć«ć‚Æćƒ­ćƒ¼ćƒ³ć™ć‚‹

ćƒ­ćƒ¼ć‚«ćƒ«ć®ć‚³ćƒžćƒ³ćƒ‰ćƒ©ć‚¤ćƒ³ē’°å¢ƒć§ć€git cloneć‚³ćƒžćƒ³ćƒ‰ć«ē¶šć‘ć¦ć€ć„ć¾ć‚³ćƒ”ćƒ¼ć—ćŸę–‡å­—åˆ—ć‚’å…„åŠ›ć—ć¾ć™ć€‚

$ git clone git@github.com:ć€ćƒ¦ćƒ¼ć‚¶ćƒ¼åć€‘/ć€ćƒŖćƒć‚øćƒˆćƒŖåć€‘.git
Cloning into 'ć€ćƒŖćƒć‚øćƒˆćƒŖåć€‘'...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), done.

ć“ć‚Œć§ć‚Æćƒ­ćƒ¼ćƒ³ćŒå®Œäŗ†ć—ć¾ć—ćŸć€‚ćƒŖćƒ¢ćƒ¼ćƒˆćƒŖćƒć‚øćƒˆćƒŖć®å†…å®¹ćŒćƒ­ćƒ¼ć‚«ćƒ«ć«ć‚³ćƒ”ćƒ¼ć•ć‚Œć¦ć„ć¾ć™ć€‚

ćƒ­ćƒ¼ć‚«ćƒ«ćƒŖćƒć‚øćƒˆćƒŖć«ē§»å‹•ć—ć¾ć™ć€‚

$ cd ć€ćƒŖćƒć‚øćƒˆćƒŖåć€‘

ćƒŖćƒć‚øćƒˆćƒŖć®ć€Œćƒ–ćƒ©ćƒ³ćƒć€ć«ć¤ć„ć¦

ä½œęˆć•ć‚ŒćŸę®µéšŽć®ćƒŖćƒć‚øćƒˆćƒŖć«ćÆć€ę¬”ć®ć‚ˆć†ć«ć€Œmasterć€ćƒ–ćƒ©ćƒ³ćƒć®ćæćŒå­˜åœØć—ć¾ć™ć€‚

$ git branch
* master

Gitć§é–‹ē™ŗć™ć‚‹éš›ć«ćÆć€ē›“ęŽ„masterćƒ–ćƒ©ćƒ³ćƒć‚’äæ®ę­£ć™ć‚‹ć®ć§ćÆćŖćć€ä½œę„­ē”Øć®ćƒ–ćƒ©ćƒ³ćƒć‚’ä½œęˆć—ć¦ć€ćć”ć‚‰ć‚’äæ®ę­£ć—ć¦ć„ćć¾ć™ć€‚ę–°ćŸć«ćƒ–ćƒ©ćƒ³ćƒć‚’ä½œęˆć™ć‚‹ć“ćØć‚’ć€Œćƒ–ćƒ©ćƒ³ćƒć‚’åˆ‡ć‚‹ć€ćØå‘¼ć³ć¾ć™ć€‚

Gitć®ćƒ–ćƒ©ćƒ³ćƒć®åˆ‡ć‚Šę–¹ć«ćÆć€git-flow悄GitHub FlowćØć„ć£ćŸćƒÆćƒ¼ć‚Æćƒ•ćƒ­ćƒ¼ćŒć‚ć‚Šć¾ć™ć€‚ćć‚Œćžć‚Œćƒ”ćƒŖćƒƒćƒˆćƒ»ćƒ‡ćƒ”ćƒŖćƒƒćƒˆćŒć‚ć‚‹ć®ć§ć€ćƒćƒ¼ćƒ ćƒ”ćƒ³ćƒćƒ¼ć®å„½ćæć‚„ćƒŖćƒŖćƒ¼ć‚¹é »åŗ¦ć€ćƒŖćƒŖćƒ¼ć‚¹ćƒ•ćƒ­ćƒ¼ćŖć©ć‚’č€ƒę…®ć—ć¦ć€äø€ē•Ŗć‚„ć‚Šć‚„ć™ć„ćƒ«ćƒ¼ćƒ«ć‚’ę±ŗć‚ć¦ć„ćć¾ć—ć‚‡ć†ć€‚

ćƒ–ćƒ©ćƒ³ćƒåć®å‘½åč¦å‰‡ć‚‚ćƒćƒ¼ćƒ ć§ę±ŗć‚ć¦ćŠććØē®”ē†ć—ć‚„ć™ć„ć§ć—ć‚‡ć†ć€‚Redmine悄JIRAć§ćƒć‚±ćƒƒćƒˆē®”ē†ć‚’ć—ć¦ć„ć‚‹å “åˆć€ćć®ćƒć‚±ćƒƒćƒˆē•Ŗå·ć‚’ćƒ–ćƒ©ćƒ³ćƒåć®ęŽ„é ­č¾žć«ć™ć‚‹ćØć€ć©ć®ę”ˆä»¶ć®é–‹ē™ŗćŖć®ć‹ćŒåˆ†ć‹ć‚Šć‚„ć™ććŖć£ćŸć‚Šć—ć¾ć™ć€‚

ä»Šå›žćÆGitHub Flowć‚’ęŽ”ē”Øć—ć€masterćƒ–ćƒ©ćƒ³ćƒćØä½œę„­ćƒ–ćƒ©ćƒ³ćƒć‚’ä½æć†ęµć‚Œć§é€²ć‚ć¦ć„ćć¾ć™ć€‚

ä½œę„­ćƒ–ćƒ©ćƒ³ćƒć‚’ä½œęˆć™ć‚‹

ä½œę„­ćƒ–ćƒ©ćƒ³ćƒć‚’ä½œęˆć—ć¾ć™ć€‚ć“ć“ć§ćÆć€Œćƒ•ć‚”ć‚¤ćƒ«ć‚’ę–°ć—ćčæ½åŠ ć™ć‚‹ć€ä½œę„­ć‚’č”Œć†ćŸć‚ć€ćƒ–ćƒ©ćƒ³ćƒåćÆć€Œadd-new-fileć€ćØć—ć¦ćŠćć¾ć™ć€‚

$ git branch add-new-file

ćƒ–ćƒ©ćƒ³ćƒćŒä½œęˆć•ć‚Œć¦ć„ć‚‹ć‹ē¢ŗć‹ć‚ć¾ć™ć€‚ć“ć“ć§ć€ć‚¢ć‚¹ć‚æćƒŖć‚¹ć‚Æļ¼ˆ*ļ¼‰ćŒä»˜ć„ć¦ć„ć‚‹ćƒ–ćƒ©ćƒ³ćƒćØć€ä»˜ć„ć¦ć„ćŖć„ćƒ–ćƒ©ćƒ³ćƒćŒē¢ŗčŖć§ćć‚‹ć§ć—ć‚‡ć†ć€‚

$ git branch
  add-new-file
* master

ć‚¢ć‚¹ć‚æćƒŖć‚¹ć‚ÆćŒä»˜ć„ć¦ć„ć‚‹ćƒ–ćƒ©ćƒ³ćƒćŒć€ē¾åœØéøęŠžäø­ć®ćƒ–ćƒ©ćƒ³ćƒć§ć™ć€‚ć“ć®ä¾‹ć§ćÆć€masterćƒ–ćƒ©ćƒ³ćƒćØadd-new-filećƒ–ćƒ©ćƒ³ćƒćŒå­˜åœØć—ć€ē¾åœØćÆmasterćƒ–ćƒ©ćƒ³ćƒć§ä½œę„­ć—ć¦ć„ć‚‹ćØć„ć†ć“ćØćŒåˆ†ć‹ć‚Šć¾ć™ć€‚

ä½œę„­ć—ćŸć„add-new-filećƒ–ćƒ©ćƒ³ćƒć«ē§»å‹•ć—ć¾ć™ć€‚

$ git checkout add-new-file
Switched to branch 'add-new-file'

å†åŗ¦ē¾åœØć®ćƒ–ćƒ©ćƒ³ćƒć‚’ē¢ŗčŖć™ć‚‹ćØć€add-new-fileć«ē§»å‹•ć§ććŸć“ćØćŒåˆ†ć‹ć‚Šć¾ć™ć€‚

$ git branch
* add-new-file
  master

GitHubć‚’ä½æć†ļ¼ˆ2) ćƒ•ć‚”ć‚¤ćƒ«ć‚’čæ½åŠ ć—ć¦ć‚³ćƒŸćƒƒćƒˆć™ć‚‹

恓恮add-new-filećƒ–ćƒ©ćƒ³ćƒć«ćƒ•ć‚”ć‚¤ćƒ«ć‚’čæ½åŠ ć—ć¦ćæć¾ć™ć€‚ć‚Øćƒ‡ć‚£ć‚æć§sample.txtćƒ•ć‚”ć‚¤ćƒ«ć‚’ä½œęˆć—ć¾ć™ć€‚

$ vim sample.txt
hoge.

ę–°č¦ć«ä½œęˆć—ćŸćƒ•ć‚”ć‚¤ćƒ«ć‚’ć€ćƒćƒ¼ć‚øćƒ§ćƒ³ē®”ē†ć®åÆ¾č±”ļ¼ˆGitć®ć‚³ćƒŸćƒƒćƒˆåÆ¾č±”ļ¼‰ć«čæ½åŠ ć—ć¾ć™ć€‚

$ git add sample.txt 

č©³ē“°ć‚’ē†č§£ć™ć‚‹ć«ćÆć€Œć‚¹ćƒ†ćƒ¼ć‚øćƒ³ć‚°é ˜åŸŸć€ćŖć©ć®čŖ¬ę˜ŽćŒåæ…č¦ć«ćŖć‚Šć¾ć™ćŒć€ć“ć®ę®µéšŽć§ćÆć€Œę–°č¦ćƒ•ć‚”ć‚¤ćƒ«ćÆć€ć‚³ćƒŸćƒƒćƒˆć™ć‚‹å‰ć«addć™ć‚‹åæ…č¦ćŒć‚ć‚‹ć€ćØč¦šćˆć¦ćŠćć¾ć—ć‚‡ć†ć€‚

ć‚³ćƒŸćƒƒćƒˆć™ć‚‹å†…å®¹ć‚’ē¢ŗčŖć™ć‚‹

ē¾åœØč”Œć£ć¦ć„ć‚‹äæ®ę­£ć§ć€ć¾ć ć‚³ćƒŸćƒƒćƒˆć‚’ć—ć¦ć„ćŖć„å†…å®¹ć‚’ē¢ŗčŖć—ć¾ć™ć€‚

$ git status
On branch add-new-file
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)
    
    new file:   sample.txt

å…ˆć»ć©addć—ćŸć®ć§ć€ę–°č¦ćƒ•ć‚”ć‚¤ćƒ«ćØć—ć¦sample.txtćŒčŖč­˜ć•ć‚Œć¦ć„ć¾ć™ć€‚

悂恗态addć‚’åæ˜ć‚Œć¦ć„ć‚‹ćØć€ä»„äø‹ć®ć‚ˆć†ć«ć‚³ćƒŸćƒƒćƒˆć®åÆ¾č±”ć«ćŖć‚‰ćŖć„Untracked filesćØć—ć¦čŖč­˜ć•ć‚Œć€äæ®ę­£å†…å®¹ć‚’ć‚³ćƒŸćƒƒćƒˆć™ć‚‹ć“ćØćŒć§ćć¾ć›ć‚“ć€‚

$ git status
On branch add-new-file
Untracked files:
  (use "git add <file>..." to include in what will be committed)
    
    sample.txt

ć‚³ćƒŸćƒƒćƒˆć™ć‚‹

å‰čæ°ć®ć‚ˆć†ć«ćć”ć‚“ćØaddć•ć‚ŒćŸēŠ¶ę…‹ć§ć‚³ćƒŸćƒƒćƒˆć—ć¾ć™ć€‚

$ git commit -a

-ać‚Ŗćƒ—ć‚·ćƒ§ćƒ³ćÆć€ć“ć“ć¾ć§ć®äæ®ę­£ć‚’ć™ć¹ć¦ć‚³ćƒŸćƒƒćƒˆć•ć›ć‚‹ć‚‚ć®ć§ć™ć€‚ćƒ•ć‚”ć‚¤ćƒ«å€‹åˆ„ć«ć‚³ćƒŸćƒƒćƒˆć™ć‚‹ć“ćØć‚‚ć§ćć¾ć™ć€‚

å®Ÿč”Œć™ć‚‹ćØć€VimćŒé–‹ć‹ć‚Œć‚‹ć®ć§ć€ć‚³ćƒŸćƒƒćƒˆć«åÆ¾ć™ć‚‹ć‚³ćƒ”ćƒ³ćƒˆć‚’čæ½åŠ ć—ć¾ć™ļ¼ˆā€»Vimä»„å¤–ć®ć‚Øćƒ‡ć‚£ć‚æć‚’é–‹ćć‚ˆć†čØ­å®šć‚’å¤‰ę›“ć™ć‚‹ć“ćØć‚‚ć§ćć¾ć™ļ¼‰ć€‚

  1 ę–°č¦ćƒ•ć‚”ć‚¤ćƒ«ć®čæ½åŠ 
  2 # Please enter the commit message for your changes. Lines starting
  3 # with '#' will be ignored, and an empty message aborts the commit.
  4 #
  5 # Committer: ć€ćƒ¦ćƒ¼ć‚¶ćƒ¼åć€‘
  6 #
  7 # On branch add-new-file
  8 # Changes to be committed:
  9 #   new file:   sample.txt
 10 #

Vimć§ć‚³ćƒ”ćƒ³ćƒˆć‚’äæå­˜ć€ēµ‚äŗ†ć™ć‚‹ćØć€ć‚³ćƒŸćƒƒćƒˆćŒå®Œäŗ†ć—ć¾ć™ć€‚

$ git commit -a
[add-new-file c55282b] ę–°č¦ćƒ•ć‚”ć‚¤ćƒ«ć®čæ½åŠ 
 1 file changed, 1 insertion(+)
 create mode 100644 sample.txt

恓恮ꮵ階恧git statusć—ć¦ćæć‚‹ćØć€ć‚³ćƒŸćƒƒćƒˆćŒå®Œäŗ†ć—ć¦ć„ć‚‹ć®ć§ć€ä»„äø‹ć®ć‚ˆć†ćŖēŠ¶ę…‹ć«ćŖć‚Šć¾ć™ć€‚

$ git status
On branch add-new-file
nothing to commit, working tree clean

GitHubćøćƒ—ćƒƒć‚·ćƒ„ć™ć‚‹

ć“ć®ę®µéšŽć§ćÆć€ćƒ­ćƒ¼ć‚«ćƒ«ē’°å¢ƒć§ć‚³ćƒŸćƒƒćƒˆćŒå®Œäŗ†ć—ć¦ć„ć¾ć™ć€‚ć“ć®å†…å®¹ć‚’ć€ę¬”ć®ć‚³ćƒžćƒ³ćƒ‰ć§GitHubćøåę˜ ć•ć›ć¾ć™ć€‚

$ git push origin add-new-file
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 319 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To github.com:github-sample/test.git
 * [new branch]      add-new-file -> add-new-file

GitHubć®ć‚µć‚¤ćƒˆć§ē¢ŗčŖć‚’ć™ć‚‹ćØć€ćƒ–ćƒ©ćƒ³ćƒć®ę•°ćŒ2ć«ćŖć‚Šć€ä»„äø‹ć®ć‚ˆć†ćŖćƒ¢ć‚øćƒ„ćƒ¼ćƒ«ć‚‚č”Øē¤ŗć•ć‚Œć¾ć™ć€‚

23

ćƒ–ćƒ©ćƒ³ćƒć‚’åˆ‡ć‚Šę›æćˆć‚‹ć“ćØć«ć‚ˆć‚Šć€ćć‚Œćžć‚Œć®ēŠ¶ę…‹ć‚’ćƒ–ćƒ©ć‚¦ć‚¶äøŠć§ē¢ŗčŖć™ć‚‹ć“ćØć‚‚ć§ćć¾ć™ć€‚

24

GitHubć‚’ä½æć†ļ¼ˆ3) ćƒ—ćƒ«ćƒŖć‚Æć‚Øć‚¹ćƒˆć—ć¦ćæć‚‹

åŸŗē¤ŽēŸ„č­˜ćØć—ć¦čŖ¬ę˜Žć—ćŸć‚ˆć†ć«ć€GitHubćÆć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰ć‚’é€šć˜ć¦é–‹ē™ŗč€…ćŒć‚³ćƒŸćƒ„ćƒ‹ć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ćć‚‹ć“ćØćŒē‰¹å¾“ć§ć€ćƒ—ćƒ«ćƒŖć‚Æć‚Øć‚¹ćƒˆļ¼ˆpull requestļ¼‰ćÆćć®ćŸć‚ć®ę©Ÿčƒ½ć§ć™ć€‚

GitHubć®ē”»é¢ć‹ć‚‰ćƒ—ćƒ«ćƒŖć‚Æć‚Øć‚¹ćƒˆć‚’å‡ŗć—ć¦ćæć¾ć—ć‚‡ć†ć€‚ć€ŒCompare & pull requestć€ć‚‚ć—ććÆć€ŒNew pull requestć€ć‚’ć‚ÆćƒŖćƒƒć‚Æć—ć¾ć™ć€‚

25

ę–°ćŸć«ć‚³ćƒŸćƒƒćƒˆć—ćŸadd-new-filećƒ–ćƒ©ćƒ³ćƒć‹ć‚‰ć€masterćƒ–ćƒ©ćƒ³ćƒćøå‘ć‘ć¦ćƒ—ćƒ«ćƒŖć‚Æć‚Øć‚¹ćƒˆć‚’é€ć‚‹ćŸć‚ć€ć€Œbaseć€ļ¼ˆćƒŖć‚Æć‚Øć‚¹ćƒˆå—äæ”å“ļ¼‰ćŒć€Œmasterć€ćƒ–ćƒ©ćƒ³ćƒć€ć€Œcompareć€ļ¼ˆćƒŖć‚Æć‚Øć‚¹ćƒˆé€äæ”å“ļ¼‰ćŒć€Œadd-new-fileć€ćƒ–ćƒ©ćƒ³ćƒćØćŖć‚Šć¾ć™ć€‚

26

ćƒ—ćƒ«ćƒŖć‚Æć‚Øć‚¹ćƒˆć®ć‚æć‚¤ćƒˆćƒ«ćØć€å†…å®¹ć‚’čØ˜č¼‰ć—ć¾ć™ć€‚å†…å®¹ć«ćÆć€ć“ć‚ŒćŒä½•ć®ćŸć‚ć®ć©ć‚“ćŖäæ®ę­£ćŖć®ć‹ć€ē¢ŗčŖć§ćć‚‹ē’°å¢ƒć‚„ćƒć‚±ćƒƒćƒˆęƒ…å ±ćŖć©ć€åæ…č¦ćŖęƒ…å ±ć‚’č©³ć—ćę›øćć¾ć—ć‚‡ć†ć€‚

27

čØ˜č¼‰ć§ććŸć‚‰ć€ŒCreate pull requestć€ć‚’ć‚ÆćƒŖćƒƒć‚Æć—ć¾ć™ć€‚ä»„äøŠć®ę‰‹é †ć§ć€ćƒ—ćƒ«ćƒŖć‚Æć‚Øć‚¹ćƒˆć®ćƒšćƒ¼ć‚øćŒä½œęˆć•ć‚Œć¾ć™ć€‚

28

恓恮URLć‚’ć€ćƒ—ćƒ«ćƒŖć‚Æć‚Øć‚¹ćƒˆć‚’ē¢ŗčŖć—ć¦ć‚‚ć‚‰ć„ćŸć„é–‹ē™ŗč€…ć‚„ć€å‹•ä½œē¢ŗčŖć‚’ć—ć¦ć‚‚ć‚‰ć„ćŸć„é–¢äæ‚č€…ćŖć©ć«ä¼ćˆć¾ć™ć€‚

ćƒ—ćƒ«ćƒŖć‚Æć‚Øć‚¹ćƒˆć‚’ē¢ŗčŖć™ć‚‹

ęœ¬ę„ć§ć‚ć‚Œć°ć€ćƒ—ćƒ«ćƒŖć‚Æć‚Øć‚¹ćƒˆć‚’é€ć‚‹é–‹ē™ŗč€…ćØē¢ŗčŖć™ć‚‹é–‹ē™ŗč€…ćÆåˆ„ć®äŗŗć§ć™ćŒć€ć“ć“ć§ćÆčŖ¬ę˜Žć®ćŸć‚ć€č‡Ŗåˆ†č‡Ŗčŗ«ć§ćƒ—ćƒ«ćƒŖć‚Æć‚Øć‚¹ćƒˆć‚’ē¢ŗčŖć™ć‚‹ć“ćØć«ć—ć¾ć™ć€‚

å…ˆć»ć©ä½œęˆć—ćŸćƒ—ćƒ«ćƒŖć‚Æć‚Øć‚¹ćƒˆć®ćƒšćƒ¼ć‚øć‚’é–‹ć„ć¦ć€ŒConversation怍怌Commits怍怌Files changedć€ć®ć‚æćƒ–ć§ć€ćć‚Œćžć‚Œę¬”ć®å†…å®¹ć‚’ē¢ŗčŖć—ć¾ć—ć‚‡ć†ć€‚

  • 怌Conversationć€ć§ćÆć€ćƒ—ćƒ«ćƒŖć‚Æć‚Øć‚¹ćƒˆć®čŖ¬ę˜Ž
  • 怌Commitsć€ć§ćÆć€ć©ć‚“ćŖć‚³ćƒŸćƒƒćƒˆć‚’ć•ć‚Œć¦ć„ć‚‹ć®ć‹
  • 怌Files changedć€ć§ćÆć€ćƒ•ć‚”ć‚¤ćƒ«ć«ć©ć‚“ćŖå·®åˆ†ćŒć‚ć‚‹ć®ć‹

ę°—ć«ćŖć‚‹ē‚¹ćŒć‚ć‚Œć°ć€ć‚³ćƒ”ćƒ³ćƒˆć§ęŒ‡ę‘˜ćƒ»č³Ŗå•ć—ć¾ć™ć€‚ę°—ć«ćŖć‚‹ē‚¹ćŒćŖć„å “åˆć«ćÆć€Œå•é”ŒćŖć„ć€ę—Øć‚’ć‚³ćƒ”ćƒ³ćƒˆć—ć¾ć™ć€‚

29

å•é”Œć®ęœ‰ē„”ć ć‘ć§ćŖćć€åŠ¹ēŽ‡ēš„ćŖć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰ć®ę›øćę–¹ć‚„ć€čŖ­ćæć‚„ć™ć„ę›øćę–¹ć®ęę”ˆć€č‰Æć„ćØć“ć‚ć‚’č¤’ć‚ć‚‹ćŖć©ć€é–‹ē™ŗč€…ćØć‚³ćƒŸćƒ„ćƒ‹ć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć‚’ćØć‚Šć¾ć—ć‚‡ć†ć€‚ć‚³ćƒ”ćƒ³ćƒˆć‚’čØ˜č¼‰ć—ć¦ć€ć€ŒCommentć€ć‚’ć‚ÆćƒŖćƒƒć‚Æć—ć¾ć™ć€‚

30

ć‚³ćƒ”ćƒ³ćƒˆćŒčØ˜č¼‰ć•ć‚ŒćŸć‚‰ć€ćƒ—ćƒ«ćƒŖć‚Æć‚Øć‚¹ćƒˆć‚’é€ć£ćŸé–‹ē™ŗč€…ćŒćć®ć‚³ćƒ”ćƒ³ćƒˆć‚’ē¢ŗčŖć—ć€åæ…č¦ćŒć‚ć‚Œć°å†åŗ¦äæ®ę­£ć—ć€ć‚³ćƒ”ćƒ³ćƒˆć‚’čæ½čØ˜ć—ć¾ć™ć€‚ćć—ć¦ć€å†åŗ¦ē¢ŗčŖć‚’ć‚‚ć‚‰ć„ć‚³ćƒ”ćƒ³ćƒˆć®ć‚„ć‚Šå–ć‚Šć‚’äø”č€…ē“å¾—ć§ćć‚‹ć¾ć§ē¹°ć‚Ščæ”ć—ć¾ć™ć€‚

ćƒ—ćƒ«ćƒŖć‚Æć‚Øć‚¹ćƒˆć®ēµ‚äŗ†ćØćƒžćƒ¼ć‚ø

ćƒ—ćƒ«ćƒŖć‚Æć‚Øć‚¹ćƒˆć®ć‚³ćƒ”ćƒ³ćƒˆć®ć‚„ć‚Šå–ć‚ŠćŒå®Œäŗ†ć—ćŸć‚‰ć€ćƒ—ćƒ«ćƒŖć‚Æć‚Øć‚¹ćƒˆć‚’ēµ‚äŗ†ć•ć›ć¾ć™ć€‚ć€ŒMerge pull requestć€ć‚’ć‚ÆćƒŖćƒƒć‚Æć—ć¾ć—ć‚‡ć†ć€‚

31

ćƒžćƒ¼ć‚øć™ć‚‹éš›ć®ć‚³ćƒ”ćƒ³ćƒˆć‚’å…„åŠ›ć—ć€ć€ŒConfirm mergeć€ć‚’ć‚ÆćƒŖćƒƒć‚Æć—ć¾ć™ć€‚

32

ä»Šå›žćÆadd-new-filećƒ–ćƒ©ćƒ³ćƒć‹ć‚‰masterćƒ–ćƒ©ćƒ³ćƒćøå‘ć‘ć¦ć®ćƒ—ćƒ«ćƒŖć‚Æć‚Øć‚¹ćƒˆć ć£ćŸć®ć§ć€add-new-filećƒ–ćƒ©ćƒ³ćƒćŒmasterćƒ–ćƒ©ćƒ³ćƒć«ćƒžćƒ¼ć‚øć•ć‚ŒćŸēŠ¶ę…‹ć«ćŖć‚Šć¾ć™ć€‚

ä½œę„­ć—ć¦ć„ćŸćƒ–ćƒ©ćƒ³ćƒćŒäøč¦ć§ć‚ć‚Œć°ć€ŒDelete branchć€ć‚’ć‚ÆćƒŖćƒƒć‚Æć—ć€ćƒ–ćƒ©ćƒ³ćƒć‚’å‰Šé™¤ć—ć¾ć™ć€‚

33

ä»„äøŠć§ć€ä½œę„­ć—ć¦ć„ćŸadd-new-filećƒ–ćƒ©ćƒ³ćƒć‚‚å‰Šé™¤ć•ć‚Œć€äæ®ę­£å†…å®¹ćŒmasterćƒ–ćƒ©ćƒ³ćƒć«åę˜ ć•ć‚ŒćŸēŠ¶ę…‹ć«ćŖć‚Šć¾ć™ć€‚

34

ćƒ­ćƒ¼ć‚«ćƒ«ē’°å¢ƒć‚’ęœ€ę–°ć«ć™ć‚‹

GitHubäøŠć§ćƒžćƒ¼ć‚øćØćƒ–ćƒ©ćƒ³ćƒć®å‰Šé™¤ć‚’č”Œć„ć¾ć—ćŸć€‚ć—ć‹ć—ć€ć“ć®ć¾ć¾ć§ćÆćƒ­ćƒ¼ć‚«ćƒ«ē’°å¢ƒćÆć¾ć ęœ€ę–°ēŠ¶ę…‹ć§ćÆć‚ć‚Šć¾ć›ć‚“ć€‚ę¬”å›žć®é–‹ē™ŗć«å‚™ćˆęœ€ę–°ēŠ¶ę…‹ć«ć—ć¦ćæć¾ć—ć‚‡ć†ć€‚

ć¾ćšć€masterćƒ–ćƒ©ćƒ³ćƒć«ē§»å‹•ć—ć¾ć™ć€‚

$ git branch
* add-new-file
  master
$ git checkout master
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.

ćć—ć¦ć€masterćƒ–ćƒ©ćƒ³ćƒć‚’ćƒŖćƒ¢ćƒ¼ćƒˆäøŠć®ęœ€ę–°ēŠ¶ę…‹ćØåŒęœŸć—ć¾ć™ć€‚

$ git pull
remote: Counting objects: 1, done.
remote: Total 1 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (1/1), done.
From github.com:github-sample/test
   3a45269..5f5191e  master     -> origin/master
Updating 3a45269..5f5191e
Fast-forward
 sample.txt | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 sample.txt

å…ˆć»ć©ć®ćƒ—ćƒ«ćƒŖć‚Æć‚Øć‚¹ćƒˆć®ćƒžćƒ¼ć‚øć«ć‚ˆć£ć¦ć€ä½œę„­å†…å®¹ćŒmasterćƒ–ćƒ©ćƒ³ćƒć«åę˜ ć•ć‚ŒćŸēŠ¶ę…‹ć§ćƒ­ćƒ¼ć‚«ćƒ«ē’°å¢ƒć‚‚åŒęœŸć•ć‚Œć¾ć—ćŸć€‚

ćƒ­ćƒ¼ć‚«ćƒ«ć®ä½œę„­ćƒ–ćƒ©ćƒ³ćƒć‚‚äøč¦ć«ćŖć£ćŸć®ć§å‰Šé™¤ć—ć¾ć™ć€‚

$ git branch -d add-new-file
Deleted branch add-new-file (was c55282b).

ć‚‚ć—ć€ćƒžćƒ¼ć‚øć•ć‚Œć‚‹å‰ć®ēŠ¶ę…‹ć§å‰Šé™¤ć—ć‚ˆć†ćØć™ć‚‹ćØć€-dć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ć§ćÆä»„äø‹ć®ć‚ˆć†ćŖć‚Øćƒ©ćƒ¼ć«ćŖć‚Šć¾ć™ć€‚ćƒ­ćƒ¼ć‚«ćƒ«ć®masterćƒ–ćƒ©ćƒ³ćƒćŒćƒžćƒ¼ć‚øå‰ć®ēŠ¶ę…‹ć§ć‚ć£ć¦ć‚‚åŒć˜ć§ć™ć€‚

$ git branch -d add-new-file
error: The branch 'add-new-file' is not fully merged.
If you are sure you want to delete it, run 'git branch -D add-new-file'.

ćƒžćƒ¼ć‚øå‰ć®ćƒ­ćƒ¼ć‚«ćƒ«ćƒ–ćƒ©ćƒ³ćƒć‚’å¼·åˆ¶ēš„ć«å‰Šé™¤ć—ćŸć„å “åˆćÆ -dć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ć§ćÆćŖćć€-Dć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ć‚’ä½æć„ć¾ć™ć€‚

$ git branch -D add-new-file
Deleted branch add-new-file (was a7ff9d3).

ćŠć‚ć‚Šć«

ä»Šå›žćÆåŸŗęœ¬ēš„ćŖęµć‚Œć‚’ē°”å˜ć«čŖ¬ę˜Žć—ć¾ć—ćŸć€‚å®Ÿéš›ć«ä½æć„ćÆć˜ć‚ćŸćØćć«ćÆć€ć•ć‚‰ć«č©³ć—ć„ä»•ēµ„ćæć‚„ć‚³ćƒžćƒ³ćƒ‰ć®ēŸ„č­˜ćŒåæ…č¦ć«ćŖć£ć¦ćć‚‹ć§ć—ć‚‡ć†ć€‚ćć®éš›ć«ćÆć€č‡Ŗåˆ†ć§ęœ¬ć‚„ć‚¤ćƒ³ć‚æćƒ¼ćƒćƒƒćƒˆć‚’čŖæć¹ćŖćŒć‚‰ä½æć£ć¦ćæć¦ćć ć•ć„ć€‚ę‰‹ć‚’å‹•ć‹ć—ć€čŖæć¹ćŖćŒć‚‰é€²ć‚ć‚‹ć“ćØć«ć‚ˆć£ć¦ć€č‡Ŗē„¶ćØčŗ«ć«ć¤ć„ć¦ć„ćć§ć—ć‚‡ć†ć€‚

Git/GitHubćÆć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰ć ć‘ć§ćÆćŖćć‚·ć‚¹ćƒ†ćƒ ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆć‚„ę›øē±åŽŸēØæć€ćƒ‡ć‚¶ć‚¤ćƒŠćƒ¼ć®ćƒ†ćƒ³ćƒ—ćƒ¬ćƒ¼ćƒˆć®ē®”ē†ćŖć©ć«ć‚‚ē”Øć„ć‚‰ć‚Œć¾ć™ć€‚å®Ÿéš›ć®ē¾å “ć«ćŠć„ć¦ć‚‚ć€ćć®ćƒćƒ¼ćƒ ć«é©ć—ćŸćƒ«ćƒ¼ćƒ«ć‚’č€ƒćˆć€ęœ‰åŠ¹ēš„ć«Git/GitHubć‚’ä½æć„å€’ć—ć¦ć„ćć¾ć—ć‚‡ć†ć€‚

åŸ·ē­†č€…ćƒ—ćƒ­ćƒ•ć‚£ćƒ¼ćƒ«

ę± ē”°å„äŗŗļ¼ˆć„ć‘ć ćƒ»ć‘ć‚“ćØļ¼‰ @ikenyal

35
ć‚µćƒ¼ćƒć‚µć‚¤ćƒ‰ć‚Øćƒ³ć‚øćƒ‹ć‚¢ć€‚å­¦ē”Ÿę™‚ä»£ć«ē ”ē©¶å®¤ć‚„å­¦éƒØć®å„ēØ®ć‚µćƒ¼ćƒćƒ»ćƒćƒƒćƒˆćƒÆćƒ¼ć‚Æę§‹ēÆ‰ćŖć©ć‚’ēµŒéØ“ć—ć€ćƒ—ćƒ­ć‚°ćƒ©ćƒŸćƒ³ć‚°ä»„å¤–ć®ęŠ€č”“ć‚‚å­¦ć¶ć€‚2011幓に某Webē³»ITä¼ę„­ć«å…„ē¤¾ć€‚ć‚Øćƒ³ć‚øćƒ‹ć‚¢č·ć§ć‚ć‚Šć¤ć¤ć‚‚ć€ę ”ę­£ć‚¹ć‚­ćƒ«ć«ćÆč‡Ŗäæ”ć‚ć‚Šć€‚ē¾åœØćÆćƒŖćƒ¼ćƒ€ćƒ¼ćØć—ć¦ćƒžćƒć‚øćƒ”ćƒ³ćƒˆć‚¹ć‚­ćƒ«ć‚’ēæ’å¾—äø­ć€‚

ć‚¤ćƒ©ć‚¹ćƒˆē“ ęļ¼šć„ć‚‰ć™ćØć‚„

ē·Øé›†ļ¼šč–„äŗ•åƒę˜„ļ¼ˆZINE)

č‹„ę‰‹ćƒć‚¤ć‚­ćƒ£ćƒŖć‚¢ć®ć‚¹ć‚«ć‚¦ćƒˆč»¢č·