2017-10-09 118 views
1

如何將舊提交代碼合併到HEAD中?如果我想將提交散列e123ee12處的test.js完整文件合併到HEAD test.js中。Git從舊提交添加代碼

我嘗試使用櫻桃挑選,但如果有很多承諾之前我需要逐一挑選櫻桃。

我也嘗試結帳到e123ee12並添加一個空行然後提交併簽出回主併合並提交。但它只會合併我添加的行,不會合並所有行到主。

如何將舊提交時的所有文件合併到master?

+2

[重置或恢復使用Git的特定文件的特定文件?](https://stackoverflow.com/questions/215718/reset-or-revert-a-specific-file-toa-a- specific-revision-using-git) –

+0

這是不同的。 –

+0

@ChienLee:那個複製品有什麼不同?我看到完全相同的問題...... – rodrigo

回答

1

你可以嘗試,並生成一個patch from that old commit(包括a single file

git format-patch -1 <sha> -- aFile 

然後將其應用到當前的HEAD

git am -3 < file.patch 

注:多次提交,您可以cherry-pick a range of commits

+0

爲什麼'format-patch -1'然後'git am -3'不是'git am -1' –

+0

@ChienLee -3如果用於合併三路並且與-1沒有任何關係(patch on一次只提交):' - ':準備來自最上面的''提交的補丁。 – VonC

+0

我在做以下 'git的格式補丁-1 e123ee12' 然後生成'0001- .patch'然後'git的結帳master'的 然後'git am的-3 0001- .patch' –