我在 GitHub 上设置了一个新的存储库并试图 push 它,但 Git 一直给我一个错误说:
error: failed to push some refs to...
我最终尝试先 pull 再推,结果成功了。但是为什么?
最佳答案
您提到您正在创建一个新的存储库。
虽然答案和评论也是正确的,但您很可能是唯一与存储库交互的人。您需要 pull ,因为您在 GitHub (this is likely the tutorial you followed) 上使用 README 初始化了存储库。
如果您没有使用 README 初始化存储库,这意味着 GitHub 没有首次提交“README.md”,您将拥有一个可以直接推送到的完全空的存储库。
GitHub 有这个选项的原因 最有可能帮助开始新项目的用户(例如您自己)在 GitHub 上通过 pull 设置存储库后非常容易地开始/clone 并进行初始提交,允许您快速添加新文件并推送。
此外,通过使用 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
提交)阻止了您在不 pull 的情况下进行推送 作为您的本地存储库与 GitHub 上的存储库不同步。
关于git - 为什么 Git 要我先 pull 再推?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33458665/