【问题标题】:Moving Git branch with history to new repo将带有历史记录的 Git 分支移动到新的仓库
【发布时间】:2019-02-05 14:07:32
【问题描述】:

我有一个 Git 存储库,其中包含不同分支上的多个项目

  • 主人*
  • 前端
  • 后端
  • API

我想将它们分解为不同的独立存储库。我已经为每个创建了新的存储库。我希望将每个分支及其所有提交历史记录移至新的单独存储库。

【问题讨论】:

标签: git git-merge git-rebase git-remote


【解决方案1】:

如果每个分支只包含相应的代码,那么这很简单。实际上使用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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-13
    • 1970-01-01
    • 1970-01-01
    • 2016-04-12
    • 2022-08-07
    • 1970-01-01
    • 2011-06-30
    • 2021-05-11
    相关资源
    最近更新 更多