使用filter-branch拆分git存储库会失去祖先

时间:2016-10-27 13:35:21

标签: git git-filter-branch

我正在使用filter-branch将一个较大的git-repository转换为多个repos(每个子模块一个),但是sub-repos中的一些提交会断开连接并且不会共享父级。

父存储库来自svn导入(使用git svn clone),并且具有master-trunk的干净历史记录,并且偶尔会从中释放分支。 IE浏览器。像这样的东西:

---------------- master
 \  \  \
  \  \  \------- release-2.00
   \  \  
    \  \-------- release-1.10
     \
      \--------- release-1.00

然后我使用类似的东西运行git filter-branch:

git filter-branch --prune-empty --subdirectory-filter module1 -- --all
git push ../split-module1/ --all

其中../split-module1/是一个空的裸存储库。 1

然后,生成的仓库将包含一个看起来像这样的历史记录:

---------------- master
  \
   \------------ release-1.00

---------------- release-1.10

---------------- release-2.00

对我而言似乎是随机的,哪些版本仍附在行李箱上。

有没有办法让分支团结起来?如果需要更多信息,我很乐意提供: - )

1 这有点简化,因为在所有版本中都不存在某些模块,--all然后被相关版本替换,但我得到相同的结果。

更新:事实证明我错误地认为全球历史正在变得干净,有些版本悬而未决:-(我设法使用git pull --rebase .合并历史,然后一切都像魅力一样。

0 个答案:

没有答案