我没有分支,也是唯一一个当前推送到流中的人,为什么当我这样做
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 pull
后git push
工作正常。
答案 0 :(得分:2)
执行
git pull
后git push
工作正常。
显然,远程仓库中有一些提交在您的本地仓库中不存在。如果您在某个时候使用git reset
,修改或以其他方式更改了现有提交(尽管如果是git pull
应该给您一个警告),或者如果您推送到远程另一个回购(例如另一台计算机上的回购)。
答案 1 :(得分:1)
没有在本地不存在的遥控器上没有提交,反之亦然是我添加的文件不在远程本地
您可能拥有相同的提交,但SHA1必须以某种方式存在差异。
如果你在任何时候做了一个主变量(包括一个rebase --interactive,只是为了重新排序或删除master
内部的一些提交),就会发生这种情况。
唯一的另一种情况是,当您拥有相同的提交(甚至是相同的SHA1)时,可以弹出该错误消息,当您有conflicting tag时(但我不认为它适用于此处)。