軟件開發中,總有無窮無盡的新的功能要不斷添加進來。添加一個新功能時,你確定不但願由於一些實驗性質的代碼,把主分支搞亂了,因此,每添加一個新功能,最好新建一個feature分支,在上面開發,完成後,合併,最後,刪除該feature分支。git
如今,你接到了一個新任務:開發openfire直播的新功能。學習
查看當前分支:.net
lwenhaodeMacBook-Pro:TestGit lwenhao$ git branch * dev master lwenhaodeMacBook-Pro:TestGit lwenhao$
準備開發:code
lwenhaodeMacBook-Pro:TestGit lwenhao$ git checkout -b feature-openfire M README.md Switched to a new branch 'feature-openfire' lwenhaodeMacBook-Pro:TestGit lwenhao$
修改README.md
內容:blog
lwenhaodeMacBook-Pro:TestGit lwenhao$ cat README.md # TestGit 建立一個"dev"分支,我來操做。 學習分支管理策略。 編輯了dev分支上的內容,如今準備學習bug分支 openfire直播功能 lwenhaodeMacBook-Pro:TestGit lwenhao$
開發完畢後,提交。開發
lwenhaodeMacBook-Pro:TestGit lwenhao$ git add README.md lwenhaodeMacBook-Pro:TestGit lwenhao$ git commit -m "add openfire直播功能" [feature-openfire 7690e70] add openfire直播功能 1 file changed, 4 insertions(+) lwenhaodeMacBook-Pro:TestGit lwenhao$
切回dev
,準備合併:get
lwenhaodeMacBook-Pro:TestGit lwenhao$ git checkout dev Switched to branch 'dev' lwenhaodeMacBook-Pro:TestGit lwenhao$
一切順利的話,feature分支和bug分支是相似的,合併,而後刪除。直播
就在此時,接到上級命令,因經費不足,新功能必須取消!it
雖然白乾了,可是這個包含機密資料的分支仍是必須就地銷燬:io
lwenhaodeMacBook-Pro:TestGit lwenhao$ git branch -d feature-openfire error: The branch 'feature-openfire' is not fully merged. If you are sure you want to delete it, run 'git branch -D feature-openfire'. lwenhaodeMacBook-Pro:TestGit lwenhao$
銷燬失敗。Git提醒,feature-openfire
分支尚未被合併,若是刪除,將丟失掉修改,若是要強行刪除,須要使用大寫的-D
參數。
如今咱們強行刪除:
lwenhaodeMacBook-Pro:TestGit lwenhao$ git branch -D feature-openfire Deleted branch feature-openfire (was 7690e70). lwenhaodeMacBook-Pro:TestGit lwenhao$
刪除成功!
開發一個新feature,最好新建一個分支;
若是要丟棄一個沒有被合併過的分支,能夠經過git branch -D <name>
強行刪除。
繼續閱讀:08 分支管理 —— 多人協做