07 分支管理 —— Feature分支
软件开发中,总有无穷无尽的新的功能要不断添加进来。添加一个新功能时,你肯定不希望因为一些实验性质的代码,把主分支搞乱了,所以,每添加一个新功能,最好新建一个feature分支,在上面开发,完成后,合并,最后,删除该feature分支。
现在,你接到了一个新任务:开发openfire直播的新功能。
查看当前分支:
lwenhaodeMacBook-Pro:TestGit lwenhao$ git branch
* dev
master
lwenhaodeMacBook-Pro:TestGit lwenhao$
准备开发:
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
内容:
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
,准备合并:
lwenhaodeMacBook-Pro:TestGit lwenhao$ git checkout dev
Switched to branch 'dev'
lwenhaodeMacBook-Pro:TestGit lwenhao$
一切顺利的话,feature分支和bug分支是类似的,合并,然后删除。
就在此时,接到上级命令,因经费不足,新功能必须取消!
虽然白干了,但是这个包含机密资料的分支还是必须就地销毁:
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 分支管理 —— 多人协作