2011-06-13 106 views
2

我想贡献一个项目,我想在我的工作上使用git-flow工作流程(?)。 说,我checkout'd远程仓库(github上)的develop分支和我设置2功能分支(T为翻译,U为更新):现在Git功能分支工作流程

---o---o---o (D) 
      |---Ta---Tb (T) 
      \---Ua---Ub---Uc (U) 

,为每个分支,向upstream资源库维护人员发出拉取请求,他将它们全部接受并将它们合并到upstream/develop分支。

---o---o---Ta---Tb---Ua---Ub---Uc (D) 
           |- (T) 
           \- (U) 

有个声音告诉我,git rebase正是我需要的:

,使我最终什么是正确的程序。 (请注意我在Windows上)。

回答

5

你说得对。您(或库维护)需要重订的更改到您的开发分支:

git checkout develop 
git rebase T 
git rebase U 

在底垫中,你可能需要,如果它们发生化解矛盾。

您最后一个分支图显示T和U以Uc作为其父项。该rebase不会改变分支机构的父母。你可以通过删除你的分支并在重新绑定之后重新创建它们来做到这一点。

git branch -D T 
git branch -D U 

你需要利用资本-D开关来强制支路删除,因为T和U分支从来没有合并到开发分支,因此Git并不知道该分支的变化反映在develop分支。

之后,你就可以创建它们:

git checkout -b T 

git checkout develop 
git checkout -b U 
+0

我想指出的是,如果上游开发者所做的任何更改_other_比合并这两个特性分支会发生冲突。 – sykora 2011-06-13 15:56:54

+1

这只会改变'develop'分支。然后你需要移动其他分支,例如'git branch -M'。 – 2011-06-13 15:57:07

+0

所以基本上,在pull请求被接受后,'upstream/develop'已经被我的修改更新了,我继续'git pull upstream/develop'到我的'develop'中,然后我该怎么做? a。从'T'&'U'分别转到我的'develop' b。删除我的'T'&'U'分支并重新创建它们 – petsagouris 2011-06-13 16:35:06