将IntelliJ项目推送至GitLab时报src refspec master不匹配错误
推送GitLab时报
src refspec master does not match any的排查方案 这个报错的核心意思很直白:Git在你本地仓库里,根本找不到你指定要推的master分支的引用,自然没办法把内容推到远程仓库。结合你执行git init、git add .、git commit、关联远程、推送的完整操作流程,常见的触发原因和对应解决方法如下:
- 最高发的触发原因:本地默认主分支名和推送时指定的分支名对不上
新版Git(2.28及以上版本)初始化仓库时,默认生成的主分支名是main,不再是旧版本默认的master。你走完所有初始化、提交流程后,本地实际存在的分支是main,压根没有master分支,执行git push -u origin master当然找不到匹配的目标。
对应解决操作:- 先执行
git branch看本地实际有哪些分支,确认输出显示的是main后,二选一处理就行:- 直接把本地分支名改成
master:执行git branch -m master,改完再执行git push -u origin master就能正常推送 - 不改名直接推:执行
git push -u origin main:master,把本地main分支的内容映射推到远程的master分支
- 直接把本地分支名改成
- 先执行
- 次高发的触发原因:之前的
git commit操作根本没生效
如果提交时没提前配置Git的用户身份信息、提交过程被意外中断,会导致git add .暂存的内容没有真正生成有效提交记录。空仓库没有任何提交的话,是不存在任何分支引用的,这时候执行推送就会报这个错。
对应排查和解决操作:- 执行
git log看能不能查到之前的提交记录,如果没有任何输出,说明提交确实没成功 - 先检查Git身份配置是不是完整:分别执行
git config user.name、git config user.email,如果没有输出,先执行下面的命令完成配置:git config --global user.name "你的GitLab用户名"git config --global user.email "你的GitLab注册邮箱" - 重新执行
git add .、git commit -m "你的提交信息",确认提交成功之后再执行推送命令
- 执行
- 容易漏查的小问题:远程仓库关联配置写错了
你记录的关联远程命令末尾多了一个多余的单引号:git remote add origin https://gitlab.com/xxxxxx/tmp.git',如果执行命令时真的带了这个多余字符,会导致远程配置异常。可以执行git remote -v检查输出的origin地址对不对,如果有错误,先执行git remote remove origin删掉错的配置,再输正确的远程地址重新关联就行。
额外提醒:如果新建的GitLab仓库一开始就自动生成了README、.gitignore这类初始化文件,第一次推送前需要先执行
git pull origin master --rebase把远程的内容拉到本地合并,再执行推送,否则会因为远程内容不匹配触发其他报错。
内容的提问来源于stack exchange,提问作者Xutv
相关产品推荐
相关产品推荐

