2012-11-26 54 views
11

我在GitHub的常見工作流中遇到了git問題。將上游的git變更與未決的pull請求合併

  1. 我叉回購
  2. 我犯了一些變化
  3. 我做一個拉請求上游回購
  4. 擺弄大拇指而上游開發者坐在我拉請求。
  5. 上游開發人員對其回購進行了更改
  6. 他們查看您的拉動請求,但由於其樹形結構中的更改不再適用,所以他們會要求您更新拉動請求。
  7. 我提取&合併從上游到我的回購更改,解決衝突,提交更改
  8. 我rebase提交我的拉請求,使其整潔。

這就是問題出現的地方:我的pull請求現在包含所有步驟2和7之間發生的更改,包括上游開發人員自己的更改。在最近的一個例子中,這個擴展了10行的拉取請求,超過12,000行。

我應該如何重新申請我原來的承諾不上其變動進入我的拉動請求上游回購的更高版本?

回答

11

更改此

7)我取&合併來自上游變成我的回購協議,化解矛盾,提交更改。

8)我變基犯我拉的要求,使其乾淨整潔。

我變基我回購到上游,使它乾淨利落。

假設你分叉這個分支從上游/大師:

git rebase -i upstream/master 

這將重播當前掌握的頂部您的提交。最終的結果是,在你解決任何衝突之後,就好像你現在分叉了一樣。

+2

這顯然是正確的做法,但我很確定我已經爆炸了。也就是說,還有一個後續步驟可能會出現嚴重的錯誤 - 當我將原始主機推向我自己的回購站時,指定'--force'至關重要,否則您最終可能會陷入混亂再次。 – Synchro

2

我無法從你的問題彌補,如果你已經這樣做了,但是當你爲一個拉請求人提交,最簡單的方法就是讓一個單獨的分支它。

這樣的話,你必須定義什麼犯拉請求應該去的一個簡單的方法,並在以後更新也拉入請求,包括新的變化。

如果再想從合併上游的新變化,您可以獲取這些,和重訂上您的主題分支。

使得在github上拉請求時,則可以選擇該分支,它可以確保正確提交以拉。

每次那麼你推到這個分支(甚至推-f)將更新自動提取請求。

+0

不幸的是,這不會幫助 - 它只是移動問題,因爲分支中可能會發生完全相同的問題。在這裏進行你自己的改變,有一個拉動地毯的元素。我正在尋找的是從不同的角度重新應用我的更改的方法,但這裏我從上游獲得的更改看起來像我自己的更改應用於舊叉,所以它們包含太多的方法。 – Synchro