2015-06-22 92 views
3

我有一個分支A和一個git倉庫中的主人。合併回刪除的文件從一個分支到主

在分支A中,我做了幾個補充,刪除。在某些時候,這些更改也在Master中合併,但是我們必須在沒有這些更改的情況下釋放master,因此我們在master中移除了該文件。

現在,當將master合併到分支A中以獲取最後的更改時,Git顯然會刪除這些文件,因爲它們已在最後一次更改後在master中被刪除。

什麼是最簡單的方法來保持分支A合併回最後一次變更主變更?

+0

你可以提供你的git倉庫的簡短歷史嗎?使用一個簡單的'復位'或'結帳'應該做的伎倆,但根據你的歷史,它應該有一個更好的方法:) – NiziL

+0

檢查此:http://stackoverflow.com/a/16455853/4768218 – axxis

回答

2

什麼git確實有道理,這聽起來像你同意這一點。我讓git做它,並保留默認合併提交,然後在額外再添加缺少的文件提交:

$ git checkout master 
$ git merge A # the file is gone 
$ git checkout A -- file.txt 
$ git add file.txt 
$ git commit -m"Reintroduce file.txt, which was deleted for release" 

我不喜歡修改合併手動承諾,而讓git他們做,然後修復。它導致更少的驚喜。

0

我會繼續並將master合併到A中,然後櫻桃挑選退回到A的提交。因此,讓我們假設您添加的文件是在提交abc123中完成的;而在A上,只需做git cherry-pick abc123。對所有未完成更改的提交重複操作,或者如果它們是連續的提交列表,則可以指定一個範圍以供櫻桃挑選,例如, git cherry-pick 123..xyz

相關問題