我希望将远程仓库作为子目录与完整历史记录合并和解耦。有多种方法和问题需要解决。
我的第一次尝试是使用 subtree ,但它似乎不能重写文件的历史记录,所以我无法查看合并仓库的历史记录。
接下来的尝试是手动合并,就像Seth Robertson在他的答案中展示的那样:
And the trick to making this work: force Git to recognize the rename by creating a subdirectory and moving the contents into it.
mkdir bdir git mv B bdir git commit -a -m bdir-rename
Return to repository "A" and fetch and merge the contents of "B":
cd ../a git remote add -f B ../b git merge -s ours --no-commit B/master git read-tree --prefix= -u B/master git commit -m "subtree merge B into bdir"
To show that they're now merged:
cd bdir echo BBB>>B git commit -a -m BBB
To prove the full history is preserved in a connected chain:
git log --follow B
目前为止工作正常,但似乎大多数工具都不使用 follow 选项来执行 git log
命令。
因此,我需要另一种方法来完成此操作。有人可以告诉我一种不需要重命名且可以保留历史记录的方法吗?
提前感谢。