为什么Git希望我在推动之前拉动?

我在GitHub上建立了一个新的存储库,并试图推动它,但Git不断给我一个错误说:

错误:未能推动一些裁判...

我最终尝试拉,然后推,那工作。 但为什么?


你提到你正在创建一个新的存储库。

虽然答案和评论也是如此,但您可能是唯一与资料库交互的人。 由于您在GitHub上使用自述文件初始化了存储库 (这可能是您遵循的教程),因此您需要进行提取。

如果您没有使用README初始化存储库,意味着GitHub没有首次提交'README.md',那么您将拥有一个完全空的存储库,您可以直接推送到该存储库。

GitHub拥有该选项的原因很可能是通过执行pull / clone并在初始提交后允许在GitHub上设置存储库,从而帮助开始新项目的用户(例如您自己)轻松完成工作,从而允许你快速添加新文件并推送。

此外 ,通过使用README初始化存储库,您将拥有一个主分支,可以进行克隆并开始跟踪文件 。 在一个完全空的仓库中,您将收到来自Git的通知,如:

warning: You appear to have cloned an empty repository.

如果没有初始化,你以后也必须明确地第一次提交第一次使用git push origin master ,因为Git会礼貌地告诉你:

No refs in common and none specified; doing nothing.
Perhaps you should specify a branch such as 'master'.
Everything up-to-date

总而言之, 这是第一次提交(请参阅您的提交,您将看到第一次README提交),因为您的本地存储库未与GitHub上的存储库同步,所以无法执行拔出操作


这样,任何其他人编辑并进行的并行编辑都会被引入您的开发环境进行合并和测试。 通过这种方式,并行,非整合变化的数量保持在可控范围内


在你的情况下,GitHub自动创建了第一个提交(通常是README.md和LICENSE文件),为了推动你的提交,你必须先提取(提取和合并)GitHub的提交。

链接地址: http://www.djcxy.com/p/49025.html

上一篇: Why does Git want me to pull before I push?

下一篇: What are the consequences of using receive.denyCurrentBranch in Git?