2016-09-30 36 views
-1

我從dev分支分支到feature分支並做了一些提交。現在,當我發送pull請求合併feature分支到dev分支時,我注意到github上的分支不能自動合併,因爲有一些衝突的變化。我需要做什麼才能將我的feature分支置於「可以自動合併」狀態?如何將拉取請求置於「可以自動合併」狀態?

我目前做的是:

  1. 結帳的dev分支
  2. 合併feature分支
  3. 記住,導致衝突的線條
  4. 結帳的feature分支
  5. 手動恢復每一行到dev分支的狀態
  6. 提交併推送補丁

但這看起來像許多手工。所以我想知道這是否可以簡化?

UPDATE

記住,我想保持從develop分支隔離我feature分支的變化(用於跟蹤其中的分支而引入迴歸和單獨測試每一個新功能,其他功能的目的)。因此,將dev合併/重新編碼爲feature可以解決該問題,它會將dev中所做的所有更改轉換爲feature,並且我將疏散隔離。

回答

3

一些假設:你從dev了一個分支出來,並把它稱爲feature和要合併到featuredev

你的分支feature沒有可合併到dev branch because someone has already made changes to dev`不能衝突的git的自動解決。

在這種情況下,有可以採取

  1. 再次基於兩種方法 - 在這種情況下,你會遵循以下
    • 結帳步驟,由遠程
    • dev
    • 採取拉結帳feature
    • git rebase dev - 在內部,此1)刪除所有提交超過去年 提交其中featuredev是相同2)適用所有dev 提交3)逐個應用所有feature提交 - 作爲一個在 發生衝突,Git會提示您解決衝突。最後一步 重複,直到您的所有提交已成功應用回 feature分支。
    • 推到feature分支的所有更改遠程
    • 在發送拉入請求:-)

這是我始終遵循的一個,它建議您繼續服用拉從父分支定期避免衝突。這會在git commit歷史記錄中創建一個菱形結構。

  1. 第二個是合併,但我使用和發現rebase更清潔,並始終使用。
+1

選項2:你可能意思是「合併'dev'到'feature'」,對吧?這應該澄清。將'dev'合併到'feature'中,你可以自己解決衝突,然後將'feature'合併到'dev'中而不會發生衝突。但是這使歷史看起來很髒。理想情況下,您可以在將'feature'合併到'dev'時解決衝突。 –

+0

通過將'dev'合併到'feature'(或將'dev'合併到'feature'中),我放棄了一個'feature'分支的隔離改變,這就是我想要避免的。 – Dziamid

+0

git中有二進制搜索功能,可幫助您識別引入錯誤的提交。 – prabodhprakash