2013-07-13 107 views
0

大約一個月前,我有一個「主」分支創建的「項目」分支。我試圖將主分支中的所有更改引入項目分支,同時仍將分支分開。我需要一個單獨提交的最終結果,這個提交是兩個分支的組合,然後我可以將它推送到我們的gerrit設置。如何在一個git提交中將主分支的更改合併到我的項目分支中?

我試着抓取兩個分支的最新版本,然後將主分支合併到項目分支中。這導致了一個合併提交加入了兩個分支。然而,我希望單獨提交所有會與gerrit很好地配合的更改,所以我嘗試在「origin/project」之上重新設置分支,但是這然後要求我去合併主分支中的600多個提交自兩次分裂。既然是這樣,那麼我認爲在這一點上推動提交會導致gerrit也需要瘋狂的重組。

我也嘗試重新綁定和擠壓項目分支本身,直到它分支點之上的一個提交,然後在主分支頂部重新分配一個提交。最後,它給了我一個「Refs ref/heads/project在[hash],但期望[不同的hash]」的錯誤。這種方法也會抹掉我項目分支的提交歷史記錄,不是嗎?

有沒有更好的方法來解決這個問題?我的假設是正確的,只要主分支沒有任何項目內容,下次我嘗試將兩者結合起來時,我會遇到同樣的衝突?

+0

明確描述您的問題的榮譽。 – 2013-07-13 22:18:00

回答

0

A merge不會將兩個分支合併爲一個分支。仍然是兩個不同的實體分支,其中提交到兩個不同的地方。此外,從最初的拆分開始,主分支不會從項目中進行更改。所以合併是一條路。在merge上有一個選項--no-ff,它將強制單獨提交。

0

爲什麼你認爲合併提交不起作用?將兩個分支的歷史合併成一個單一的提交就是合併的意圖。它們與Gerrit一起工作良好 - 我們一直都在使用它們。

相關問題