æåã«
ãªããšãªãã§ã䜿çšã§ããGitã§ããå®ã¯ãšãŠã奥深ãè€éãªæ§é ãããŠããŸãã
ãããªGitã䜿ãå§ããæã»ãŒå
šå¡ãæããHEADããšã¯äœè
ãªã®ã説æããããšæããŸãã
ãŸãåãããŠãBranchãšã¯ããdetached HEADãšã¯ãã«ã€ããŠã話ããŸãã
å ã«çµè«ãã¡ãŒã¹ãã§è©±ããŸããš
HEADãšã¯
ä»èªåãäœæ¥ããŠããå Žæã瀺ããã€ã³ã¿
Branchãšã¯
éçºã®æ¬æµããåå²ããæ¬æµã®éçºãéªéããããšãªãäœæ¥ãç¶ããæ©èœ
detached HEADãšã¯
HEADãBranchãæããŠããªãç¶æ ã®ããš
ãããŠåèªèº«ä»¥åãŸã§ãã©ã³ããšã¯ãªã«ãèãããå Žåãäžå³ã®ãããªã€ã¡ãŒãžãæã£ãŠããŸããã
ãããŠããã¯èª€ã£ãèªèã§ãã
ãã®èšäºã¯Make IT ã¢ããã³ãã«ã¬ã³ããŒ9æ¥ç®ã®èšäºãšããŠå¯çš¿ããŠããŸãïŒ
ææ¥ã¯ @wh1tecat ãæçš¿ããäºå®ã§ãã
楜ãã¿ã§ããïŒç¬ïŒ
Branchãšã¯
ãŸãGitã®ãã©ã³ããšããã·ã¹ãã ã«ã€ããŠã話ããŸãã
ãã©ã³ããšèšãããŠãªã«ãæ³åããŸããïŒ
ãã©ã³ãã説æããããã«å³ã䜿ã£ãŠèª¬æããããšæããŸãã
äžå³ã®Gitã§ã¯å·Šäžãæåã®ã³ãããã瀺ããã³ããããéããããšã«äžã«åãã£ãŠäŒžã³ãŠããŸããå·Šäžã®masterãã©ã³ãããå§ãŸããéäžã§developãã©ã³ãããŸãdevelopããfeat/aãã©ã³ãã«æŽŸçããŠãæ§åã瀺ããŠããŸãã
ãã®Gitã§ã¯3ã€ã®ãã©ã³ãã管çããŠããŸãã
ãããŠä»ããªãã¯masterãã©ã³ãã§äœæ¥ããŠããŸãã
ã§ã¯ãããã®ããªãŒãèŠãæããmasterããdevelopããfeat/aãã®ãã©ã³ãã¯ããããã©ãã§ããïŒããšè³ªåãããå Žåãåèªèº«ä»¥åãŸã§äžå³ã®ããã«èããŠããŸããããããŠããã¯ééã£ãèªèã§ããã
éæ ã§å²ã£ãäžå
šäœãmasterãã©ã³ãã§ãããšèªèããŠããŸããã
ãŸãåŸè¿°ããŸãHEADãéãæ ãæããŠãããšãªããšãªãèããŠããŸããã
ããããå®éã®ãã©ã³ããšã¯äžå³ã®ããã«ãªããŸã
ãã®ç¶æ³ã®çµè«ãèšããš
Gitã«ããããã©ã³ããšã¯ãåã«ã³ããããæã軜éãªãã€ã³ã¿ã«éããŸãã
ãããŠãããã3ã€ã®ãã©ã³ãã¯ããç¹å®ã®ã³ãããã瀺ããã€ã³ã¿ã§ã
åèªèº«ä»¥åãŸã§ã¯ãã©ã³ããšã¯æŽŸçå ããææ°ã®å±¥æŽãŸã§ã®æå šäœããããã¯ãã¡ã€ã«çŸ€ã®ãããªãã®ãæã瀺ããŠãããšèããŠããŸãããããã¯èª€ã£ãŠããŸããã
ã§ã¯ãã以å€ã®ã³ãããã¯ã©ãã®ãã©ã³ãã«æå±ããŠããã®ãïŒ
ããããã³ããããšã¯ãªããªã®ã
Gitã¯ã©ã®æ§ã«ããŠãã¡ã€ã«ã®å±¥æŽã管çããŠããã®ã
çµå±HEADãšã¯ïŒ
ããããçåãåºãŠãããšããã§æ¬¡ã¯Gitã®ä»çµã¿ã«ã€ããŠå°ãè§ŠããããšæããŸãã
Gitã®ãã¡ã€ã«ç®¡çã®ä»çµã¿
Gitãã³ãããããããã«å¿ èŠãªã³ãã³ãã¯ãããã以äžã®ãã®ã§ãã
1. /* ãã¡ã€ã«ãç·šé */
2. git add -A
3. git commit -m "add my-files"
ãã®æGitå éšã®æµãã¯äžã®ããã«ãªããŸã
- ã¹ããŒãžããããã¡ã€ã«ã®ããã·ã¥ãèšç®
- ããªãŒãªããžã§ã¯ããäœæããã
- ããªãŒãªããžã§ã¯ãã«ã¹ããŒãžããã³ãŒãã®ã¹ãããã·ã§ãããžã®ãã€ã³ã¿ãæ ŒçŽããã
- git commit ãå®è¡ããããšã³ããããªããžã§ã¯ããäœæ
- ã³ããããªããžã§ã¯ãã«ããªãŒãªããžã§ã¯ããžã®ãã€ã³ã¿ã芪ã³ããããžã®ãã€ã³ã¿ãäœæè ã®ã¡ã¿ããŒã¿ãªã©ãæ ŒçŽããã
- ãã©ã³ãã®ãã€ã³ã¿ãææ°ã®ã³ããããªããžã§ã¯ãã«é²ãã
ã³ããããç¹°ãè¿ãããããšãã©ã³ãã¯æ¬¡ã®ãã©ã³ãã«èªåã§ç§»åããŸã
åãããŠHEADãç§»åããŸãã
ã¹ããŒãžã³ã°ããããã¡ã€ã«ã®ãã€ã³ã¿ãããªãŒãªããžã§ã¯ãã«blobãšããŠæ ŒçŽãããŸãã
ãã€ã³ã¿ã®å
ã¯ã¹ããŒãžããããã¡ã€ã«ã®ã¹ãããã·ã§ãããæ ŒçŽãããŠããŸãã
ã³ããããªããžã§ã¯ããäœããã床ããªãŒãªããžã§ã¯ãã®ãã€ã³ã¿ãæ ŒçŽãããŸã
ã³ããããªããžã§ã¯ãã«ã¯ããªãŒãªããžã§ã¯ããžã®ãã€ã³ã¿ã®ä»ã芪ã³ãããã®ãã€ã³ã¿ãã³ããã¿ãŒã®ã¡ã¿æ
å ±ãã³ãããã¡ãã»ãŒãžãªã©ãåãããŠæ ŒçŽãããŸãã
ãããŠãããã®ã³ããããªããžã§ã¯ããæ°ç ã€ãªããšãªãããšã§Gitã®ããªãŒã¯åœ¢æãããŠããŸã
ãã®ããã«ããŠGitã¯ã³ããããäœæã管çããŠããŸãã
ãããŠGitã«ããããã©ã³ããšã¯åã«ãããã®ã³ãããã瀺ã軜éãªãã€ã³ã¿ã§ãããããŸããã
ããä»®ã«æ°ãããã©ã³ããäœãããå Žåã¯åã«æ°ãããã€ã³ã¿ãäœãããã ãã§ãã
ãã©ã³ããšã¯ã³ãããã瀺ããã€ã³ã¿ã®ããšã§ãã¡ã€ã«ã®å±¥æŽçŸ€ãæã®æ§ã«èŠãããã®å šäœãæãããã§ã¯ãããŸããã
Gitã¯ããããã®ã³ãããã®èŠªãšãªãã³ãããã®ããã·ã¥ãæã€ããšã§ãã¡ã€ã«ã®å±¥æŽã管çããŠããŸãã
ãã®èŠªã®å€ããã©ãããšã§ãã¡ã€ã«ã®å€æŽå±¥æŽã確èªããŠããŸãã
äžã€ã®ã³ããããè€æ°ã®èŠªã³ããããä¿ã€å ŽåããããŸããããŒãžããå Žåãªã©ã該åœããŸãã
ãŸãäžã€ã®ã³ããããè€æ°ã®ãã©ã³ããåç
§ããæããããŸãããã©ã³ãã¯ãã€ã³ã¿ã§ãããããã©ã³ãã被ã£ãŠããŠãç¹ã«å®³ã¯ãããŸããã
HEADãšã¯
Gitãã©ããã£ãŠä»äœæ¥ããŠãããã©ã³ããææ¡ããŠããããåç¥ã§ããããããã®æã«äœ¿ãããã®ãHEADã§ãã
HEADã®äžèº«ã¯ãã¡ãããã€ã³ã¿ã§ãããGitã®äžã§ç¹æ®ã§å¯äžã®ååšã§ãã
HEADããã©ã³ããæãããšã§èªåãçŸåšãããã©ã³ããã©ãã確èªã§ããä»çµã¿ã«ãªã£ãŠããŸã
ã€ãŸãã³ãããã®å Žæãèšæ¶ããŠããã®ããã©ã³ãããã©ã³ãã®å Žæãèšæ¶ããŠããã®ãHEADã§ã
ãããããã€ã³ã¿ã®ãã€ã³ã¿ã£ãŠãã€ã§ã
ãããæ°ããã³ããããçºçããå Žåãèªåçã«ãã©ã³ãã®ãã€ã³ã¿ãé²ã¿ãŸããHEADããã©ã³ããæããŠãããå ŽåHEADã®å€ãåãããŠè¿œå°Ÿããä»çµã¿ã«ãªã£ãŠããŸã
Gitã¯HEADã瀺ããŠãããã©ã³ãããèªåãäœæ¥ããŠãããã©ã³ãã確èªããŠããŸã
å ã¿ã«çŽè¿ã§èªåãç§»åããHEADã®äœçœ®ã確èªãããå Žåã¯äžèšã®ã³ãã³ããå®è¡ããŸãã
git reflog
ãŸããã©ã³ãã®ããªãŒå³ãèŠããå Žåã¯SourceTreeãGitUPãªã©ã®GUIããŒã«ãtigãªã©ã䜿çšããŠç¢ºèªããã®ãè¯ãã§ãããã
detached HEADãšã¯
æåŸã«detached HEADãšã¯ãªã«ã説æããŸãã
detached HEADãèµ·ããããšã¯çšã§ãããrebaseçãè¡ã£ãéã«èµ·ããããšããããŸãã
detached HEADãšã¯ãªã«ãçµè«ãããããš
HEADããã©ã³ã以å€ã®ã³ãããã®ãã€ã³ã¿ã瀺ããŠããç¶æ
ã®ããšã§ãã
å
çšHEADã¯ãã©ã³ãã瀺ããŠãããšãããŸããããHEADã¯ãã©ã³ã以å€ã®ãªãã§ããªããã ã®ã³ãããã瀺ãããšãã§ããŸãã
ããããç¶æ
ãdetached HEADãšåŒã³ãŸãã
äŸãã°ç¹å®ã®ã³ãããæã®ãã¡ã€ã«ã®ç¶æ
ã確èªãããæãªã©æ¢ããŠHEADããã©ã³ã以å€ã«ç§»åãããããªã©ãè¡ããŸãã
detached HEADã«ãªã£ãå Žåã®å¯ŸåŠã§ãããä»»æã®ãã©ã³ãã«HEADããã§ãã¯ã¢ãŠããããã°ããã©ã³ããåç
§ããŠããã®ã§detached HEADã§ã¯ãªããªããŸãã
detached HEADã®ç°¡åãªèµ·ããæ¹ã玹ä»ããŸã
- git logã§ã³ãããã確èªããã©ã³ãã瀺ããŠããªããªãã§ããªãã³ãããã®ããã·ã¥ãæ§ããŸã
- æ§ããããã·ã¥å®ã«ãã§ãã¯ã¢ãŠãããŸã
- git branchã§ç¢ºèª
git log
git checkout c215891f5b9b997ec4020c4539b773ef94c2449c
git branch
* (HEAD detached at c215891)
develop
feat/a
master
æ»ãæ¹
- git branchã§æ»ããã©ã³ãåã確èª
- 確èªãããã©ã³ãå®ã«ãã§ãã¯ã¢ãŠã
git branch
* (HEAD detached at c215891)
develop
feat/a
master
git checkout develop
git branch
* develop
feat/a
master
detached HEADãããç¶æ ãæªãç¶æ ãç¶æ³ã«ãããŸãã®ã§ãªããšãèšããŸããããæå³ããçºçããŠããŸã£ãå Žåã¯ããç¶æ ãšã¯èšããªãã§ãããã詳ãã人ã«ç¶æ³ã説æããŠå¯ŸåŠããŠãããã®ããããšæããŸãã
çµããã«
ãã®èšäºã®åæ©ã§ãããå ã ã¯æ°ã¶æåã«ãã¡ã¹ããã©ã¯ãŒããšãã³ãã¡ã¹ããã©ã¯ãŒããçè§£ããããã«èª¿ã¹ããã©ã³ãã«ã€ããŠç¥ã£ãã®ããã£ããã§ãããããããŸãšããæ°åããªããŸãä»åºŠãŸãšããããšæãã°ããã§ããããä»åããæ©äŒã ãšæããŸãšããã®ããã®èšäºã®åæ©ã«ãªããŸãã
Gitã®HEADã«ã€ããŠåãã£ãŠãã颚ã«èª¬æããŸããããåèªèº«ãåãããªãããšãå€ãæ¥ã
ååŒ·ã®æ¯æ¥ã§ãã
ãã€ãGitãã¹ã¿ãŒã«ãªããããšã倢èŠãŠçããŠããããã§ãã
粟é²ããããæ°æã¡![]()
åè






