所謂bug分支,就是我們在開發的過程中,可能突然遇到一個需要解決的bug,但是我們手頭的開發工作還沒有完成,這個時候我們需要建立新的bug分支進行修復,修復完bug後,我們將bug分支進行合併,然後刪除。當手頭的工作沒有完成時,我們需要先把工作現場git stash
一下,然後去修復bug,修復完成後,再通過git stash pop
,回到工作現場。
比如我們在test1分支下新增了一行``,但是我的開發工作尚未完成,這個時候出現了一個bug需要去修復,所以我先git stash
儲存一下工作現場
issue1
分支用於解決bug。
解決完bug後,再切換回主分支,將issue1
分支合併到主分支。注意,我們合併程式碼的時候加了一個引數--no-ff
。合併分支的時候,加上--no-ff
引數就可以用普通模式合併,合併後的歷史有分支,能看出來曾經做過合併,而fast forward
合併就看不出來曾經做過合併。使用--no-ff
合併時會自動建立一個新的commit,所以要加上-m
並寫上描述。
合併完成後,我們刪除issue1
分支,再切換回test1
分支,發現我們在test1
分支上做的開發內容並沒有還原。
我們想要恢復之前的工作環境,可以使用git stash apply
進行恢復,但是這樣恢復,不能把之前打上stash
的工作環境刪除,所以要使用git stash drop
將打上stash
的工作環境刪除。也可以合併兩步操作使用git stash pop
恢復環境以後刪除這個環境。當然也可以使用git stash list
檢視分支上儲存的環境。
然後我們可以看到工作環境已經恢復,可以繼續愉快的開發了。開發完成後就可以提交合併到主分支了。
Feature分支:當我們開發一個新功能的時候,最好新建一個分支。如果要丟棄一個沒有合併過的分支,可以通過git branch -D <name>
強行刪除。
在多人協作的團隊開發過程中,我們還會用到一些其他的功能,如我們要檢視遠端庫的資訊,使用git remote -v
。本地新建的分支如果不推送到遠端,對其他人就是不可見的。從本地推送分支,使用git push origin branch-name
,如果推送失敗,先用git pull
抓取遠端的新提交。在本地建立和遠端分支對應的分支,使用git checkout -b branch-name origin/branch-name
,本地和遠端分支的名稱最好一致。建立本地分支和遠端分支的關聯,使用git branch --set-upstream branch-name origin/branch-name
。從遠端抓取分支,使用git pull
,如果有衝突,要先處理衝突。
這些命令都比較見名知意,這裡就不再演示了。