ã¯ããã«
ããã«ã¡ã¯ïŒITã¹ã¯ãŒã«RareTECHã«ãŠCSïŒCustomer SupportïŒãæ åœããŠããæ± æã§ããä»åã®èšäºã¯Gitã³ãã³ãã®ç¶ãã®èšäºãšãªããŸãã
åã®èšäºã¯ãã¡ãð
revert
ã³ãã³ãã«ã€ããŠ
ååã®èšäºã§ãreset
åšãã®è§£èª¬ãããŸãããrevert
ãreset
ã«è¿ããä»äºãããŠãããã³ãã³ãã«ãªããŸãããã ãæ確ã«reset
ã³ãã³ããšéããšããã¯ãåãæ¶ãããšããããšãã³ããããšããŠæ®ããŠããããšããã§ãã
reset
ã®å Žåã®åäœã¯ä»¥äžã«ãªããŸã
reset
ã®å Žåãã³ããã4ã¯ãªããªããŸãã
revert
ã®å Žåã®åäœã¯ä»¥äžã«ãªããŸã
ãããšã¿ãŠãããããããªããšæããŸãã®ã§ãå®éã«ã³ãã³ããå©ããŠç¢ºèªããŠãããŸãããã
revert
ã®äœ¿ãæ¹
ä»åã®ç°å¢ã¯ããã¡ãã®èšäºãŸã§ã§äœæãããªããžããªã䜿ã£ãŠãããŸãã
â»ãã©ã³ãã¯test-branch1ãå©çšããŠããŸãã
ã§ã¯äœãããã®ãã¡ã€ã«ãè¿œå ããŠã¿ãŸãããã
echo 'Hello Git!!' >> test3.txt
ããŠãadd
ãšcommit
ã§ããŒã«ã«ã®å€æŽã確å®ããŸãã
git add .
git commit -m "test3.txtãäœæããHello Gitãæžã蟌ãã "
ãã®ç¶æ
ã§git logã確èªãããšã以äžã®ããã«ãªã£ãŠããã¯ãã§ãã
ããŠããã®ç¶æ
ã§revert
ã³ãã³ãã䜿ã£ãŠã¿ãŸãããã
git revert HEAD
revert
ã³ãã³ããå®è¡ãããšãäžèšã®ããã«ã³ãããã¡ãã»ãŒãžãç·šéã§ãããã¡ã€ã«ãéãããŸãã
ä»åã¯å°ãã¡ãã»ãŒãžãç·šéããŸããåºæ¬çã«Vimã®æäœã«ãªãã®ã§ãi
ã§ã€ã³ãµãŒãã¢ãŒãã«ããŠãããRevert "test3.txtãäœæããHello Gitãæžã蟌ãã "
ã®""
ã§å²ãŸããéšåãç·šéããŠã¿ãŸãã
revertã§test3.txtãåé€ããŠããçŽã
ãšæžãçŽããŸãããæžã蟌ã¿ãçµãã£ãããesc
ããŒãæŒããŠã:wq
ã§ãã¡ã€ã«ãéããŠãã ããã
git log
ã§ç¢ºèªããŠã¿ãŸãããã
ã€ãã§ã«ls
ã³ãã³ããå®è¡ããŠãtest3.txtãã©ããªã£ãŠããã®ãã確èªããŠã¿ãŸãããã
æ°ããã³ããããäœãããŠããã®ã確èªããŸããã
reset
ãšéãã®ã¯ãå
ã®test3.txtãäœæããã³ããããæ®ã£ãŠãããšããã§ããã§ãã®ã§ããã¡ãã«reset
ã§æ»ãããšãã§ããããå床revert
ãããŠå
ã«æ»ãããšãã§ããŸãã
ã³ãããã¡ãã»ãŒãžãªã©ãç·šéããªãå Žåã¯ã以äžã®ãªãã·ã§ã³ã§å¯èœã§ãã
git revert HEAD --no-edit
ã³ãããIDãå©çšããŠãããã€ãåã®ç¶æ ã«æ»ãããšãå¯èœ
revertã¯ã³ãããIDãæå®ããŠæ»ãããšãã§ããŸããä»åã¯ã³ãããIDb52e5dcce07541340ec0d1354b95120af4671fad
ã«æ»ãããšæããŸãã
git revert b52e5d
ããããããšã§ããªã¢ãŒãã®ç¶æ ãšåãã«ããããšãã§ããŸããããŸãæåããããçŽãã§ããã
ãšã¯ãããreset
ãšéã£ãŠãããçŽãåã«æ»ãããšãã§ããã®ã¯å®å¿ã ãšæããŸãã
泚æç¹ãšããŠãrevert
ã¯ãã©ã³ããã¯ãªãŒã³ãªç¶æ
ïŒã¹ããŒãžã³ã°ããŠããªããã¡ã€ã«çããªãïŒã§ããå®è¡ã§ããŸããã
restore
ã³ãã³ãã«ã€ããŠ
å
ã»ã©ãŸã§ã¯ã³ãããåäœã®ããçŽãã®ã話ã§ããããã®restore
ã³ãã³ãã¯ãäœæ¥ããªãŒã®å€æŽãåãæ¶ãããã®ã³ãã³ãã§ããã§ãã®ã§ãã³ãããåã®ãã¡ã€ã«ã®å€æŽãåãæ¶ãããã«äœ¿ãããŸãã
ãã®ã³ãã³ãã¯åãæ±ãã«æ³šæãå¿ èŠã§ããäœæ¥ããå 容ã倱ãããŸãã
ãã¡ã€ã«ãè²ã
å€æŽããŠãããšããã®ãã¡ã€ã«ã®å€æŽã ãå
ã«æ»ããããªããšãªãããšããããŸãããã®éã«ã¯restore
ã³ãã³ãã䜿ã£ãŠãããŸãããã
ã§ã¯äœ¿ãæ¹ãã¿ãŠãããŸãã
ä»åã¯ãtest3.txtã«æååãæžã蟌ãã§ããã®å€æŽããªã»ããããŠãããŸãã
# ãã¡ã€ã«ã«å€æŽãå ãã
echo 'Test Restore!!' >> test3.txt
# ãã¡ã€ã«ã®äžèº«ã確èª
cat test.3txt
# ã¹ããŒã¿ã¹ã確èª
git status
# å€æŽãåãæ¶ã
git restore test3.txt
ä»åã¯1æããè¿œå ããŠããŸããããåºæ¬çã«ãã¡ã€ã«åäœã§ã®åãæ¶ãã«ãªããŸãã®ã§ã泚æãå¿ èŠã§ãã
ã¹ããŒãžã³ã°ã解é€ãã
ã§ã¯æ¬¡ã«ééã£ãŠaddãããŠããŸã£ãå Žåã§ããã¹ããŒãžã³ã°ããããã¡ã€ã«ãã¹ããŒãžããéããããšãå¯èœã§ãã
# å床ãã¡ã€ã«ãå€æŽãã
echo 'Test Restore!!' >> test3.txt
# ã¹ããŒãžã³ã°ãã
git add .
# ã¹ããŒã¿ã¹ã確èª
git status
# ã¹ããŒãžã³ã°ã解é€
git restore --staged test3.txt
# ã¹ããŒã¿ã¹ã確èª
git status
reset --mixed
ã®å Žåã¯ãã¹ããŒãžã³ã°ããããã¡ã€ã«ãå
šãŠè§£é€ã§ããŸãããåå¥ã«è§£é€ãããªãrestore --staged
ã䜿ããŸãããã
ç¹å®ã®ã³ãããã®ç¶æ ãŸã§æ»ãå Žå
ã³ããããå ã«ããã¡ã€ã«ã®ç¶æ ãæ»ãããšãã§ããŸãã
git restore --source <ã³ãããID> æ»ããããã¡ã€ã«å
ãã¡ããããã®ã³ãããã®ç¶æ ããã£ãã確èªããäžã§å®è¡ããŠãã ããã
å šãŠãªãã£ãããšã«ãã
ãã®äœ¿ãæ¹ãäžçªå±éºã§ã¯ããã®ã§ãããã玹ä»ããŸãã
git restore .
æ
éã«ãã¡ã€ã«ããšrestore
ããªããšãå
šãŠæ¶ããŠããŸãã®ã§å€§å€ã§ããå®å
šã«åŸ©å
äžå¯ãšããããã§ã¯ãããŸãããïŒç¶æ³ã«ãã£ãŠã¯åŸ©å
å¯èœïŒäœ¿ãæã¯èªå·±è²¬ä»»ã§ãé¡ãããŸããã
stash
ã³ãã³ãã«ã€ããŠ
次ã«stash
ã³ãã³ãã«ã€ããŠã玹ä»ããŸãã
ããã¯ãçŸåšã®ç·šéããå€æŽéšåãäžæçã«åŸ
é¿ããŠãããã³ãã³ãã§ãã
æ©é䜿ãæ¹ãã¿ãŠãããŸãããã
# 1æè¿œå ãã
echo 'Test Stash!!' >> test3.txt
# ãã¡ã€ã«ã®äžèº«ã確èª
cat test3.txt
# ã¹ããŒã¿ã¹ã確èª
git status
# stashãã
git stash
# ãã¡ã€ã«ã®äžèº«ãšã¹ããŒã¿ã¹ã確èª
cat test3.txt
git status
ããŠãããŸãã³ãã³ããå®è¡ãããŠããã®ã§ããã°ãå€æŽã¯ãªããªã£ãŠããã¯ãã§ããäžæåŸ é¿ãããç¶æ ã§ããã°ãéããã©ã³ãã«ç§»åãããããã®ãã©ã³ããã¯ãªãŒã³ãªç¶æ ã§ãæ°ãããã©ã³ããåã£ãããå¯èœã«ãªããŸãã
äžæéé¿ããå€æŽéšåãå床æã£ãŠãã
ããŠãstash
ã¯ãããŸã§éé¿ãªã®ã§ã埩å
ããããšãå¯èœã§ãã
å
ã»ã©ã®å®è¡åŸãéé¿ããå
容ã確èªããŠã¿ãŸãããã
git stash list
# å®è¡çµæ
stash@{0}: WIP on test-branch1: 56fca9b test3.txtãäœæããHello Gitãæžã蟌ãã
stash@{0}
ããã¯ææ°ã®stashãæããŠããŸãã{}ã®äžã®æ°åã§éãã
WIP on test-branch1
äœæ¥éäžïŒWork In ProgressïŒã®stashã§ãtest-branch1ãšãããã©ã³ãäžã§äœæ
56fca9b
stashãäœæããæç¹ã§ã®ææ°ã³ãããã®ããã·ã¥å€
test3.txtãäœæããHello Gitãæžã蟌ãã
stashæã«ä»ãã説ææïŒã¡ãã»ãŒãžïŒãäœãã€ããªããšãææ°ã®ã³ãããã¡ãã»ãŒãžã«ãªããŸãã
埩å æ¹æ³
éé¿ããå 容ããã¡ã€ã«ã«åŸ©å ããŠãããŸãããã
git stash pop
å
ã«æ»ã£ãŠããŸã add
ããŠãªãã§ããïŒãšèšãããŠããŸãããã¡ã€ã«ã®å
容ãå
ã«æ»ã£ãŠããŸããã
ãã䜿ã䜿ãæ¹
å
ã»ã©ã®ã·ã³ãã«ãªstash
ã¯ããŸã䜿ããªãã®ã§ã以äžã«ãã䜿ãããæ¹ãæ®ããŠãããŸãã
git stash save "test3.txtã®å€æŽãäžæçã«éé¿"
save
ã䜿ããšãstash
ã®ã¡ãã»ãŒãžãæ®ãããšãã§ããŸãã
ã¡ãã»ãŒãžããããããããªã£ãŠããã®ãããããŸããã
泚æç¹
stash
ã§åããã¡ã€ã«ã®å€æŽç¹ãå¥ã
ã«éé¿ãããå Žåã埩å
ã®éã«ã³ã³ããªã¯ããèµ·ããå¯èœæ§ãé«ãŸããŸãã
# éé¿ãããŠããç¶æ
ã§ãã¡ã€ã«ãå床線éããŠstashããã
echo 'Test Stash2!!' >> test3.txt
git stash save "test3.txtã®å€æŽãäžæçã«éé¿2"
# 1åç®ã¯æå
git stash pop
git add .
# 2åç®
git stash pop
Auto-merging test3.txt
CONFLICT (content): Merge conflict in test3.txt
On branch test-branch1
Unmerged paths:
(use "git restore --staged <file>..." to unstage)
(use "git add <file>..." to mark resolution)
both modified: test3.txt
no changes added to commit (use "git add" and/or "git commit -a")
ãã¡ã€ã«ã®äžèº«ãèŠãŠã¿ããšãã
ã³ã³ããªã¯ãã解æ¶ãããããã2,4,6è¡ãåé€ããŠãå床add
ãããŠçµäºã§ãã
ãã®äŸã¯ããªãç°¡åãªãã¡ã€ã«å
容ã§ããããè€éãªã³ãŒãã®äžã§ã¯åæ±æ³šæã§ãã
pop
ãšapply
ã®éã
git stash pop
ãè¡ããšãéé¿ããŠããå
容ã¯æ¶ããŠããŸããŸããéé¿ããå
容ãæ¶ããã«ã埩å
ããããå Žåã¯git stash apply
ã䜿ããŸãã
# å床ãã¡ã€ã«ãç·šé
echo 'Test Stash3!!' >> test3.txt
# éé¿
git stash save "test3.txtã«Test Stash3ãšããæååãè¿œå ãã"
# éé¿ããstashãæ®ãã€ã€åŸ©å
git stash apply
# stash listã確èª
git stash list
ç¹å®ã®ãã¡ã€ã«ã®å€æŽåã ãstash
ãããå Žå
å
ã»ã©ãŸã§ã®äŸã§ã¯ãäžã€ã®ãã¡ã€ã«ã®å€æŽç¹ã ãæ±ã£ãŠããŸããããè€æ°ãã¡ã€ã«ã®å€æŽããã£ãå Žåããã€1ã€ã®ãã¡ã€ã«ã ãæå®ããŠstash
ãããå ŽåããããŸãã
git stash push -m "ããããããã¡ãã»ãŒãž" ãã¡ã€ã«å
-m
ãã€ããªããšãã¡ãã»ãŒãžã¯æ®ããããèªåã§ææ°ã®ã³ãããã¡ãã»ãŒãžã«ãªããŸãã®ã§ã泚æãã ããã
stashãæ¶ãããå Žå
stashãåå¥ã«æ¶ãããå Žåãå°çšã®ã³ãã³ãããããŸãã
git stash drop stash@{çªå·}
ãŸãšããŠæ¶ãããå Žåã¯ä»¥äžã®ã³ãã³ãã§ã§ããŸãã
git stash clear
åãæ±ã泚æã§ããç¹ã«clear
ã®æ¹ã§ãã
å·®åãèŠãŠãã埩å ãããå Žå
埩å
ãããéã«å·®åãã¿ããå ŽåããããšæããŸãã
ãã®éã¯ã以äžã®ã³ãã³ãã§ç¢ºèªããŠã¿ãŸãããã
git stash show -p stash@{çªå·}
stash
ã³ãã³ãã®ãŸãšã
stash
ã³ãã³ãã¯ãªãã·ã§ã³ç³»ãããªãããã®ã§ããã¡ãã«ãŸãšããæ®ããŠãããŸãã
ã³ãã³ã | 説æ |
---|---|
git stash save "説æ" |
説æã€ãã§éé¿ |
git stash push -m "説æ" |
ãã¡ã€ã«åäœã§èª¬æã€ãã§éé¿ |
git stash list |
ã¹ã¿ãã·ã¥äžèŠ§ãç¢ºèª |
git stash pop |
ã¹ã¿ãã·ã¥ãé©çšããŠãã¹ã¿ãã·ã¥ã¯åé€ |
git stash apply |
ã¹ã¿ãã·ã¥ãé©çšããããåé€ããªã |
git stash drop stash@{çªå·} |
æå®ã¹ã¿ãã·ã¥ãåé€ |
git stash clear |
å šã¹ã¿ãã·ã¥ãåé€ |
git stash show -p stash@{çªå·} |
å·®åã詳现ã«è¡šç€ºïŒçªå·æå®ãããªããšãææ°ã®ãã®ãšå·®åãã¿ãïŒ |
ãããã«
ãããŸã§èªäºããç²ãæ§ã§ããã
ãã®èŸºãã®ã³ãã³ãã¯ããªã倧äºã§ãããçµæ§èŠããã®å€§å€ãªãã§ããããã§ããã£ããã³ãã³ããå©ããŠã¿ãŠãæåã確èªããããšã倧äºã§ããGitã䜿ããªãéçºçŸå ŽãªããŠãã»ãŒãªãã§ããããããã®èŸºãããã£ããæŒãããã°ãååŠè
ã®æ¹ã§ãå®éã®çŸå Žã§å°ããã€ãããšæããŸãïŒ
ããã§ã¯æ¬¡åã®èšäºã¯ã¡ãã£ãšããããªã³ãã³ããã玹ä»ããããšæããŸãã