gpt4 book ai didi

git - 将带有历史记录的 Git 分支移动到新的存储库

转载 作者:行者123 更新时间:2023-12-03 16:14:21 26 4
gpt4 key购买 nike

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

  • 大师*
  • 前端
  • 后端
  • api

  • 我想将它们分解为不同的独立存储库。我已经为每个创建了新的存储库。我希望将每个分支及其所有提交历史都移动到他们新的个人存储库中。

    最佳答案

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

    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

    另一方面,如果您的每个分支都包含所有代码,并且您想重写每个"new"存储库的历史记录以仅包含相关代码,那么您可能想要使用 git filter-branch .它有很多选项,因此如果没有更具体的细节,我无法确切说出您将使用哪些选项,但可能会对子目录过滤器感兴趣。

    文档位于 https://git-scm.com/docs/git-filter-branch

    关于git - 将带有历史记录的 Git 分支移动到新的存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52100244/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com