被拒绝的git推送

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

当我尝试推送一些更改时,出现了这个错误。当我尝试从仓库获取时,出现以下情况:

From github.com:xxx/xxxxx
 * branch            master     -> FETCH_HEAD

我该怎么做才能解决这个问题?到目前为止,只有我在这个代码库上工作,其他人只给了我两次推送。我需要进行正确的合并吗?


你有没有读关于帮助中快进的说明,就像错误信息所说的那样? - Lasse V. Karlsen
1个回答

12

推送失败是因为您的引用(refs)落后于远程仓库的引用。fetch 操作只会获取远程仓库的内容和引用,但不会更新您的引用以反映变更。因此,它对解决阻止推送的问题没有任何作用。您需要执行 pull 操作或者手动合并本地版本与远程引用。


是的,我在看到你的回复之前解决了它。拉取解决了它,但我会将你的答案标记为已接受。 - dragosplesca
git pull 命令会先执行 git fetch,然后再执行 git merge - dgnorton
5
你也可以执行git rebase origin/master,然后执行git merge origin/master,以保持历史线性且不会太混乱。 - Adam Dymitruk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接