2015-08-16 150 views
1

我在Github上有一个回购,其中我打算将第二个Github回购(也是我的)作为子树。不幸的是,我的经验不足意味着失败了,所以我从1月份以来所做的所有工作都进入了主要回购的历史。将历史记录从git repo移动到子树

如何将此历史记录复制到第二个回购库中,然后更改主项目以将其用作子树?

编辑:评论之一(现在删除)问为什么我不只是使用单个回购。主要的回购是私人的,但second repo是公开的 - 我试图分享我可以。

回答

1

我的一个朋友指出我要Moving files from one git repository to another, preserving history。过滤器分支指令不适用于我,可能是因为我的回购没有分支机构?无论如何,我做的是:

git clone <git repository A url> 
cd <git repository A directory> 
git remote rm origin 
git filter-branch --subdirectory-filter <directory 1> -- 

这给了我一个回购,只有在子目录的变化。然后,我融入我的第二个回购这样的:

git clone <git repository B url> 
cd <git repository B directory> 
git remote add repo-A-branch <git repository A directory> 
git pull repo-A-branch master 
git remote rm repo-A-branch 

然后我用滤波器分支从主回购删除子目录:

git filter-branch --tree-filter 'rm -rf <bad subdirectory>' --prune-empty HEAD 

最后我也跟着The power of Git subtree更新后的第二次回购添加到第一作为子树。

相关问题