2011-06-13 108 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