2010-10-28 80 views
3

問題合併上沒有更新的主

一個分支合併我在沒有更新的主分支最後提交。

我做什麼

我合併了分公司,在主

git merged BRANCHNAME 

衝突

Automatic merge failed; fix conflicts and then commit the result. 

git commit -a -m "Resolved conflicts while merging email-fix branch" 

然後我試圖全部推到原點的主人,但它說:

! [rejected]  master -> master (non-fast-forward) 

我該如何解決這個問題?

回答

1

你可以這樣做:

  • 一個git pull --rebase,以重播您的合併上跟上時代的主分支的頂部
  • 然後git push(應該順利)

另一種選擇是強制推送,這意味着放棄遠程主人的最近歷史記錄:這不是一個好主意。

這兩種替代方案都在Git FAQ中介紹,儘管只提倡了一個簡單的git pull
git push man page提到git pull --rebase

例如,假設你和別人在同其他人開始犯X,和你建立了一個歷史導致犯B而另一部分人建立了一個歷史,導致犯A。歷史是這樣的:

 B 
    /
---X---A 

或者,你可以變基上的A頂部XB之間的變化,以「git pull --rebase」,並將結果回推。重設數據庫將創建一個新的提交D,它在A之上構建XB之間的更改。

 B D 
    //
---X---A 

再次更新A此承諾將快進和你的推會被接受。

+0

謝謝您的回覆。我解決了這個問題;) – zetareticoli 2010-10-28 12:45:46