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

pau*_*tos 19 git github

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

错误:无法推送一些参考...

我最终尝试先拉,然后推,这有效.但为什么?

mat*_*aly 29

您提到您正在创建新的存储库.

虽然答案和评论也是如此,但很可能您是唯一与存储库交互的人.您需要拉,因为您在GitHub上使用README初始化了存储库(这可能是您遵循的教程).

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

GitHub有这个选项的原因最有可能帮助那些正在启动新项目(例如你自己)的用户在GitHub上设置一个存储库后通过执行pull/clone并进行初始提交非常容易.你快速添加新文件和推送.

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

warning: You appear to have cloned an empty repository.
Run Code Online (Sandbox Code Playgroud)

在没有初始化的情况下,您稍后还必须首次明确地推送您的第一次提交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
Run Code Online (Sandbox Code Playgroud)

总而言之,这是第一次提交(请参阅您的提交,您将看到第一次README提交),因为您的本地存储库与GitHub上的存储库不同步而导致无法推送而无法推送.


Chr*_*ken 6

这样,其他人进行的任何并行编辑然后签入都会进入您的开发环境进行合并和测试.通过这种方式,并行的非集成变更的数量保持在可管理的最小值