1

我不在分支上,并且是当前唯一推送到流中的人,为什么当我这样做时

git push

我得到:

! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/dsak.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again.  See the
'Note about fast-forwards' section of 'git push --help' for details.

表演git pullgit push作品就好了。

4

2 回答 2

2

表演git pullgit push作品就好了。

显然,远程仓库中有一些提交在您的本地仓库中不存在。如果您git reset在某个时候使用、修改或以其他方式更改了现有提交(尽管git pull在这种情况下应该给您一个警告),或者如果您从另一个存储库(例如另一台计算机上的一个存储库)推送到远程,则可能会发生这种情况.

于 2013-02-20T06:36:00.040 回答
1

没有在本地不存在的远程提交,但反之亦然是正确的我添加的文件不在远程到本地

您可能有相同的提交,但 SHA1 一定有所不同。
如果您在任何时候对 master 进行了 rebase(包括 rebase --interactive,只是为了重新排序或删除master其自身的一些提交),就会发生这种情况。

在具有相同提交(甚至相同 SHA1)的同时弹出该错误消息的唯一另一种情况是您有一个冲突标签(但我认为它不适用于这里)。

于 2013-02-20T07:53:36.980 回答