git相关

Apr 9, 2022

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       // 查看刚才创建的文件内容,把它复制出来,到相应的平台粘贴即可