Git合并具有不同文件结构的分支

Git合并具有不同文件结构的分支,git,github,merge,Git,Github,Merge,我有一个关于重新构造git文件结构和新旧结构之间合并的问题。“导入分支”用于将源文件从另一个verion控制系统移动到git“new_layout”是对git中源文件3的重新构造 'import_branch' -> 'new_layout' - app/file1.txt -> - application/file1.txt - fw/file2.txt -> - system/fw/file2.txt 我所做的:

我有一个关于重新构造git文件结构和新旧结构之间合并的问题。“导入分支”用于将源文件从另一个verion控制系统移动到git“new_layout”是对git中源文件3的重新构造

'import_branch'     ->      'new_layout'
- app/file1.txt     ->      - application/file1.txt
- fw/file2.txt      ->      - system/fw/file2.txt
我所做的:

  • 在“进口分公司”中提交所有内容
  • 已将文件复制到“新建布局”(清理存储库)
  • git签出“新布局”
  • git mv应用程序
  • 吉特mv fw系统/fw
现在我想将“导入分支”中的更改合并到“新建布局”

  • git签出“导入分支”
  • 假设文件app/file1.txt发生了更改
  • 提交“导入分支”中的更改
  • git签出“新布局”
  • git cherry pick-x(最新的“导入分支”提交SHA)
这样一来,“app/file1.txt”中的更改将合并为“application/file1.txt”

问题

但是,如果我在“import_branch”中添加一个新文件,比如说:“fw/file3.txt”,这将成为“new_layout”分支中的“fw/file3.txt”,而不是“system/fw/file3.txt”。指向新文件结构的链接未被保留

如何让git在合并期间跟踪新旧文件结构


提前感谢

您不能引入一个新的提交来将所有文件重命名到新位置吗?否则,您可以修改合并提交,将所有剩余文件移动到新位置。谢谢您的回答。这当然可能是一个解决方案。但是,我有一个相当大的文件树,每天都在旧的SCM系统中添加/编辑新文件。所以我希望有一个解决方案,我不必做很多手动操作。。。