为什么Git在推送前要求我先拉取?

12

我一直收到一个错误提示:rejected master-> master (fetch first),无法推送某些引用......因为远程包含你本地没有的工作。

我只想让 git 使用新上传的文件覆盖当前存储库中的文件,所以一直在尝试使用 git push -u origin master,但这个错误不断弹出。我是git/github的新手,请问这是为什么?

我尝试合并存储库中的现有文件和桌面上的文件,但我一直遇到合并冲突。不确定如何处理这些冲突。

2个回答

17

由于在您上一次拉取代码后,有其他人向服务器推送了更改,导致我们的本地副本和当前服务器副本不同步,因此您需要先拉取再推送。 通过拉取操作,将远程副本与本地副本合并,使它们重新同步,并且让您可以进行推送。

不能立刻进行推送的原因是,这可能会导致合并冲突并需要手动解决。 为避免合并错误和冲突,合并必须始终在客户端上完成,而不是在服务器上进行。


12

git告诉你必须先执行以下操作:

git fetch

以后

git add /commit /push

fetch与pull类似,但是pull会将数据合并到您本地分支的文件中,而fetch仅更新分支结构和ID。

如果fetch无法正常工作,则意味着有其他人提交了更改,现在必须升级您的版本才能发布。


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