原文: Error: src refspec master does not match any – How to Fix in Git
在使用 Git 时,你可能会遇到 “src refspace master does not match any” 的错误。
下面是这个错误的含义,以及如何解决它。
Git 中的 src refspec master does not match any
是什么意思
当你试图从本地仓库触发推送到主仓库时,你可能会遇到这样的错误:
git push origin master
这个错误可能是由不同原因引起的。
最有可能出现这种错误的原因是,master
分支不存在。
也许你克隆了一个新的仓库,默认的分支是 main
,所以当你试图推送时,没有 master
分支。
你可以用 git branch -b
命令来显示连接到本地仓库的远程分支,像这样:
git branch -b
# results
# origin/main
# origin/feat/authentication
# origin/other branches ...
在上面的结果中,你可以看到没有 master
仓库(origin/master
)。所以当你试图推送到该仓库时,你会得到 “respec error”。
这个结果也适用于任何其他不存在的分支。比方说,我做了一些修改,并推送到一个不存在的远程 hello
分支:
git add .
git commit -m "new changes"
git push origin hello
该命令将产生以下错误:
error: src refspec hello does not match any
如何修复 “src refspec master does not match any” 错误
现在你已经知道 master
分支并不存在。解决这个错误的办法是,要么建立一个本地和远程的 master
分支,以便推送提交,要么将提交推送到一个现有的分支——也许是 main
。
你可以在 Git 驱动的网站(比如 GitHub)上创建一个远程 master
分支,也可以像这样直接在终端上创建:
git checkout -b master
# add commit
git push origin master
这些命令将在本地创建一个 master
分支。而通过推送到 origin master
,也会在远程创建 master
分支。
但如果你不想创建一个 master
分支,你可以使用现有的默认分支(可能是 main
)来代替。
总结
所以,如果你在推送到主干时遇到 Error: src refspec master does not match any
,最可能的原因是 master
分支不存在。