为什么我在git中得到非快进错误?

时间:2013-02-20 06:31:56

标签: git github

我没有分支,也是唯一一个当前推送到流中的人,为什么当我这样做

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工作正常。

2 个答案:

答案 0 :(得分:2)

  

执行git pullgit push工作正常。

显然,远程仓库中有一些提交在您的本地仓库中不存在。如果您在某个时候使用git reset,修改或以其他方式更改了现有提交(尽管如果是git pull应该给您一个警告),或者如果您推送到远程另一个回购(例如另一台计算机上的回购)。

答案 1 :(得分:1)

  

没有在本地不存在的遥控器上没有提交,反之亦然是我添加的文件不在远程本地

您可能拥有相同的提交,但SHA1必须以某种方式存在差异。
如果你在任何时候做了一个主变量(包括一个rebase --interactive,只是为了重新排序或删除master内部的一些提交),就会发生这种情况。

唯一的另一种情况是,当您拥有相同的提交(甚至是相同的SHA1)时,可以弹出该错误消息,当您有conflicting tag时(但我不认为它适用于此处)。