小编Fra*_*ver的帖子

带有 --subdirectory-filter 的 git filter-branch 删除所有文件

我想拆分一个非常标准的存储库。原始存储库必须具有以下结构:

root
|-AAA
|-BBB
  |-BBB1
  |-BBB2
|-CCC
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下命令将目录 BBB1 及其所有内容提取到一个单独的存储库中

git filter-branch --subdirectory-filter BBB/BBB1 -- --all
Run Code Online (Sandbox Code Playgroud)

这导致 git 重写一堆提交并以 git 的最终语句结束

Ref 'refs/heads/master' was rewritten
Run Code Online (Sandbox Code Playgroud)

所以这对我来说似乎很好。但是,当我看看到目录下的git结束后,库不再包含任何的源文件,但只有git的在文件夹的根。使用 SourceTree 浏览此存储库我可以在日志中看到(可能)正确的提交,这些提交只会影响BBB1但每次提交不再引用任何文件,因为它们都消失了!

我究竟做错了什么?为什么所有文件都消失了,甚至是我实际过滤的文件?

提前致谢!

西蒙

git git-filter-branch git-subtree

3
推荐指数
2
解决办法
3374
查看次数

标签 统计

git ×1

git-filter-branch ×1

git-subtree ×1