Git 常见错误 之 error: src refspec main does not match any
参考文章:https://blog.csdn.net/u014361280/article/details/109703556
一、简单介绍
Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
本节介绍,Git 在 push 时报错的一个简单解决方法,报错提示信息:
error: src refspec main does not match any
error: failed to push some refs to https://github.com/user/repo.git
二、错误详情
- 在 github 新建一个工程,假设远程仓库地址为
https://github.com/user/repo.git - 本地关联远程仓库:
cd /path/to/your/project git init git remote add origin https://github.com/user/repo.git git pull origin main - 修改项目详情
- 提交项目修改
git add . git commit -m "some change" git push --set-upstream origin main - 报错:
error: src refspec main does not match any error: failed to push some refs to 'https://github.com/user/repo.git'
原因分析
由于仓库名称不一样,导致远程和本地的仓库不能关联上。GitHub 将默认分支名称从 master 改为 main 的决定受到了 Black Lives Matter (BLM) 运动的影响。以下是详细原因:
社会运动的影响:Black Lives Matter 运动在全球范围内引起了对种族不平等和系统性种族主义的广泛关注。许多公司和组织开始审视其内部的语言和行为规范,以消除可能带有种族歧视或压迫历史的术语和做法。GitHub 的这一改变就是这种背景下的一个重要举措。
语言的力量:语言在塑造文化和社会认知方面具有强大力量。术语 master 在历史上与奴隶制中的“主人”角色相关联,虽然在技术领域中并无意涉及这种含义,但其使用可能无意间强化了不平等和压迫的历史记忆。为了避免这种潜在的负面影响,技术社区开始推动使用更中性的术语。
企业社会责任:GitHub 和其母公司 Microsoft 都表达了对多样性和包容性的承诺。更改默认分支名称是展示其对社会正义和包容性支持的具体行动之一。这一改变不仅是响应社会运动的呼声,也是公司内部多样性和包容性政策的一部分。
因此,GitHub 在 2020 年 10 月 1 日 将默认分支名称从 master 改为 main,不仅是为了技术上的清晰和一致性,更是为了回应社会对种族平等和正义的呼声,体现公司对包容性和多样性的支持。
解决方案
一、修改当前项目的分支
- 查看当前分支:
git branch,应该会是master - 将当前分支名称改为
main:git branch -m master main - 之后即可统一本地分支和远程分支
二、修改git初始化分支名称
将git工具初始化的分支名称修改为main即可在之后的所有项目都使用main分支为默认主分支,命令:git config --global init.defaultBranch main
