2016-02-08 52 views
0

我試圖將一些特定提交中所做的更改應用到我的Git存儲庫的HEAD上。這個提交的分支已經差不多兩年了,由於幾個原因,從未合併到存儲庫的主分支。Git - 從舊分支移植到HEAD的更改

但是,在我想要移植的提交中有一些更改,特別是對兩個文件的添加:添加到Java接口的方法簽名及其在具體類中的實現。沒有行更改或刪除這兩個文件。

我的問題是,如果我嘗試合併或櫻桃選擇此提交到我當前的分支,我會得到各種各樣的衝突,因爲提交是如此之舊。即使在這兩個文件中,很多代碼在此期間也發生了變化,現在Git問我是否需要該提交中的行或過去兩年添加的行。我實際上喜歡的是,如果Git可以在HEAD上重放與在該提交中創建的相同的附加內容,而不替換任何內容。

在這個特定的實例中,只有兩個文件,我可以手動移植這些更改,但我想知道是否缺少可以自動修復類似情況的特定Git命令/選項。

謝謝。

回答

1

您可以從文件中檢查出具體的帥哥一個承諾:

git checkout -p <commit> -- <path/to/file> 

然後混帳會去通過<commit>HEAD之間的文件中的所有分歧,並詢問你是否要上演一出變化或不。然而,這可能是相當令人難以置信的,取決於文件的大小以及文件的改變程度。