我有一个Git仓库,在不同分支上有多个项目
我想将它们分解为不同的独立存储库。我已经为每个仓库创建了新的仓库。我希望每个分支及其所有提交历史记录都移到新的单独存储库中。
答案 0 :(得分:4)
如果每个分支仅包含相应的代码,那么这很简单。使用git clone --single-branch --branch <original-repo-url>
创建新的仓库实际上更为简单,但是如果您已经init
编辑过并且只想引入历史记录,则可以执行类似的操作
git fetch <original-repo-url> +frontend:master
如果您还没有在新的仓库中创建第一个分支,您将得到奇怪的行为-因此,在这种情况下,您只需创建一些虚拟提交,然后从分支中分离出来,这样更新就可以通过了。
git commit --allow-empty -m temp
git checkout --detach
git fetch <original-repo-url> +frontend:master
git checkout master
另一方面,如果您的每个分支都包含所有代码,并且您想要重写每个“新”存储库的历史记录以仅包含相关代码,那么您可能要使用git filter-branch
。它有很多选项,因此如果没有更多具体细节,我无法确切地说出您将使用什么选项,但是子目录过滤器可能会很有趣。