2014-02-13 37 views
0

我有兩個git分支,masterdev爲一個項目。昨天我正在學習如何使用git rebase進行交互式壓縮提交。我壓扁了我的master分支,現在它只包含幾個提交。今天,我在我的dev分支上工作(我在分揀之前分支master),並在此dev分支上進行了多次提交。現在,我想合併我的dev分支回到我的壓扁master。這對我來說很愚蠢,但我意識到這是錯誤的做法。壁球高手現在需要合併另一個分支

我該如何將我的dev分支合併成一個壓扁的master?有沒有辦法做到這一點?

+0

爲什麼你不只是'git merge master'?是不是因爲你不想重新提交你被壓扁的提交? – gturri

+0

什麼阻止你這樣做?開發人員是否從不再存在的提交中分支出來?你應該能夠'git結帳主人;如果這就是你真正想做的事情,那麼git merge dev'。 –

+0

我試圖做@ @ gturri/@ PaulHicks建議的。但是,我遇到了大量的合併衝突。無論如何要把開發合併到主,但保持所有的開發變化,所以沒有合併衝突? – turtle

回答

0

我假定你分支dev關閉的master受南瓜的影響,否則不應該有任何「不自然」的合併衝突。

有兩種方法我能想到的,做你想要的東西,而無需實際處理這些合併衝突:

  1. 撤消你做了master的擠壓。 master的預擠壓前狀態很可能仍然存在於您的存儲庫中 - 使用git reflog來找到它,並且git resetmaster重置爲它。如果您在壁球之後在master上進行了額外的提交,您可以使用git cherry-pick將它們恢復到您恢復的master。如果您已經推動了被擠壓的master和其他人正在使用它,則此選項可能不可行。

  2. git cherry-pick將您在dev上做的額外提交轉換爲master,然後刪除不可合併的dev分支。如果您已經推送dev和其他人正在使用此選項,則此選項可能不可行。

+0

感謝您的幫助。我嘗試用櫻桃挑選,'git cherry-pick',但我得到一個錯誤:'不能應用902217c','暗示:解決衝突之後,標記正確的路徑...'。你有什麼想法我可以解決這個問題嗎? – turtle

相關問題