我希望进行一个很标准的代码库分离。 原代码库结构如下:
root
|-AAA
|-BBB
|-BBB1
|-BBB2
|-CCC
我尝试使用以下命令将目录BBB1及其所有内容提取到一个独立的存储库中:
git filter-branch --subdirectory-filter BBB/BBB1 -- --all
这会导致Git重写一些提交并以Git的最终声明结束。
Ref 'refs/heads/master' was rewritten
所以,这对我来说似乎非常完好无损。但当我查看git完成后的root目录时,仓库不再包含任何源文件,而只有位于root的.git文件夹。浏览SourceTree中的该存储库,我可以在日志中看到(可能)正确的提交,这些提交仅会影响BBB1,但由于所有文件都不见了,所以每次提交都没有引用任何文件! 我做错了什么?为什么所有文件都没了,甚至是我实际过滤的那些文件?谢谢!西蒙
git-filter-repo
... 花了太多时间试图弄清楚这个问题。使用 Unix 风格的路径分隔符而不是 Windows 分隔符,然后它就可以工作了。 - Tur1ng