注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

民主与科学

独立之人格,自由之思想

 
 
 

日志

 
 

Git功能分支工作流  

2015-04-01 20:09:25|  分类: 版本控制 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
本文参照自:http://blog.jobbole.com/76857/
一、前言
如果你在阅读本文前,对git还非常陌生,请先花点时间的快速阅读一下《Git简介
功能分支工作流背后的核心思路是所有的功能开发应该在一个专门的分支,而不是在master分支上。这个隔离可以方便多个开发者在各自的功能上开发而不会弄乱主干代码。另外,也保证了master分支的代码一定不会是有问题的,极大有利于集成环境。
Git功能分支工作流 - hubingforever - 民主与科学
 
 
、工作方式
 功能分支工作流仍然用中央仓库,并且master分支还是代表了正式项目的历史。但不是直接提交本地历史到各自的本地master分支,开发者每次在开始新功能前先创建一个新分支。
在master分支和功能分支之间,Git是没有技术上的区别,所以开发者可以用和集中式工作流中完全一样的方式编辑、暂存和提交修改到功能分支上。
另外,功能分支也可以(且应该)push到中央仓库中。这样不修改正式代码就可以和其它开发者分享提交的功能。由于master仅有的一个『特殊』分支,在中央仓库上存多个功能分支不会有任何问题。当然,这样做也可以很方便地备份各自的本地提交。
、示例
3.1、开始开发一个新功能
Git功能分支工作流 - hubingforever - 民主与科学
 在开始开发功能前,小红需要一个独立的分支。使用下面的命令新建一个分支:

git checkout -b myfeature master

关于git checkout的更多内容请参考《git checkout简介
这个命令检出一个基于master名为my-feature的分支,Git的-b选项表示如果分支还不存在则新建分支。这个新分支上,小红按老套路编辑、暂存和提交修改,按需要提交以实现功能:
git status
 git add
 git commit

开发好期间都只提交到功能分支myfeature
3.2、push备份功能分支
Git功能分支工作流 - hubingforever - 民主与科学
 
小红在开发一个新功能,但是现在还没完成,明天就是国庆假,他也不打算加班。在这种情况下,push功能分支到中央仓库是很好的做法,这样可以方便地备份,如果和其它开发协作,也让他们可以看到小红的提交。

git push -u origin myfeature

这条命令push my-feature分支到中央仓库(origin),-u选项设置本地分支去跟踪远程对应的分支。设置好跟踪的分支后,小红就可以使用git push命令省去指定推送分支的参数。
关于git pull的更多内容请参考《git push简介
3.3、合并功能分支到主分支
国庆放假回来后,小红完成整个功能的开发,需要把开发的功能合并在主分支(这里假设master就为主分支)上。
首先切换到主分支

git checkout master

然后拉取最新的主分支代码

git pull master

接着合并自己功能分支到主分支

git merge --no-ff myfeature

如果这里遇到冲突,需要解决。关于merge和merge解决冲突的详细内容请阅读《git merge简介
3.4、发布修改到主分支
通过push把修改发布的服务器的主分支中

git push origin master 

3.5、删除功能分支
功能已经开放完成,并已发布到服务器的主分支中,现在可以删除功能分支了。

git branch -d myfeature

另外,关于Git集中式工作流请参照《Git集中式工作流
结束!
  评论这张
 
阅读(569)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017