本文参照自:
http://blog.jobbole.com/76857/
在开始开发功能前,小红需要一个独立的分支。使用下面的命令新建一个分支:
一、前言
功能分支工作流背后的核心思路是所有的功能开发应该在一个专门的分支,而不是在master分支上。这个隔离可以方便多个开发者在各自的功能上开发而不会弄乱主干代码。另外,也保证了master分支的代码一定不会是有问题的,极大有利于集成环境。
二
、工作方式
功能分支工作
流仍然用中央仓库,并且master分支还是代表了正式项目的历史。但不是直接提交本地历史到各自的本地master分支,开发者每次在开始新功能前先创建一个新分支。
在master分支和功能分支之间,Git是没有技术上的区别,所以开发者可以用和集中式工作流中完全一样的方式编辑、暂存和提交修改到功能分支上。
另外,功能分支也可以(且应该)push到中央仓库中。这样不修改正式代码就可以和其它开发者分享提交的功能。由于master仅有的一个『特殊』分支,在中央仓库上存多个功能分支不会有任何问题。当然,这样做也可以很方便地备份各自的本地提交。
三
、示例
3.1、开始开发一个新功能
git checkout -b myfeature master
这个命令检出一个基于master名为my-feature的分支,Git的-b选项表示如果分支还不存在则新建分支。这个新分支上,小红按老套路编辑、暂存和提交修改,按需要提交以实现功能:
git statusgit addgit commit
开发好期间都只提交到
功能
分支myfeature
3.2、push备份功能分支
小红在开发一个新功能,但是现在还没完成,明天就是国庆假,他也不打算加班。在这种情况下,push功能分支到中央仓库是很好的做法,这样可以方便地备份,如果和其它开发协作,也让他们可以看到小红的提交。
git push -u origin myfeature
这条命令push my-feature分支到中央仓库(origin),-u选项设置本地分支去跟踪远程对应的分支。设置好跟踪的分支后,小红就可以使用git push命令省去指定推送分支的参数。
3.3、合并功能分支到主分支
国庆放假回来后,小红完成整个功能的开发,需要把开发的功能合并在主分支(这里假设master就为主分支)上。
首先切换到主分支
git checkout master
然后拉取最新的主分支代码
git pull master
接着合并自己功能分支到主分支
git merge --no-ff myfeature
3.4、发布修改到主分支
通过push把修改发布的服务器的主分支中
git push origin master
3.5、删除功能分支
功能已经开放完成,并已发布到
服务器的主分支中,现在可以删除功能分支了。
git branch -d myfeature
结束!