ã¯ããã«
ããã«ã¡ã¯ïŒITã¹ã¯ãŒã«RareTECHã«ãŠCSïŒCustomer SupportïŒãæ åœããŠããæ± æã§ããä»åã®èšäºã¯Gitã®ãã©ã³ãåšãã®è§£èª¬èšäºã§ããååã®èšäºã®ç¶ãã§ãã®ã§ãå ã«ä»¥äžã®èšäºãèªãããšãæšå¥šããŸãã
ãã©ã³ããšã¯ïŒ
ãŸããã©ã³ãã£ãŠãªã«ïŒãšããã話ã§ãããçŽèš³ã§æã®ããšã§ããã
Gitã§ã¯äžå¿ã®å¹¹ã®ãããªåœ¹å²ãæã€mainãã©ã³ããšãããããæåããããæ§ã
ãªãã©ã³ãã䜿ã£ãŠéçºãããŠãããŸãã
æåãããããã©ã³ãã¯ãæçµçã«mainïŒå¹¹ïŒã«ãã£ã€ããŠçµ±åããããšãã§ããŸãããªã®ã§ãããæšã«äŸããããŸãããå®å šã«äžç·ã§ã¯ãããŸãã
ã§ã¯å®éã«ãã©ã³ããåã£ãŠã¿ãŸããã
ååã®ç¶ãã§ãã®ã§ã以äžã®ç»åã®ãããªç¶æ
ã«ãªã£ãŠããŸãã
äžèšç»åã®ããã«ãªã£ãŠããªããŠãè¯ãã§ãã
ååã®èšäºã§ã¯ãã©ã³ããåã£ãŠäœæ¥ãããŠããããã§ã¯ãªãã®ã§ããã©ã³ãæ°ã¯1ãmainãã©ã³ããããªãç¶æ ã§ãã
å®éã«ããŒã«ã«ã§ã®ãã©ã³ãæ°ãèŠãŠã¿ãŸãããã
git branch
äžèšã³ãã³ããå©ããšããã©ã³ãã®äžèŠ§ã衚瀺ãããŸãã
* main
ãŸã å¹¹ãããªãç¶æ
ã§ããã
ã§ã¯æãå¢ãããŠãããŸãã以äžã®ã³ãã³ããå®è¡ããŠã¿ãŸãããã
git branch test-branch1
以äžã®ç»åã®ããã«ãªãã°æ°ãããã©ã³ããäœãããŠããŸãã
ä»åã¯ãã©ã³ããäœã£ãã ããªã®ã§ãçŸåšèªåããããã©ã³ãã¯mainã®ãŸãŸã§ããâ»ããã®ç解倧äºïŒ
èªèº«ã®ä»ãããã©ã³ããã©ããªã®ããç解ããŠããªããšããããªãæäœãããŠããŸããŸããã泚æãã ããã
ãã©ã³ããåãæ¿ããŠäœæ¥ãããã
ã§ã¯ãã©ã³ããäœããããšããã§ããã®ãã©ã³ãã«ç§»åãããŸãã
# æšå¥š
git switch test-branch1
# å€ãæžãæ¹ïŒããã§ãåããŸãïŒ
git checkout test-branch1
*
ãã€ããŠããã®ããçŸåšãããã©ã³ãã«ãªããŸãã
ããŠããã®ç¶æ
ã§äœãå€ãã£ãã®ã§ããããïŒæ£çŽã«èšããŸããšãäœãå€ãã£ãŠãããŸãããmainãã©ã³ããšãtest-branch1ã«ããŸã äœãå·®åã¯ãªãç¶æ
ã§ãã
ls
ã³ãã³ããå©ããŠã¿ãããcat
ã³ãã³ããå©ããŠãã¡ã€ã«ã®äžèº«ã確èªããŠã¿ãŸãããã
ã§ã¯ããããã¯test-branch1
ã§ãã¡ã€ã«ãç·šéããããäœæãããããŠã¿ãŸãã
echo 'test-branch1 Create!!' >> test.txt
touch test2.txt
äžèšã®ã³ãã³ããäœæããããadd
ãcommit
ãè¡ããŸãã
git add .
git commit -m "test.txtã«ãã©ã³ããäœæãããšãããã¡ãã»ãŒãžãå
¥ãããtest2.txtãäœæããã"
ããŠãããã§ååŠè
ãæŒãããŠæ¬²ãããã€ã³ãã¯ããã®å€æŽã¯**test-branch1
ãšèšããã©ã³ãã§ããåæ ãããŠããªã**ãšèšãããšã§ãã
å®éã«ãã©ã³ããæ»ããŠã¿ãŠããã¡ã€ã«ã®äžèº«ã確èªããŸãããã
äžèšã®ããã«main
ãã©ã³ãã«æ»ã£ããã次ã«cat
ã³ãã³ãã§test.txt
ã®äžèº«ãã®ãããŠã¿ãŸãããã
cat test.txt
ããããäœãæžãããŠããªãã®ã§ãcat
ã³ãã³ããæã£ãŠãäœã衚瀺ãããªããšæããŸããtest-branch1 Create!!
ãšæžãããtest.txt
ã¯test-branch1
ã®æ¹ã«ããååšããªããšèšãããšã§ããã
ã§ã¯test-branch1
ã«æ»ããŸãããã
add
ãcommit
ã¯å®äºããŠããŸãã®ã§ãäžåºŠãªã¢ãŒãã«ããã·ã¥ããŠããŸããŸãã
git push origin test-branch1
ããã§æ³šæç¹ã§ãããpushãããã®ã¯ãã©ã³ãèªèº«ã§ãããªã¢ãŒãïŒWebäžã®GitHubïŒã«ã¯ãŸã test-branch1
ã®ãã©ã³ãã¯ååšããªãã®ã§ãéã£ãŠãããå¿
èŠããããŸãã
ãã®push
ãåé¡ãªãå®è¡ããããšã以äžã®ç»åã®ããã«ãªããŸãã
èµ€æ ã§å²ã£ãŠãããšããããæ°ãã衚瀺ãããŠããŸããããã®Compare & pull request
ãã¿ã³ãæŒãããšã«ãã£ãŠããã«ãªã¯ãšã¹ããšèšããã®ãäœãããšãã§ããŸãã
ãã«ãªã¯ãšã¹ããäœæããŠãmain
ãã©ã³ããšçµ±åããã
ã§ã¯ãã®Compare & pull request
ãã¿ã³ãæŒããŠã¿ãŸãããã
以äžã®ç»åã®ããã«ãªããšæããŸãã
ä»åã¯èµ€æ ã®3ã€ãã¡ã€ã³ã«è§£èª¬ããããŸãã
â ã¯ã©ã®ãã©ã³ããšãã©ã®ãã©ã³ãããã£ã€ãããïŒ
ããã¯å·ŠåŽã«ããã®ãmain
ãã©ã³ããçµ±åå
ã§ããå³ã«ããã®ãtest-branch1
ãã©ã³ãã§ãå
ã»ã©push
ãããã©ã³ãã§ããã
ãªã®ã§ããã®ç¶æ
ãã©ããããã®ãããŸã ãã³ãšããŠããªãæ¹åãã«ãããšãã
main
ãã©ã³ãã«test-branch1
ã§å·®ãããéšåããã£ã€ããããšããŠããïŒå·®åããªããã¡ã€ã«ãšãã¯ãã®ãŸãŸã§ïŒ
ãšãªããŸãã
ç·è²ã§ãAble to merge
ãšæžãããŠããããåé¡ãªãçµ±åããããšãã§ããïŒãšèããŠããã£ãŠçµæ§ã§ãã
â¡ã¯ãã«ãªã¯ãšã¹ãã®ã¿ã€ãã«
ãã®ãã«ãªã¯ãšã¹ããäœãå€æŽããã®ãããããããã¡ãã»ãŒãžãæžãå¿ èŠããããŸãããã ã倧äœããã©ã«ãã§ã³ãããã¡ãã»ãŒãžãå ¥ããŸãããªã®ã§ãã³ãããã¡ãã»ãŒãžãããããããå 容ã§ããã°åé¡ãããŸããã
â¢ã¯å€æŽããéšåã®è©³çŽ°ãæžããšãã
詳现éšåã§ã¯ãå®éã«ã¿ã€ãã«ã ãã§ã¯ããããªããšããã«ã€ããŠè©³çŽ°ãæžãããšãã§ããŸããããŒã¯ããŠã³åœ¢åŒã§æžãããšãã§ããã®ã§ãããããããèŠããã詳现ãæžããŠãããŸãããã
ããŒã¯ããŠã³èšæ³ãããããªãæ¹ã¯ã以äžã®ããŒãžãåç §ããŠãã ããã
ã§ã¯ä»åã¯ãã®ãŸãŸãã«ãªã¯ãšã¹ããäœæããŸã
å³äžã®ç·è²ã®ãã¿ã³ãæŒããŸãããã
ãã¿ã³ãæŒããšã以äžã®ç»åã«é·ç§»ããã¯ããªã®ã§ãä»åºŠã¯å·Šäžã«ããç·è²ã®ãã¿ã³ãæŒããŸãããã
ç»é¢ãå€ãã£ãããå床巊äžã®ãã¿ã³ãæŒäžã
玫è²ã§MergeãšåºãŠãããããã£ã€ããããšã«æåããŸããã
ããã§ããªã¢ãŒãã®main
ãã©ã³ãã«ãtest-branch1
ãã©ã³ãã®å€æŽéšåãåæ ãããŠããŸãããªã¢ãŒããªããžããªã¯ããã§OKã§ãã
ããŒã«ã«ã«ãå€æŽå·®åãæã£ãŠããªããšãããŸãã
ä»åºŠã¯ãããŒã«ã«ã®main
ãã©ã³ãã«å€æŽãåæ ãããå¿
èŠãåºãŠããŸããã
ä»çŸç¶ã¯ããªã¢ãŒããªããžããªã®main
ãã©ã³ãã¯ãtest-branch1
ã®å€æŽç¹ãåæ ãããŠææ°ã®ç¶æ
ã§ããã§ãããããŒã«ã«ã®main
ãã©ã³ãã«ã¯äœããããŸããã
ããã§åºãŠããã®ãpull
ã³ãã³ãã§ãã
ã§ã¯ããŒã«ã«ã®main
ãã©ã³ãã«ç§»åããŠãã³ãã³ããå©ããŠãããŸãã
git switch main
git pull origin main
äžèšã®ç»åã®ããã«ãªã£ãŠãããæåã§ããcat
ã³ãã³ããªã©ã§ããã¡ã€ã«ã®äžèº«ã確èªããŠã¿ãŸãããã
ãã®äœæ¥ã¯ãå®éã®çŸå Žã§ãå¿
ããããªããšãããªãäœæ¥ã§ãã
å®éã®çŸå Žã§ã¯main
ã¯æ¬çªçšããããšã¯å¥ã«develop
ãã©ã³ããéçºçšãšããŠäœããã¿ãŒã³ãå€ãïŒãšæãïŒã®ã§ãdevelop
ãã©ã³ããåžžã«ææ°ã«ããŠããå¿
èŠããããŸãã
ææ°ã§ããdevelop
ãã©ã³ããå
ã«ãå¥ã®ãã©ã³ããåã£ãŠäœæ¥ãããšããã®ãåºæ¬çãªæµãã§ããããã§pull
ãããã«ãã©ã³ããåã£ãŠäœæ¥ããããšãã³ã³ããªã¯ããšåŒã°ããåé¡ã®çºçãã確çãè·³ãäžãããŸãã
- èªåã®ãã©ã³ãã§äœæ¥ãå®äºããã
- ãªã¢ãŒãã«pushãã
- ãã«ãªã¯ãšã¹ããéã
- ã¬ãã¥ã¯ãŒïŒå€§äœãããžã§ã¯ãã®è²¬ä»»è ãCTOãšããè¡ãïŒãã¬ãã¥ãŒãã
- ããŒãžïŒçµ±åïŒããã
- ä»ã®éçºè
ã¯ããŒã«ã«ã®ç°å¢ãææ°çã«ããããã
pull
ãè¡ã
倧äœãããªæµãã§äœæ¥ã¯é²ãã§ãããŸãã
pull
ã³ãã³ãã£ãŠã©ããªã£ãŠããã®ïŒ
ããŠãããŒã«ã«ãææ°çã«ããæãpull
ã³ãã³ãã䜿ãã®ã§ããããã®ã³ãã³ãã¯å¥ã®2ã€ã®ã³ãã³ãããŸãšããŠå®è¡ããŠããã³ãã³ãã§ãã
ãã®äºã€ã以äžã§ãã
fetch
ã³ãã³ãmerge
ã³ãã³ã
fetch
ã³ãã³ã
ãã®ã³ãã³ãã¯ãããŒã«ã«ã«ãªã¢ãŒãã®æ å ±ãæã£ãŠããããã®ã³ãã³ãã§ããããåäœã§ããšãå€æŽãããå 容ã¯ããŒã«ã«ã®ãã©ã³ãã«åæ ãããããšã¯ãããŸããã
ãã ãæ
å ±ã¯æã£ãŠããŠãããããçŸåšã®ããŒã«ã«ã®main
ãã©ã³ããšããªã¢ãŒãã®ãã©ã³ãã®å·®åãèŠãããšãã§ãããããŸãã
# ãªã¢ãŒãã®ãã©ã³ãæ
å ±ãå
šãŠæã£ãŠãã
git fetch origin
# ç¹å®ã®ãã©ã³ãæ
å ±ã ããæã£ãŠãã
git fetch origin main
å·®åãèŠãã«ã¯diff
ã³ãã³ãã䜿ããŸãã
git diff main origin/main
diff
ã³ãã³ãã«ã€ããŠã¯ã次ã®èšäºã§è©³ãã解説ããŸãã
merge
ã³ãã³ã
fetch
ã³ãã³ãã§ãªã¢ãŒãã®æ
å ±ãæã£ãŠãããããä»åºŠã¯merge
ã³ãã³ãã§çµ±åããŸãã
git merge origin/main
ãããå®è¡ãããšãã³ã³ããªã¯ããèµ·ãããªãéããåé¡ãªãçµ±åãããŸãã
pull
ã³ãã³ãã¯ãfetch
ã³ãã³ããšmerge
ã³ãã³ããçµ±åããã³ãã³ãããšèšãããšã ãã¯èŠããŠãããŸãããã
æåŸã«ããããŸã§ã®ã³ãã³ãã®æåã«ã€ããŠå³åŒåãããã®ãæ²èŒããŠãããŸããã確èªãã ããã
ãããã«
ãããŸã§ãç²ãæ§ã§ããã
ãã©ã³ãã®æŠå¿µã¯ãåå¿è
ã«ãšã£ãŠããªãé£ããã§ããããç§èªèº«ãåå¿è
ã®é ã¯å
šãç解ãã§ããèŠæŠããåéã§ãããã®æè¡ããšã³ãžãã¢ã«æµžéããã£ãŠããã®ããããã§ãããããããªãããã«ããã®ã«ïŒ
ãšèšãããšã§æ¬¡ã®èšäºã¯ðã§ãã