我关注了如何在保留历史记录的同时在git repos之间移动文件夹great tutorial。我遇到了以下问题:
假设我的源代码库中有以下结构:
Root/
SubRoot/
A
B
C
我想将A和B移动到另一个回购。
第一个问题:git filter-branch --subdirectory-filter
只能用于一个目录:-(。我愿意不止一次重复这个过程,但是有更好的方法吗?
第二个问题(非常糟糕的问题):当我移动A时,它移动了内容但没有保留目录A本身,给了我:
Root/
<contents of A>
而不是:
Root/
A/
<contents of A>
我执行的命令(来自Root):
git filter-branch --subdirectory-filter SubRoot/A -- --a
答案 0 :(得分:0)
没有更好的方法。这是要走的路。
我必须为每个我想移动的目录做过滤子树,每次从一个新的克隆开始。
在每个过滤器之后,我使用git mv来对齐所需的目录结构。
重要提示:由于某些原因,tortoisegit无法追踪历史记录。我切换到更好更快的Sourcetree - 看到那里的历史没有任何麻烦。