【问题标题】:error: src refspec main does not match any error: failed to push some refs to <url>错误:src refspec main 不匹配任何错误:未能将一些引用推送到 <url>
【发布时间】:2021-02-12 12:32:39
【问题描述】:
  1. 为了练习使用 Github,我在计算机上创建了一个新目录,我想将其推送到 Github。
  2. 我添加了一个 .csv 文件,没有其他任何内容。
  3. 我在没有初始化 README 的情况下在 Github 上创建了一个新的存储库。
  4. 我 cd 进入该目录,然后在终端中使用以下命令:

git init

git add file1.csv

git commit -m "First commit"

git remote add origin &lt;Github url from Quick Setup page&gt;

git push -u origin main

我收到以下错误:

error: src refspec main does not match any

error: failed to push some refs to &lt;url&gt;

我在寻找解决方案时遇到了这个问题:git error: failed to push some refs to remote 选择的答案是:

如果 GitHub 存储库已经看到新的提交被推送到它,而你 在本地工作,我建议使用:

git pull --rebase origin master

git push origin master

我不明白的是,为什么我的计算机上的 new 目录和 new 存储库会发生这种情况?没有对 Github 上的 repo 进行任何提交,所以我为什么要git pull?我什至尝试使用新的空目录和新的空仓库(再次)来执行此操作,但得到了相同的结果。

【问题讨论】:

  • 这可能是由于拼写错误。从技术上讲,这个错误意味着 repo 是空的或者没有提交。
  • 您的新存储库具有一个新提交,创建了一个新分支名称。为什么你认为这个新的分支名称是main?默认的新分支名称实际上是master。你必须采取一些特殊的行动来改变这一点。 (未来的 Git 版本可能具有不同的初始默认名称,但目前仍为 master。)

标签: git github


【解决方案1】:

这是mastermain 争议的不愉快结果。

您的本地 GIT 客户端创建了一个名为 master 的默认分支(当您使用 git init 初始化存储库时),但 GitHub 上的远程存储库没有 master - 而默认分支称为 main


解决方案 A - 如果你想将分支命名为 master

运行git push -u origin master 而不是 git push -u origin main

解决方案 B - 如果您想将分支命名为 main

运行git checkout -B main 之前 git push -u origin main

【讨论】:

  • 原来如此。我再次重复了这个过程,但这次我使用了git push -u origin master,它成功了。谢谢!
  • @IamWarmduscher 呃,你必须每次都这样做吗??
  • @KalebCoberly 你没有。仅此一次,当您将本地存储库连接到源时。
  • @IamWarmduscher,哈哈,谢谢。我正是这个意思。我想现在 GitHub 与 Git 一起 git 为时已晚,为我们省去了所有的麻烦。
  • 当我运行git checkout -B main 然后git push -u origin main 我得到error: failed to push some refsUpdates were rejected because the remote contains work that you do hint: not have locally
猜你喜欢
  • 2012-09-09
  • 2022-12-06
  • 2022-07-14
  • 2017-03-05
  • 2018-05-30
  • 2014-02-11
  • 2013-03-28
  • 2023-01-30
相关资源
最近更新 更多