Git Rebase但是替换而不是修补文件?

时间:2013-10-23 13:29:17

标签: git

我希望执行类似于rebase的操作,除了将修订版X应用到修订版Y时,它将在(X ^ .. X)期间更改的所有文件应用于修订版X的确切状态,而不是应用diff修补程序( X ^ .. X)到Y. 当然,提交日期,消息,作者姓名和作者电子邮件等与修订版X相同。

例如,我有一个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'中得到a.txt状态为B +(D..E))

有这方面的例子吗?

1 个答案:

答案 0 :(得分:1)

看看git cherry-pick <commit> Man Page

cherry-pick尝试将单个提交的更改应用于当前版本。

您需要查看B,然后选择E,这可能会给您E'。然后,您可以继续挑选DC,或者如果更有意义的话,可以在E'上进行完全变基。

由于此命令仅应用E的更改,因此您正在跳过DC中可能发生的任何更改。如果您希望E'包含E中文件的相同修订版,则唯一的选择可能是复制该文件,签出B并进行新的提交。