推送到新的远程分支时更新被拒绝错误

2024-01-12

我已经分叉了一个 github 存储库,现在我的分叉已经进行了几次提交。我现在想提供one这些提交作为原始存储库的 PR。

下列的这个问题的答案 https://stackoverflow.com/questions/21527233/create-a-pull-request-for-a-single-commit-made-on-a-fork-of-a-fork-on-github, I did:

git remote add official [URL to original repo]
git checkout -b hotfix-for-feature official/master
git cherry-pick [feature-hash]
git push -u origin hotfix-for-feature

我得到:

! [rejected]        hotfix-for-feature -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/myusername/repositoryname'
hint: Updates were rejected because a pushed branch tip is behind its remote
hint: counterpart. Check out this branch and integrate the remote changes
hint: (e.g. 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

注意如何:

  1. 分支参数为git push -u完全被忽略,它想推送到 origin/master
  2. Neither origin/hotfix-for-feature nor official/hotfix-for-feature远程存在。
  3. official/master无论如何都不领先——我真的只是拿到了它

如果我尝试git branch hotfix-for-feature --set-upstream=origin/hotfix-for-feature有人告诉我git push -u是执行此操作的正确方法。如果我尝试git push -u origin/hotfix-for-feature I get:

fatal: You are pushing to remote 'origin/hotfix-for-feature',
which is not the upstream of your current branch 'hotfix-for-feature',
without telling me what to push to update which remote branch.

这 - 除了是如何不写错误消息的一个很好的例子 - 我不明白。我指定要推送的内容(当前分支)以及要更新的远程分支。

我发现很多关于此错误的问题,但它总是与某个远程分支有关,在这种情况下,不存在现有的远程分支。另外,“推送分支”和“远程[分支]”之间有什么区别?


您收到以下错误消息:

! [rejected]        hotfix-for-feature -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/myusername/repositoryname'
hint: Updates were rejected because a pushed branch tip is behind its remote
hint: counterpart. Check out this branch and integrate the remote changes
hint: (e.g. 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

其中重要的部分是

hotfix-for-feature -> master

您正在尝试推送本地分支hotfix-for-feature到远程分支master.

git push -u 的分支参数完全被忽略,它想推送到 origin/master

它并没有被忽视。它推动本地分支hotfix-for-feature到远程分支master.

The 的文档git push https://git-scm.com/docs/git-push意味着使用refspec https://git-scm.com/docs/git-push#Documentation/git-push.txt-ltrefspecgt82308203:

指定要使用哪个源对象更新哪个目标引用。参数的格式是可选的加号+,后跟源对象,后跟冒号:,然后是目的地 ref 。

...

在第二个参数中,您不仅可以指定要推送的(本地)分支,还可以指定要推送到的(远程)分支(git push <remote> <sourcebranch>:<destinationbranch>).

知道了这一点,你就可以使用git push -u origin hotfix-for-feature:hotfix-for-feature用于推送本地分支hotfix-for-feature到远程分支hotfix-for-feature.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

推送到新的远程分支时更新被拒绝错误 的相关文章

  • 关闭 Sublime Text 3.2 中的 git 集成

    如果我想关闭 Sublime text 左侧装订线中的 GIT 集成 又名史莱姆绿线 我只需将其切换为 false 26 show git status false 但是 当在首选项中进行设置时 我收到错误 尝试解析设置时出错 意外的字符
  • Visual Studio 2010 中的源代码控制?

    在对 SO Google 和 MSDN 论坛进行了一些搜索之后 我感到很沮丧 因为对于一个看似显而易见的问题 甚至可能是一个愚蠢的问题 信息太少 我需要在 Visual Studio 2010 Professional 中使用源代码管理 我
  • git difftool 进行目录比较?

    是否可以使用 git difftool 命令来打开已更改文件和暂存 检查文件之间的目录比较 因此 理想情况下 如果 2 个文件已更改 它们将是唯一显示的 2 个文件 但在目录比较中 我读过关于让 git 并行给出所有文件差异的帖子 所以像
  • 如何使用git查看指定版本的Webkit?

    谢谢 从链接http trac webkit org wiki UsingGitWithWebKit http trac webkit org wiki UsingGitWithWebKit 使用 git 检查 Webkit 有以下 3 个
  • 在 Windows 上为 Bitbucket 设置 SSH 密钥

    首先 我对 git repos 和命令行绝对是菜鸟 我在 Bitbucket 上有仓库 我基本上希望能够通过 gitbash 推送到存储库 而无需每次输入密码 我拥有的 Bitbucket 上的存储库已设置好代码 克隆存储库的本地目录 通过
  • git | git将旧提交移至另一个分支的过去

    我过去错误地进行了分支 并且在另一个分支的开头留下了一个提交 03431cb HEAD gt bar a2 d332e4d foo b2 9b29ae3 b1 4656a98 a1 6ebca20 master root 我怎样才能移动a1
  • 为什么我必须使用“git commit -a”而不仅仅是“git commit”?

    我正在尝试了解 Git 的复杂性 我使用 git clone url here 从 GitHub 上下载了一个存储库 我做了一些更改 尝试使用 git commit 来提交它们 这似乎没有将更改推送到我的本地存储库 在本地目录 git 中
  • 为什么 git-cherry pick 没有说要提交什么?

    我对以下问题进行了很多搜索 但无法获得任何实质性信息 我创建了一个临时分支 202116 并尝试对 gerrit 202116 进行挑选 并收到以下消息 为什么我无法挑选此提交以及为什么会收到此错误 lt gt git fetch ssh
  • 如何为Git存储库组织和设置镜像备份服务器?

    我正在将一些 svn 存储库移至 Git 所以 我基本上尝试做的是 设置一台带有裸 Git 存储库的服务器 我将从中拉取和推送到该存储库 为第一台服务器上的所有存储库设置一些备份服务器 所以 假设我的服务器上有一个目录 例如 HOME gi
  • 将文件提交到不同的分支而不进行签出

    是否可以在 git 分支中提交文件而不检出该分支 如果是这样怎么办 本质上 我希望能够将文件保存在我的 github Pages 分支中 而无需一直切换分支 有什么想法吗 我需要以原子方式完成此操作 而不更改当前目录 因此多个命令将无法工作
  • 如何在版本控制系统中安全地保存密钥和密码?

    我在版本控制系统中保留了开发和生产服务器的主机名和端口等重要设置 但我知道这是不好的做法保留secrets 如私钥和数据库密码 位于 VCS 存储库中 但密码 就像任何其他设置一样 似乎应该进行版本控制 所以呢is保持密码版本控制的正确方法
  • 我的邮箱收到了。但我不知道如何获取邮箱中的补丁,因为邮箱的内容只是文本

    生成补丁后 git send email to 电子邮件受保护 cdn cgi l email protection patches patch 发送了补丁 我的邮箱收到了 但我不知道如何获取邮箱中的补丁 因为邮箱的内容只是文本 请看图片
  • Github 操作 - 错误:进程已完成,退出代码为 1

    我正在尝试设置 github 操作来部署我的应用程序 My bash 启动部署过程的脚本如下所示 bin sh set e vendor bin phpunit git push true git checkout production g
  • git:复制一个版本来玩一下

    在开发应用程序时 我希望在某个时候拥有一份单独的工作副本 以便尝试进行一些更改 这些更改并不意味着要进行 只是玩玩 尝试各种可能性 是什么 best 如何做到这一点 我发现了以下可能性 但想得到比我更有 git 经验的人的建议 我可以用gi
  • git commit 保存 vim 文件时出错

    我正在遵循简单的 git 指南nettuts 简易 git 指南 http net tutsplus com tutorials other easy version control with git 我在我的中初始化了一个空的 git 实
  • 如何在不下载文件对象的情况下进行 git 克隆

    是否可以下载所有提交但不能下载文件本身 我想运行 bisect 但从构建服务器下载版本而不是自己编译 当你跑步时git bisect你可以提供 no checkout如果您不想为每次迭代签出新的工作树 请作为参数 同样适用于git clon
  • Visual Studio 2022 Git 推送标签

    有谁知道如何在 Visual Studio 2022 中推送标签 自从我切换到多存储库模式后 我在任何地方都找不到它 解决方法是通过命令行推送标签 事实上 标签有点隐藏 你应该去团队资源管理器 gt Git 存储库 gt 在你的分支下 gt
  • git fatal:无法读取对象 xxx:参数无效

    如果我从远程获取数据 我会收到以下错误 git pull remote Counting objects 85 done remote Compressing objects 100 37 37 done remote Total 85 d
  • Visual Studio 2022 git 错误无法与 {0} 端口 {1} 协商:未找到匹配的主机密钥类型。他们的报价:ssh-rsa

    将 VS 2022 更新到 17 1 1 后 我遇到了 Git 问题 我无法评论 例如 fetch 或 pusl 我收到一条消息 从原点获取 无法与 0 端口 1 协商 未找到匹配的主机密钥类型 他们的报价 ssh rsa 无法从远程存储库
  • 如果使用 Maven,是否应该忽略 VCS 中 Eclipse 特定的文件?

    我知道为什么不将 Eclipse IDE 特定的文件提交到像 Git 我实际上正在使用的 这样的 VCS 中 这就是我使用 Maven 并让它为您生成这些文件的原因之一not将它们置于版本控制之下 但我想知道 是否应该在 gitignore

随机推荐