Git 學習筆記 - 14 - Bug分支
Git 學習筆記 - 14 - Bug分支
注:本文參照的是廖雪峰老師的Git教程
概述:
在開發中,很多時候我們還沒有開發完一個專案,此時之前開發出現了Bug,這時就需要我們去進行修復,在 Git 中,每個bug都可以通過一個新的臨時分支來修復,修復後,合併分支,然後將臨時分支刪除。
當你接到一個修復一個代號101的bug的任務時,很自然地,你想建立一個分支issue-101
來修復它,但是,等等,當前正在dev
上進行的工作還沒有提交。此時需要用到其它操作命令來儲存當前的工作現場,待修復了Bug之後,再恢復之前的工作。
操作:(之前的命令不在重複編寫,見圖片)
-
檢視當前狀態,發現存在修改。
-
儲存當前的工作現場。等之後修復完Bug後在恢復。
git stash
-
檢視儲存後的現場,發現工作區已經乾淨了。
-
確定要在哪個分支上修復bug,假定需要在
master
分支上修復,就從master
建立臨時分支。 -
在臨時分支上修復Bug
假設修復:需要把“Git is free software …”改為“Git is a free software …”,然後提交。
-
修復完成後,切換到
master
分支,並完成合並,最後刪除issue-101
分支 -
此時我們回到dev分支上
-
查詢dev的狀態,發現之前的修改不見了,
-
使用
git stash list
-
恢復之前的工作現場。
恢復有兩個辦法:
一是用
git stash apply
恢復,但是恢復後,stash內容並不刪除,你需要用git stash drop
來刪除;另一種方式是用
git stash pop
,恢復的同時把stash內容也刪了。這裡使用的是 pop方法,畢竟是練習,沒那麼多講究。
-
再次檢視發現之前的工作現場不見了。
注:可以使用多次 git stash
來儲存多個現場,在恢復的時候,先使用git stash list
檢視,然後恢復指定的stash,用命令:
$ git stash apply [email protected] {0}
總結:
修復bug時,我們會通過建立新的bug分支進行修復,然後合併,最後刪除;
當手頭工作沒有完成時,先把工作現場git stash
一下,然後去修復bug,修復後,再git stash pop
,回到工作現場。