在git存储库之间移动文件夹不会保留文件夹本身

时间:2016-03-03 08:19:08

标签: git

我关注了如何在保留历史记录的同时在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

1 个答案:

答案 0 :(得分:0)

没有更好的方法。这是要走的路。

我必须为每个我想移动的目录做过滤子树,每次从一个新的克隆开始。

在每个过滤器之后,我使用git mv来对齐所需的目录结构。

重要提示:由于某些原因,tortoisegit无法追踪历史记录。我切换到更好更快的Sourcetree - 看到那里的历史没有任何麻烦。