3è¡ã¾ã¨ã
Gitã¯ãææ ®æµ ãä¸ã ã®ããããããããããªãã·ã¹ãã ã®å¤æ´ã¨ãªãªã¼ã¹ã管çãããã¨ããã·ã³ãã«ãªç®çã«å¯¾ãã¦ã¯é£ããããã
ç¹ã«å¦¥å½ãªãã¼ã¸æ¦ç¥ãã²ã¨ã¤ã«å®ããããªããã¨ãè´å½çãããã
PullRequestã®ã¡ãªããã ãã享åã§ããã·ã³ãã«ãªSCMãåºã¦ãã¦ã»ãããªã
Â
ãã¼ã«ã«ãªãã¸ããªããã¡ã¤ã«ã·ã¹ãã ã§è¡¨ç¾ãããã¨ãããããã«ãã
ãã£ãããªã¨ããããï¼ã¨ãã声ãèããã¦ãããã ãããããªã¨ãããããªã®ã *1ã
Â
ãã®åºæ¬çãªã¨ãã§ã¤ã¾ã¥ãã²ã¨ã¯ããªãå¤ããããã®å ´åã®èª¬æãè¶ é¢åãããã
PCãç解ãã¦ããã»ã¨ãã©ã®äººã«ã¨ã£ã¦ãã¡ã¤ã«ã·ã¹ãã ä¸ã®ãã¡ã¤ã«ãããæ°¸ç¶çãªãã®ã§ãè£ã«è¬ã®ä»çµã¿ãæ½ãã§ãã¦æ°¸ç¶çã§ããã¯ãã®ãã¡ã¤ã«ãã³ãã³ãåãæ¿ãããã¨ããã¢ãã«ã«ã¯é¦´æã¾ãªãã®ã ã天æãã¡ã¯ããã«æ°æ¦å¿µãç解ã§ãããããããªãããå¡äººã¯æ¢ææ¦å¿µã«åãããã®ã ããã¡ã¤ã«ã¯èåã§ãæ¬ä½ã¯.gitã®ä¸ã«ãããªãããªãã¦ããã¾ã©ãã®ã¿ãããªè©±ã¯ãããã®ã ã
zipãã¡ã¤ã«ããã¦ã³ãã¼ããã¦ãã©ã«ãã«è§£åããããã«ããªãã¸ããªãcloneãã¦ãã©ã«ãã«checkoutã§ããããã«ããã°ããã£ãããã©ã«ãã¨ãã©ã³ãã1対1ã®ã»ããå ¨ç¶ããã£ãããã©ã«ãã®æ°ï¼ãã¼ã«ã«ãªãã¸ããªã§ã®å±éãã©ã³ãæ°ã¨ãªã£ãã»ããå ¨ç¶ããããããã£ãã
ããããã¯ã¼ãã³ã°ãã©ã«ãå ã®ãã¡ã¤ã«ç¾¤ãå®å ¨ã«åãæ¿ãããªãã¾ã ãããgit addåã®ãã¡ã¤ã«ã¯ç¶ç¶é ç½®ããç¶ããã¨ãããæ´ã«èª¤è§£ãçã¿ãããããã¼ã«ã«ã§ä¿åãã¨ããã¯ãã®ãã¡ã¤ã«ãæ¶ãã¡ããã¾ããã¨ãã£ã¦æ²åãçã¾ããã
æåã®ã¤ã¾ã¥ãã ããªãã¾ã ããããã®è¾ºã®ä»çµã¿ãå®ã¯ç解ã§ãã¦ãªãã¦ãªããèµ·ãããã³ã«cloneããããç´ããã¿ãããªäººãä¸å®æ°ããããã«æãã
Â
ãã¡ãããç¾ç¶ã®ã¢ãã«ãããã©ã«ãã§ãã£ã¹ã¯å©ç¨éãå°ãªããªããªã©ã®ã¡ãªããã¯ãããæ¯æ¥æ°åãã®æ°ãã©ã³ãã確èªããªããã°ãªããªããªãé度çã¡ãªããã大ãããããããããããã®ã¯ãªãã·ã§ã³åãã¦ããã¢ãã¯ãªäººã ãã使ãã°è¯ãã¨ãããã®ã§ãããÂ
Â
ããªã¼ãè¦ããã
Gitãã©ã³ãã®è§£èª¬æã«ã¯ããã¦ãä¸ã®ãããªå³ãè¼ã£ã¦ããããããããããããªããªã¼ã表示ãããã¼ã«ããªãã
ã»ã¨ãã©ã®éçºè ã¯ã¡ã¤ã³ãã©ã³ãdevelopããåå²ããfeatureã®æ å½ã§ãããdevelopã¨featureã®ç¶æ³ãåæã«è¦ããã¯ãã ãdevelopãå¹¹ã¨ãã¦ãfeatureãæã¨ãã¦ã大æµã®å ´åããããã®ãã©ã³ãã並è¡ãã¦ããã®ã§ãã©ã³ããçµãããã大æµã®å ´åããããã®ã³ããããã¡ã¤ã³ãã©ã³ãã«è¡ããã¦ããã®ã§åå²è¿è¾ºä»¥å¤ã¯çç¥ãã¦ã¿ããã
ã§ããªãããªãã§ãã
Â
ãã¾ãã¨ãä¸çªçæ³ã«è¿ãã®ã¯VS Codeæ¡å¼µã®Git graphããªï¼ã»ã¨ãã©ã®ãã¼ã«ã¯ãªãã2ã¤ã®ãã©ã³ãã ãã«çµã£ã¦è¡¨ç¤ºãããã¨ããã§ããªãã
Gitã¯ãããããã®ã§ãã¾ãã¾ãªç¶æ³ã§ããªã¼ã表示ããã¦èªåã®æå³éãã®æ§é ãã確èªããããªãã¯ãã ããã¾ãç解ãã¦ããªããªããªãããå®å°ã§ç¢ºèªãã¹ãã ãã§ããã®æ§é ãããæãã«ç¢ºèªãããã¼ã«ãå°ãªãã
ãããã¦Gitã®ãã©ã³ãæ§é ãæ·±ãç解ããè¡ã¯å¤±ããããã¤ã¾ã§çµã£ã¦ããããªãã¨ãªãã³ãããã»ãã«ãªã¯ã»ç«¶åã§å¤§æ ã¦ãã®ç¶æ³ã¯ç¹°ãè¿ãããã
Â
ãã¼ã¸ããã¾ã§ã©ãã競åãããããããªãã¦(â»)競åç¶æ ãã¨ãããããã¨ã«æ»ãã®ã大å¤(â»)
- ãã¼ã¸ãã¦ã¿ãªãã¨ç«¶åãããããããªãã®ã§(â»)ãã¨ãããããã¼ã¸ãã
- ãã¼ã¸ãã¦ç«¶åã¢ã¼ãã«ãªããã©ç´ããªã(â»)
- ãªãã¨ã競åã解é¤ãã¦ãããpushãããã¨ããã¨â18ã¨ãã§ã¦ã¦ãããï¼18åãã³ããããã¦ãªãã®ã«å¤§ä¸å¤«ãï¼ã¨ä¸å®ã«ãªã
- ãªãã¨ã競åã解æ¶ããã¤ããã§ãã¦ããGitHubã§ãã¼ã¸ã§ããç¶æ ã«ãªã£ã¦ãããã¼ã«ã«ã§ã¯ç¢ºèªã§ããªã(â»)
ãããªãµãã«ãã¦å¤§æ··ä¹±ãããå®éã¯â»ã¤ãã¦ãã¨ããã¯ééããªãã ãã©ã詳ããç¥èããªãã¨å¯¾å¿ã§ããªãã
ã§ãä¸çªã¤ããã®ã¯ããã¼ã¸ä½æ¥èªä½ã¯ã»ã¼ã»ã¼ã³ã¼ãä½æè æ¬äººããã§ããªããã£ã¦ã¨ãã誰ãããã«ãããã¨ãã¦ããããå¤ããï¼å¤ãã¦ãªãï¼ã£ã¦èãã¦ã©ã£ã¡æ¡ç¨ããã決ããã®ã¯æ¬äººããã§ããªãã詳ãã人ãå·»ãåããã¨ã¯ã§ããªãããã¼ã¸ã®ç«¶åãªãã¦ããã£ã¡ã ãèµ·ããä½æ¥ã®ãã³ã«ãããããã¨ã§æ··ä¹±ããã
ã©ãã«ããªãããã®ãã競åãèµ·ãããªããããªéç¨*2ã¿ãããªæå³ä¸æãªã«ã¼ã«ã決ãããã¨ã¨ããããããããï¼ã¨æããããããªããã©ããã¸ã§ãã
Â
解説ãã³ãã³ãã°ãã/ããGUIãã¼ã«ããªã
ããæ¸ãã¨ãã¦ã³ãééãCLI使ããªããã¤ã¯ç´ 人ãã¨ãè¨ãã ãããã ãç´ äººã ããããªãã®ã®ããã«ãªããããªãã®ã§æ¾ã£ã¦ããã¦ãã ãããã¦ãããGitãCLIã ãã§ããã£ã¦å®ç¨ä¸å¯è½ãªã®ï¼diffã¨ãã¤ãããªãï¼
Â
ã§ã決å®çã®ãã¼ã«ãå ¨ç¶ãªããä¸çªã¾ã¨ãã§ãã«ããã©ãããã©ã¼ã ãªã®ã¯SourceTreeãï¼ã§ãã¾ã ä¸ååã
ãã¼ã«ã«ãã£ã¦ç¿»è¨³ãå ¥ã£ããã³ãã³ãã¨ã®å¯¾æ¯å 容ãéã£ããã§åããã¨ãéã表ç¾ã«ãªã£ã¦ã¦ãããã«ãããã¨ãã®ä¸ãªãã
çµå±æ±ããããã®ã¯ããªã¼ã®è¦ãããã¨ç«¶å解æ¶ã®ããããã ãã決å®çããªããWindowsæ°ã¯ãã¼ã¿ã¹Gitãã使ããªããã¨ãããããã°ã°ãã°ã³ãã³ãã°ããã§èªåã§æé·ã§ããªãã
ããããããã¨ã¯ã¨ããã°gitã³ãã³ãã®æ§æããããã¥ããã®ãåå ã®é¨åãå¤ãã®ã§å°æ¥ã«ããã£ã¦æ¹åããªããããªã¨ããã¤ããã
Â
(éè¦)ãã¼ã¸æ¦ç¥åé¡
ä»ã¾ã§ã®è©±ã¯ãåã«åå¼·ä¸è¶³ã ã¨è¨ã£ã¦åãæ¨ã¦ããã¨ãã§ããã ããã
ãããããã¯éããå®æè«äºã ãä¸è¬ã«merge vs rebaseè«äºã¨è¨ããã¦ããï¼ã®ããªï¼ç¥ãããã©ããã ãããã¯mergeã¨rebaseã ãã®è©±ã§ã¯ãªãã¦å¤ãã®åé¡ãå«ãã§ããã
- squashããã¹ãã
- push -fã許ãã¹ããã許ãå ´åã¯ã©ã®ãããªãã©ã³ããç¶æ³ã«å¯¾ãã¦è¨±ãã¹ãã
- æ´å²æ¹å¤ãã©ãã¾ã§è¨±ãã¹ãããç¹ã«ã³ã¼ãã¬ãã¥ã¼ã¸ã®å¯¾å¿è¨é²ãªã©ãã¾ããæ¹å¤å¾ã®ç²åº¦ã¯ã©ãããã¹ãã
- ãã¼ã¸ã®åæ ã¯githubãªã©ä¸å¤®ãªãã¸ããªã®æ©è½ã§è¡ãã®ãèªåã§è¡ãã®ã
mergeæ´¾ã®æ¥µã¿ã¯ãä¸åã®rebaseãããmergeã®ã¿ã§ç«¶åã解決ããã¨ãããã®ãrebaseæ´¾ã®æ¥µã¿ã¯ããã©ã³ãã§ã®ãã¹ã¦ã®å¤æ´ãsquashãã¦ãã¼ã¸ç´åã®ã³ãããããrebaseããã¨ãããã®(ãã¹ã¦ãä¸è¨ã®ãããªã³ãããããªã¼ã«ãªã)
* Merge branch 'branch3' into 'develop' @user1 |\ | * Fix zzz |/ * Merge branch 'branch2' into 'develop' @user1 |\ | * Fix yyy |/ * Merge branch 'branch1' into 'develop' @user1 |\ | * Fix xxx |/ *
Â
åè ã¯ã³ãããããªã¼ãæ±ããªãããã¦ä½ããªãã ãããããªããªããã¡ãå¾è ã¯ããããå±¥æ´ã1ã¤ã«ã¾ã¨ããããã®ã§çµç·¯æ å ±ã失ãããã
çµå±ã®ã¨ãããèµ·ãã£ããã¨ã¯ãã¹ã¦ãã®ã¾ã¾è¨é²ãã¹ã(çµç·¯ã大äº)æ´¾ã¨ããªã«ããã¨ã«ãªã«ãä¿®æ£ããããæå¿«ã«ãã¹ã(çµæã大äº)æ´¾ã®äºãã§ãããã©ã¡ããæ£ãããã ããã¿ããæªãã
Â
大æµã¯rebaseæ´¾ã®ã»ããGitã«è©³ããã¦mergeæ´¾ã¯rebaseæ´¾ã®è¨ã£ã¦ãããã¨ãç解ã§ãã¦ãªããã¨ãå¤ããããããrebaseæ´¾ã¯å½ç¶ã®ããã«push -fã®ä½¿ç¨ãå¼·å¶ããããmergeæ´¾ããããã¨ããã ã§ããé£ããGitã®ããã«ããããããªãæé ãè¦ããä¸ã§ç¦å¿ã¨ããããä»äººã®ã³ããããå£ããææã«æ¯ããªããã°ãªããªããããåãå ¥ãé£ãã
ããã§ããã«ãrebaseæ´¾ãç ½ãæ°å³ã«ãã¦ã³ãã¨ã£ãããããã¨ãã¾ãã«ããããã®ã§ãããªãã¨ã«ãªããªããããã¦æ ¹æ¬çã«ã©ã¡ãã®è¨ã£ã¦ããã¨ãæ£ããã®ã§å ¨ç¶è½ã¨ãæãã¿ã¤ãããªããåå¼ãªããããªè¦å´ãããã°ãªããã®ãã
Â
åæ£ãªãã¸ããªãªãã¦èª°ãã¤ãã£ã¦ãã¼ãããã¼ãåé¡
gitã¯åæ£ãªãã¸ããªãªã®ã§ãä¸å¤®é権ãµã¼ãã¼ãæããã«ãäºãpull pushããã¦åæãåãã¢ãã«ãå¯è½ã ã£ãã¯ãã ã
ããããéç¨ããã¦ããã¨ããã£ãã®ãã¯ç¥ããªããã2022å¹´ç¾å¨ãã»ã¼å ¨ã¦ã®äººããµã¼ãã¼ã¯ã©ã¤ã¢ã³ãã§ä½¿ã£ã¦ãã ãããgithubã¿ãããªãoriginãããµã¼ãã¼ãã¨ãèªåã ãã®ãã¼ã«ã«ã
Â
çµå±Gitãããªãã¦Githubã®æ©è½ãããã¼ãåé¡
Git管çã§æãå½¹ã«ç«ã¤æ©è½ã¯ãã«ãªã¯ã¨ã¹ãã ãããå®å¿å®å ¨ãªã·ã¹ãã éçºã«ããã£ã¦å¤æ´ãã³ã³ããã¼ã«ãã¬ãã¥ã¼ã®å¼·å¶ãå®ç¾ã§ããä»çµã¿ã¯ç´ æ´ããããã»ã¨ãã©ã®äººã¯ãã«ãªã¯ã¬ãã¥ã¼ã®ããã«Gitã使ã£ã¦ããã®ã§ã¯ãªããã¨ããæãã
å ã«ç¤ºããéç¨ã«ã¼ã«ã«åãããã¼ã¸æ¦ç¥ã®å¾¹åºãPRãä»ããªãç´æ¥pushã®ç¦æ¢ãæ´å²æ¹å¤ã®ç¦æ¢ãªã©ããã©ã³ãåä½ã§ã³ã³ããã¼ã«ã§ããæ©è½ã¯ãéçºç¾å ´ã®ç§©åºç¶æã«ã¨ã¦ãå½¹ã«ç«ã¤ã
Â
ç´ æ´ããããããããããã¯å ¨é¨GitHubã®æ©è½ãããããï¼GitHubãªãã£ããåæ£ã¨ããåã®ãã ã®ãããããã¦ç解ãã¥ããä»çµã¿ãããããï¼
Â
ãã©ã³ãã®ã¡ã³ã¿ã«ã¢ãã«ããã®ä¹é¢
Gitãããç¥ã£ã¦ã人ãªããåç¥ãªããã«ããã©ã³ãã¯ãæãã¨ããååã§ã¯ããããå®éã«ã¯å ¨ç¶æããç¡ããã³ãããã§ããã
ã»ã¨ãã©ã®äººãã¡ã³ã¿ã«ã¢ãã«ã¨ãã¦æåããã®æ¨¹å½¢å³ãã¤ã¡ã¼ã¸ããããå®éã¯ã³ãããããã©ããã¨ã«ãã£ã¦ãçµæçã«ãããªã¼ãæ§ç¯ããã¦ãã«ãããªãã
樹形å³è¡¨ç¤ºãã¼ã«ã®æ±ºå®çãåºã¦ããªãã®ãã樹形å³ãåå²ãçµåã«çµã£ã¦ãã¾ãæå³ã¨ããããã«è¡¨ç¤ºãã«ããã®ããæ ¹æ¬çã«ã¯ãããå½±é¿ãã¦ããããã®ã¢ãã«ã¯Gitã®æ ¸ã§ããããä¸ç解決ããªããã¨ãã»ã¼ç¢ºå®ã§ãããã¤ããã
Â
ã³ãããIDãããã·ã¥
ãããããããGitã«ã¨ã£ã¦ããã·ã¥ãããèãªã®ã¯ãã
ã§ãããã¦è¨ããã¦ããããããã©ã³ãå+é£çªã¨ãã§ã³ããããä¸æã«è¡¨ãã¦ã»ãããrev123ã¾ã§æ»ãã¦åãããã¤ãã¦ï¼ã¨ãè¨ãããã®ã ãdf87aj2ã¾ã§æ»ãã¦ï¼ã¨ããªããããä¼ãã«ããã
Â
ã¾ã¨ã/çµå±ãªã«ããããã®ã
åç¹ã«ç«ã¡è¿ã£ã¦èãã¦ã¿ããã
å¤ãã®äººã«ã¨ã£ã¦Gitã¯æ段ã§ãããå®å ¨å®å¿ãªã½ããã¦ã§ã¢ãä½ããã¨ãç®çã§ããã®ããã«å¤æ´ç®¡çãå¿ è¦ã ãå¤æ´ç®¡çï¼ã¨ããã«ã¾ã¤ããã¬ãã¥ã¼ãæ¿èªãä¿®æ£ã®ç®¡çï¼ããããããããã®ã§ããã
ãã®ç®çã«å¯¾ãã¦ãGitã¯é£ãããããã¡ã³ã¿ã«ã¢ãã«ã¨å®ä½ã¯åããªãããã¡ã³ã¿ã«ã¢ãã«ãæ£ç¢ºã«åæ ããGUIãã¼ã«ã¯ãªãããã©ã¡ããæ£ãããç¸åãã2ã¤ã®ãã¼ã¸æ¦ç¥ãããã
ããããã¯ãGitã«ã¤ãã¦è©³ãããªãããããã§ã¯ãªãããããããã®GitFlowãä½ãããããã§ããªããGitãéçºè ã®åã¿ã®ä¸ã¤ã¨ãã¦å½ç¶ã®ããã«åå¨ãããã¨ã§ã·ã¹ãã éçºã®éå£ãçããªããã¨ãææ ®ãã¦ããã
ã©ããã¦ãããã½ã¼ã¹ç®¡çã®ããã«ãããªé£ãããã®ãç解ããªããã°ãªããªãã®ãã欲ããæ©è½ã¯ãã«ãªã¯ã¬ãã¥ã¼ã ãã ããã©ã³ãä½ãã®ãæ©ãsvnãããã°ããã§ãå ¨ç¶ããã
Gitã¯ç¥ãæ¯ãã«ã¤ãã£ããã¼ã«ã§ã人é¡ã«åºãæ®åããã«ã¯æ©ãããã