【问题标题】:git error when trying to push one commit尝试推送一个提交时出现 git 错误
【发布时间】:2013-07-08 20:29:09
【问题描述】:

我正在尝试将一个提交推送到原始主机。但是我收到一条错误消息,说我首先需要获取然后合并,但是在拉取后我收到了这个错误。任何想法将不胜感激。

Richard@RICHARD-PC /e/Work/MH (master)
$ git pull
remote: Counting objects: 27, done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 14 (delta 8), reused 0 (delta 0)
Unpacking objects: 100% (14/14), done.
From file:///V:\
   930430f..3a55dca  master     -> origin/master
Auto-merging project/src/main/java/com/company/project/outgoing/HttpsCallService.java
Merge made by the 'recursive' strategy.
 .../java/com/company/project/auth/BcagHmacGenerator.java  |  2 +-
 .../com/company/project/outgoing/HttpsCallService.java    | 16 ++--------------
 deployLocal.sh                                           |  2 +-
 3 files changed, 4 insertions(+), 16 deletions(-)

Richard@RICHARD-PC /e/Work/MH (master)
$ git push origin 72ba712:master
To file:///V:\
 ! [rejected]        72ba712 -> master (non-fast-forward)
error: failed to push some refs to 'file:///V:\'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

这里是提交列表,不是 72ba712 的位置:

Richard@RICHARD-PC /e/Work/MH (master)
$ git lol
*   eec2ab2 (HEAD, master) Merge branch 'master' of file:///V:\
|\
| * 3a55dca (origin/master) <comments>
* | 72ba712 <comments>
* | bc55eb5 <comments>
* |   c2aa448 Merge branch 'master' of file:///V:\
|\ \
| |/
| * 930430f <comments>
* | fc7a55b <comments>
* | fd401a5 <comments>

【问题讨论】:

  • 您确定没有人在您的git pullgit push 之间推送新的提交吗?如果存储库中有很多活动,这确实会发生。
  • 是的,只有我们两个人,起源在其他人的电脑上。他坐在我旁边,自从拉动后没有任何变化。
  • 您不只是推送单个提交,尤其是当它们不在分支的顶端时。您推送一个或多个包含您要推送的提交的分支。
  • 感谢 twalberg,但这是一种特殊情况,我只想将一个提交更改推送到原点,而不是所有其他的。
  • 我的意思是,git 不是这样工作的,从这个意义上说,你希望它以这种方式工作并不重要......它不......

标签: git push commit


【解决方案1】:

这不是一个错误,您在 master 上的提交提前了。为确保您实际上是最新的,请按以下方式运行您的拉取操作:

git fetch origin
#then....
git pull origin master

这将确保您从正确的位置拉动,然后您可以按如下方式推送您提交的更改(再次明确以便 git 知道发生了什么):

git push origin master

您的错误可能来自您的语法,您可能在某些方面配置了 git,这使得您现在拉动git pull 的方式对 git 模棱两可。

【讨论】:

  • 当然,去吧,但我不明白你如何连接到原点可能是时间敏感的。
  • 感谢您的 cmets,不幸的是我明天只能连接到 origin。但我还有一个简短的问题。如果我执行以下操作,它只会推送该提交中的更改,还是会推送导致该提交的所有更改? git push origin 72ba712:master
【解决方案2】:

您正在尝试将带有哈希值 72ba712 的提交推送到远程 master 分支,但这显然行不通,如果没有合并,您已经做了什么。现在,在合并之后,您必须推送合并提交:

git push origin eec2ab2:master

或者,更简单:

git push origin HEAD:master

【讨论】:

    猜你喜欢
    • 2012-08-09
    • 2012-07-27
    • 2016-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 2012-06-12
    • 2020-07-29
    相关资源
    最近更新 更多