将相同的文件重命名更改应用于分歧的GIT分支

时间:2010-10-22 12:44:54

标签: git patch merge cherry-pick

我有一个拥有主分支和稳定分支的项目 - 很久以前分支机构分道扬..现在我在stable分支上有一些提交,我也希望在master分支上有一个提交(修复bug)。我无法合并,因为分支发散并且存在大量未合并的变化 - 我只想要4次提交。

所以我尝试了樱桃挑选。但是,由于顶级模块名称从“项目模块”方案更改为“模块”,因此失败。在挑选时,GIT在旧目录中创建新文件(如在旧分支上):未检测到重命名。那可能是因为我收到了这个警告:

warning: too many files (created: 278 deleted: 5364), skipping inexact rename detection

我尝试了git format-patch + git am,但这又在旧目录中创建了文件。

如何将提交应用于主分支?

谢谢, 亚当

1 个答案:

答案 0 :(得分:3)

我怀疑你可以通过更改merge.renameLimit的值来使其工作(但需要很长时间):

  

merge.renameLimit

     

合并期间执行重命名检测时要考虑的文件数;如果未指定,则默认为diff.renameLimit的值。

我相当肯定樱桃挑选也会尊重这个价值。如果没有,您可以找到两个分支的共同祖先,在那里应用提交,然后将它们合并到两个分支中,以确保它使用合并机制。 (请注意,这实际上是我建议首先做的。合并非常适合挑选,因为它们不会创建重复的提交,并且它们保留了历史流。)