error: failed to push some refs to 'github.com:******'
有两次报这种错误经历,原因之一是两边的分支名称对不上。
git branch -m master main
master 是 github 老的默认分支名称,新的一般都是 main
了。而国内有很多代码新创建时,仍然以 master
作为主要的默认分支,因此这个错误相当常见。
另一个原因是线上、线下有冲突,此时可通过先拉后提交的方式解决:
git pull --rebase origin main
当初代码一直放在 github 上,但跟不同的团队合作,aliyun、gitee……
这导致每次在处理的公私钥时都相当麻烦
在本机上加个配置文件,让不同的代码库使用不同的公钥
$ cd ~/.ssh // 进入 ssh 的根目录
$ touch config // 创建 config 文件(没扩展名)
$ vim config // 编辑 config 文件(按 i 进行编辑,按 esc,然后输入 :wq 进行退出)
在里面输入如下代码
# GitHub
Host github.com
HostName github.com
User 你的用户名
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_rsa(你的密钥文件)
# aliyun
Host code.aliyun.com
HostName code.aliyun.com
User 你的用户名
PreferredAuthentications publickey
IdentityFile ~/.ssh/aliyun_rsa(你的密钥文件)
多个的情况,按上面的格式往下添加即可。vim 退出需要按 esc
后输入 :wq
回车,然后就输入下面代码进行验证下:
ssh -T git@github.com
最后,如果你之前未创建或只有默认公钥的话,可按如下进行创建:
$ ssh-keygen -t rsa -C 你的邮箱
没意外终端里会出现:
Enter file in which to save the key (/Users/用户名/.ssh/id_rsa):
此时输入想要的用户名,如:github_rsa
,之后会有两次让你输入密码,可直接回车。最后查看下刚才创建的公钥:
$ ls // 无意外你刚才创建的文件,应该就在列(会有两个文件,一个带扩展名一个不带)
$ cat ~/.ssh/github_rsa.pub // 查看刚才创建的文件内容,把它复制出来,到相应的平台粘贴即可