Git 从 fork master 推送到远程上游分支

Git push from fork master into remote upstream branch

我有一个相当简单的问题,但我想不出解决办法。我分叉了一个存储库 <repo> 并为代码引入了新功能。所有这些功能都保存在我的分支的 master 分支中。现在我想将我的更改贡献给原始的上游存储库。我想 push 把它们放到一个单独的新分支上 upstream。我正在尝试使用以下命令实现它:

git push origin upstream:<branch>

我的 Git 配置文件的相关部分是:

[remote "origin"]
    url = git@<...>:mabalenk/<repo>.git

[branch "master"]
    remote = origin
    merge  = refs/heads/master

[remote "upstream"]
    url = git@<...>:jsmith/<repo>.git

我收到以下错误消息:

error: src refspec upstream does not match any
error: failed to push some refs to 'git@<...>:mabalenk/<repo>.git'

正如 underscore_d 所说,首先您在 git 推送中选择了错误的存储库。您需要 git push upstream 而不是 git push origin 才能将内容推送到上游存储库。

第二个问题是你的refspec。不同分支名称的 Refspecs 以 src:dest 的形式给出。因此,在您的情况下,您需要 master:BRANCH_NAME 其中 BRANCH_NAME 是您希望在上游的分支的所需名称。

总之,命令为:git push upstream master:BRANCH_NAME。您可能还需要使用 --set-upstream 标志,尽管 git 会在上述命令的第一次调用时明确说明。