git cherry挑选到另一个基本目录

问题描述 投票:3回答:2

我在分支10.57中有某些提交,我想将其合并到另一个分支10.58。

我通常会从10.57到10.58挑选那些提交。

但是有一个小故障。某些文件在10.58中更改了目录结构。

示例:10.57中的源目录MAAS/ios-web-services已移至10.58中的MAAS/apple/ios-web-services

如果我像以前那样挑剔,我的更改将重新创建为MAAS/ios-web-services中的新文件/目录,而不是合并到MAAS/apple/ios-web-services中的文件。

有没有办法让git来考虑目录结构的这种变化?

Git cherry pick files, from Directory A to Directory B似乎建议编辑补丁并手动应用它们。还有没有其他更简单的方法?

git git-merge git-cherry-pick
2个回答
1
投票

如果文件仅进行了较小的更改,则可以按照合并分支的说明,尝试使用merge.renameLimitHow to merge two branches with different directory hierarchies in git?


0
投票
  1. 在10.58上,创建与10.57相同的目录结构mkdir -p MAAS / ios-web-services
  2. 将文件从旧位置移动到新创建的位置mv MAAS / apple / ios-web-services / * MAAS / ios-web-services /
  3. 提交这些更改git添加MAAS / ios-web-servicesgit commit -a
  4. 现在樱桃选择从10.57到10.58的更改
  5. 反向步骤2,即将文件从新位置移动到旧位置
  6. 反向步骤1,即删除目录结构
  7. 提交这些更改。
  8. 现在您有3次提交,首先是在步骤3,第二步是在步骤4,第三步是在步骤7。使用git rebase -i HEAD〜3合并所有3次提交
© www.soinside.com 2019 - 2024. All rights reserved.