2013-03-05 210 views
3

我很难搞清楚在项目中如何管理分支。我一直在研究一个功能分支,“负载”,这是从“dev”分支出来的。由于分支,“开发”已经提出了几个提交。现在,另一位开发人员从最新的“开发”提交中开始了一个新功能分支“work”。问题在于“工作”中的功能取决于“负载”中的功能。 “加载”中的这个功能已经完成,但是“加载”分支作为一个整体并没有“完成”。git分支工作流程

基本上,我想要做的是使“负载”的最新变化可用于“工作”,而不会结束“负载”分支的寿命。

这里的树看起来像此刻什么:

 (loads:A) -> (loads:B) 
    /
(dev:A) -> (dev:B) -> (dev:C) 
          \ 
          (work:A) 

这里就是我我需要做

 (loads:A) -> (loads:B) -> (loads:C) //continue work on "loads" 
    /      \ 
(dev:A) -> (dev:B) -> (dev:C) -> (dev:D) 
          \   \ 
          (work:A) -> (work:B) //use "loads" features in "work" 

我只是有点不确定的确切序列合并和不完成这一点。上次我试图合并分支机构时,我大肆宣传,花了整整一天的时间恢复,而且我真的不想再重复一遍。

+0

重新加载对开发和加载后重新装载? – Venki 2013-03-05 18:03:51

+0

如果我理解正确,它很容易修复:合并加载:B到dev:C,你得到dev:D;合并dev:D进入工作:A,你得到工作:B。这是一个分支合并的东西,不需要重新分配。 – yuwang 2013-03-05 18:05:12

回答

1
git checkout loads 
//after making code changes 
git commit -am "latest changes on loads" 


//This will replay your current changes on top of the existing dev 
git rebase origin/dev 

//Possible merge conflicts might have to address them 

//after resolving conflicts 
git push origin dev 

其他开发者可以提交自己的变化,如果他已经使他们对工作和变基他们对开发或者他可以从开发拉你的变化,创造了一个新特性分支,并从那时起继续。

+0

http://mettadore.com/analysis/a-simple-git-rebase-workflow-explained/建议我可能想先重新加载加载分支。那个教程会建议我做'git结帐加载;得到rebase dev'。你的命令'git rebase loads'的意图究竟是什么? – 2013-03-07 16:31:16

+0

检查加载分支时执行'git rebase dev'在最新的开发者之上播放了整个加载分支,这正是我想要的。这是你的建议吗? – 2013-03-07 17:04:07

+0

雅是多数民众赞成在工作流程我打算给其他开发人员。我会再次调整这些消息 – Venki 2013-03-07 17:10:54