2013-10-23 65 views
2

我希望執行類似於rebase的操作,只是當將修訂版X應用於修訂版Y時,它將(X^.. X)期間更改的所有文件與修訂版X的確切狀態一起應用,而不是應用diff(X ^)X)到Y. 而且,當然,提交日期,消息,作者姓名和作者電子郵件等與修訂版X相同。Git Rebase但替換而不是修補文件?

例如,我有一個git repo結構,如下所示:

A-B-C-D-E 

與我 「變基」 是這樣的:

A-B-E'-D'-C' 

如果B有文件a.txt,b.txt,c.txt和E修改文件,我們得到的文件a.txt與E相同,b.txt和c.txt與修訂版E中的B相同。 。 (在正常的rebase中,我們在E +的狀態B +(D..E)得到a.txt)

對此的任何說明?

回答

1

看看git cherry-pick <commit> Man Page

摘櫻桃嘗試應用單的提交到當前版本的變化。

你想看看B,然後櫻桃挑E,這可能會給你E'。然後,您可以繼續選擇DC,或者在E'上完成重新拼版,如果這樣做更有意義。

由於此命令僅適用於E的更改,因此您將跳過可能位於DC之內的任何更改。如果您希望E'包含與E中文件相同的修訂版,您唯一的選擇可能是複製該文件,檢出B,然後進行新的提交。

相關問題