【发布时间】:2011-05-17 18:11:49
【问题描述】:
我刚刚拉出一个新分支,进行了一些本地更改,提交并尝试推送。我收到了这个错误:! [rejected] groups -> groups (non-fast forward)
所以我尝试拉,但被告知Already up-to-date.
这就是我拉然后推的东西。
~/dev$ git pull origin groups
Already up-to-date.
~/dev$ git push origin groups
To /mnt/ebs/git/repo.git
! [rejected] groups -> groups (non-fast forward)
error: failed to push some refs to '/mnt/ebs/git/repo.git'
谁能解释这是怎么发生的以及我该如何解决它?
【问题讨论】:
-
@dan: -v 除了 repo 的路径之外不再提供任何输出。
Pushing to /mnt/ebs/git/repo.git -
我会查看两个存储库中组头的哈希值,它们应该匹配,但如果他们不匹配,那将是正确的错误,如果他们不匹配并且遥控器不是本地前缀
-
解决此问题的绝对最佳方法是查看 gitk (
gitk groups origin/groups) 中的本地和远程分支,并亲眼看看它们是如何分歧的。您可以直接看到我们必须尝试从您的问题中推断出的历史记录。 -
为了让事情变得更棘手,这是在我通过 SSH 访问的服务器上。我认为这意味着 gitk 是不可能的。
-
在我的情况下,我试图将我的 namedbranch 推送到另一个远程的
master分支,正确的语法是git push myremote namedbranch:master;如果您没有指定localbranch:remotebranch,或者更确切地说,如果您只指定远程分支名称,它会尝试推送您的本地分支,命名为我期望的远程分支名称。