1. 程式人生 > >Git 修復Bug或者開發新需求(Bug/Feature分支)

Git 修復Bug或者開發新需求(Bug/Feature分支)

【場景一】

程式猿正在分支dev上開發新需求,而產品汪發現線上版本(master)有一個bug(代號1001)。程式猿收到這個代號為1001的bug的任務時,很自然地,想建立一個分支issue-1001來修復它。但是,等等,當前正在dev上進行的工作還沒有提交。並非不想提交,而是工作只進行到一半,還沒法提交。但是,必須在兩個小時內修復該bug,怎麼辦?

 

修復指定版本bug的四個步驟:

1、儲藏當前分支現場

Git 提供了一個stash功能,可以把當前工作現場“儲藏”起來,等以後恢復現場後繼續工作:

 

2、切換到主分支、建立並切換到問題分支,修復bug,提交

 

3、切換到主分支,合併問題分支到主分支

當然,bug修復後,問題分支可以使用命令(git branch -d 分支名字)進行刪除。

 

4、再次切換到之前的分支,恢復現場,繼續幹活

切換到dev分之後,用 git status 命令檢視,工作區是乾淨的,剛才的工作現場存到哪去了?這時可以用git stash list 命令檢視,工作現場還在,只是需要用命令恢復即可!兩種方式:

一是用 git stash apply 恢復,但是恢復後,stash內容並不刪除,你需要用 git stash drop 來刪除;

另一種方式是用 git stash pop,恢復的同時把stash內容也刪了:

再用 git stash list 檢視,就看不到任何stash內容了

 

小結一下:

修復bug時,我們會通過建立新的bug分支進行修復,然後合併,最後刪除;

當手頭工作沒有完成時,先把工作現場 git stash 一下,然後去修復bug,修復後,再用 git stash pop,回到工作現場。

 

【場景二】

程式猿正在dev分支上進行開發,這時候接到新需求(很可能是實驗性的需求)。當然程式猿不希望把現有分支的程式碼打亂,所以,每新增一個新功能,最好新建一個feature分支,在上面開發,完成後,合併,最後,刪除該feature分支。

這時候,切回dev版本,準備合併feature007分支。而此時,產品汪又撤銷的這個需求,開發完的內容必須銷燬。

所以,程式猿必須刪除feature007分支的所有內容,於是使用命令 git branch -d feature007 進行刪除,銷燬失敗。

Git友情提醒:feature007 分支還沒有被合併,如果刪除,將丟失掉修改,如果要強行刪除,需要使用大寫的 -D 引數。

那麼,使用 git branch -D feature007,強行刪除feature007分支。

 

小結一下:

開發一個新feature,最好新建一個分支;

如果要丟棄一個沒有被合併過的分支,可以通過 git branch -D <name> 強行刪除。

 

 

ps:以上內容,根據網上資料並結合自身實踐整理。