git出现这种错误是什么原因?error :hint?

$ git push origin master
To git@github.com:qzmly100/repository-.git
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'git@github.com:qzmly100/repository-.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

分析一下如何解决?

阅读 50.9k
5 个回答

是不是在不同的机器上上做了提交??

远程分支上存在本地分支中不存在的提交,往往是多人协作开发过程中遇到的问题,可以先fetchmerge,也就是pull,把远程分支上的提交合并到本地分支之后再push

如果你确定远程分支上那些提交都不需要了,那么直接git push origin master -f,强行让本地分支覆盖远程分支。。。

可能是你本地仓库数据和远程仓库数据不一致,要先抓取并合并远程仓库全部内容(git pull origin master),再推送本地仓库数据(git push origin master)

入如果pull有这个报错:
fatal: refusing to merge unrelated histories

  此项错误是由于本地仓库和远程有不同的开始点,也就是两个仓库没有共同的 commit 出现的无法提交。这里我们需要用到 --allow-unrelated-histories。也就是我们的 pull 命令改为下面这样的:

git pull origin master --allow-unrelated-histories

如果设置了默认分支,可以这样写:

git pull --allow-unrelated-histories

你的远程库的版本比你的本地库要新,需要先git pull 更新你的本地库后才能git push到远程库里~

简单说就是你的远程库里有了本地库没有的东西,需要先同步,然后才能把本地库内容推送到远程库里~

不是说的很明确了嘛。。?

让你fetch first

就是先git pull 一下...

推荐问题
宣传栏