将现有 git 仓库推送到不同仓库的新分支

Push existing git repo to new branch of different repo

我正在使用 git-tfs 迁移存储库,由于该工具的一个怪癖,我必须 clone/convert 一个分支到它自己的存储库。我怎样才能将这个有自己的历史和一切的单独的回购推送到现有回购的一个分支?如果更容易的话,我可以从头开始,尝试一次推送所有内容。

旁注:直接回答你的问题——从一个存储库中,你只能将 X (1,2,3,4,...x) 个分支推送到另一个存储库,这将把它们作为 X ( 1,2,3,4,...x) 分支。您不能将 "whole repository" 作为 1 分支放入另一个分支。好吧,除非你用 submodules 构建类似的东西。稍后再看看,也许你会发现有用。

为了解决您的 git-tfs 工作流 - 我认为您实际上想将一个特定的分支从那个侧仓库推送到您的主仓库。比如说,"master" from side-repo -> "issue-273-fixing-labels" in main-repo。那应该很容易如果你真的克隆了它。

克隆的副作用是为您设置原点 URL,因此命令类似于:

cd ../../siderepo
git push origin master:issue-273-fixing-labels

注意 'origin' 是指向 main-repo 的 remote 的典型名称(该部分应通过克隆设置,如果不是则执行 `git remote add origin {here PATH or URL to mainrepo}). "master" 是 side-repo 的源分支,"issue-273-fixing-labels" 是 main-repo 的目标分支。

根据需要替换 origin、master 和 issue-273-fixing-labels。