将Git分支与历史迁移到新的仓库

问题描述 投票:0回答:1

我有一个Git仓库,在不同的分支上有多个项目

  • 主*
  • 前端
  • 后端

我想把它们分成不同的独立回购。我已经为每个创建了新的存储库。我想让每个分支及其所有提交历史记录都移到新的个人存储库中。

git git-merge git-rebase git-remote
1个回答
4
投票

如果每个分支只包含相应的代码,那么这很简单。用git clone --single-branch --branch <original-repo-url>创建新的repo实际上更简单,但是如果你已经inited并且想要引入历史,你可以做类似的事情

git fetch <original-repo-url> +frontend:master

如果你没有在新的repo中创建第一个分支,你会得到奇怪的行为 - 所以在这种情况下你首先要创建一个虚拟提交然后从分支分离,以便更新将通过。

git commit --allow-empty -m temp 
git checkout --detach
git fetch <original-repo-url> +frontend:master
git checkout master

另一方面,如果每个分支都包含所有代码,并且您想要为每个“新”仓库重写历史记录以仅包含相关代码,那么您可能希望使用git filter-branch。它有很多选项,所以没有更具体的细节,我不能确切地说明你使用的选项,但子目录过滤器可能是有意义的。

https://git-scm.com/docs/git-filter-branch的文件

© www.soinside.com 2019 - 2024. All rights reserved.