将代码从一个仓库分支推送到另一个仓库分支

43

有一个叫做ABC/A的代码库。我将其fork到了我的Github账户下,名为ME/A。现在我被要求在ME/A上创建一个分支x(之前只有develop和master分支)。我需要编写一些代码,因此我先克隆了ABC/A并在它的develop分支上进行了工作。但是现在当我要推送代码时,由于没有权限,无法将代码推送到ABC/A。我必须将代码推送到ME/A。问题是,我已经在ABC/A的develop分支上工作了,但我必须将代码推送到ME/A的x分支。是否可能以这种方式推送代码?

3个回答

56

是的,你可以将任何本地分支推送到任何远程分支。语法如下:

git push <remote name, e.g. origin> <local branch name>:<remote branch name>
如果您当前要推送的分支名为develop,则命令应该如下:
git push ME develop:x

你也可以使用 git push HEAD:master,此时 HEAD 指向 develop 分支的顶部。 - MissSergeivna

49

Roman的答案是正确的。但是,对于一些人来说可能不太明显的是,你需要先添加新仓库(您要推送到的仓库)的远程名称和URL,然后再将其推送到该仓库中的一个分支。可以像这样完成:

git remote add <remote name> <remote url>
//For example
git remote add origin2 https://user@github.com/example/new_repo.git

然后您可以像Roman的回答那样继续进行,通过以下方式将其推送到新的存储库分支

git push origin2 local_branch:new_repo_branch

0
假设您用于ME的远程名称为megit remote -v show 将列出它们)。
然后在检出您的分支后执行:
git push -u me A

其中A是分支的名称。使用-u会将您的本地分支设置为跟踪me上游分支,因此git pull将从正确的位置拉取,并且未来的git push将无需其他命令即可运行。


我想将我的更改推送到远程分支x,但我的更改在本地分支A中。我该怎么办? - user3119346
如果远程分支x已经存在,则检出远程分支x,将您的更改合并到其中,然后将其推回。 - abligh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接