为什么Git要求我在推动前拉?

时间:2014-01-19 22:23:59

标签: git version-control github git-push

我不断收到错误消息:被拒绝的主人 - > master(先获取),无法推送一些引用....因为remote包含你本地没有的工作。

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

我尝试将repo中的现有文件与桌面上的文件合并,但我不断遇到合并冲突。不知道如何处理这些。

2 个答案:

答案 0 :(得分:9)

在推送之前,系统会要求您提取,因为有人在最后一次拉动后将更改推送到服务器,因此我们的本地副本和当前服务器副本不同步。 拉动将远程复制与您的本地复制合并,这使它们恢复同步并允许您推送。

您不被允许直接推送的原因是,此需要合并,而可能会导致需要手动解决的冲突。 为了避免合并错误和冲突,合并必须始终在客户端完成,而不是在服务器上。

答案 1 :(得分:6)

git告诉你必须先:

git fetch

以后

git add /commit /push

fetch类似于pull但是,拉取合并本地分支中的文件中的数据,只获取更新分支结构和id ..

如果fetch不起作用,则表示其他人承诺更改,现在您的版本必须先升级才能发布