从拆分的分支设置原点



我在gitlab公司有一个git repo,里面有很多东西。我们决定把它们分成自己的独立存储库。没问题,我在gitlab中创建了一个repo,在本地克隆它,复制文件,提交并推送。一切都很好。当然,他们希望保留该分支的提交历史记录。所以我这样做:

git subtree split -P <directory_to_split> -b <target_branch>

效果很好。但我很难弄清楚如何在gitlab中设置上游(来源(回购。我在gitlab中创建了一个新的repo,在本地克隆它(它说我已经克隆了一个空的repo(,这是正确的(然后我做:

git pull <directory_of_old_repo> <target_branch>

这似乎奏效了。但当我做一个git状态时,我会得到:

On branch master
Your branch is based on 'origin/master', but the upstream is gone.
(use "git branch --unset-upstream" to fixup)
nothing to commit, working tree clean

如果我做了——不设置,那就违背了整个目的,也不起作用。

我如何将这个分支从旧的回购中转移到它自己的回购中,上游/原点作为我的gitlab服务器?

  1. 根据您的命令,我猜您将单个目录拆分为自己的存储库。然后可以考虑使用git filter-branch命令,而不是git subtree split。您可以查看本教程
  2. 即使在git subtree split的情况下,我想您也不需要从新创建的回购中提取。相反,拆分您的存储库->使其存储在本地->,然后创建远程存储库->,然后将您的本地回购推送到新的远程存储库。不要先从旧的存储库中提取——再次,您需要将筛选/拆分的存储库推送到新的远程存储库。在这种情况下,上游将被正确设置

最新更新