关于git操作
生成SSH密钥
RSA-4096 Ed25519 ECDSA-521生成密钥对后再到 GitHub/Gitee 添加公钥;点击下方按钮可跳转 SSH 笔记查看各算法细节。
- RSA-4096(兼容性最好,老系统/旧服务首选)
1 | ssh-keygen -t rsa -b 4096 -C "your_email@example.com" |
- Ed25519(安全性高、密钥短,推荐)
1 | ssh-keygen -t ed25519 -C "your_email@example.com" |
- ECDSA-521(安全与兼容的折中方案)
1 | ssh-keygen -t ecdsa -b 521 -C "your_email@example.com" |
- 多账户场景务必用 -f 指定独立密钥文件名,与下文配置文件中的 IdentityFile 一一对应
1 | ssh-keygen -t rsa -b 4096 -C "xxxx@qq.com" -f ~/.ssh/giteeqq_id_rsa |
- 回车后按提示选择保存路径并设置 passphrase(口令,可留空),生成两个文件:
私钥:
/.ssh/id_rsa(或 id_ed25519),绝不外传/.ssh/id_rsa.pub(或 id_ed25519.pub),可放心添加到网站
公钥: - 查看公钥内容并复制,粘贴到 GitHub 的 Settings -> SSH and GPG keys 或 Gitee 的 设置 -> SSH公钥
1 | cat ~/.ssh/id_rsa.pub |
- passphrase 忘记无法找回,只能重新生成密钥并重新添加公钥。
SSH验证
- 验证本地生成的ssh,github或者gitee端密钥是否添加成功,输入如下命令
1 | ssh -T git@github.com |
首次连接会提示 Are you sure you want to continue connecting (yes/no)?,输入 yes 即可将主机指纹写入 ~/.ssh/known_hosts。
2. 如果添加成功就会显示如下语句
Hi Username! You’ve successfully authenticated, but GitHub does not provide shell access.
Hi Username! You’ve successfully authenticated, but GITEE.COM does not provide shell access.
- Username:是你在 Git 端的名称
同一台电脑上多个github或gitee账户
同一台电脑有两个github账号或者两个gitee账号,配置如下都相同
- 请参考:gitee文档 配置文件如下
1 | # ===== ~/.ssh/config 文件(Windows 实际路径:C:\Users\你的用户名\.ssh\config)===== |
- 文件中有多个
xxx或aaaaa都是需要修改处,如果需要验证添加SSH是否成功,测试代码如下,对应上面配置文件
1 | ssh -T git@gitee.com |
依此类推有多少个gitee或github就配置多少个,特别注意 xxxx_id_rsa 不能配置为相同文件名。
补充:若某账户密钥被错误尝试,可在对应 Host 段添加 IdentitiesOnly yes,强制只使用 IdentityFile 指定的密钥;克隆/推送时也要使用别名主机,如 git clone git@xxxx.gitee.com:用户名/仓库名.git,不能直接用 gitee.com。
git 问题
- GitHub Desktop 使用ssh推送或者下拉时候报错 Authentication failed. Some common reasons include:
解决方法:
可以尝试关闭路径 File->Options->Advanced->SSH的选项->Use system OpenSSH 选项
- fatal: unable to access ‘git/‘: Send failure:Connection was reset
解决方法:
为了将来参考,我通过重新打包解决了这个问题:
git repack --max-pack-size=100M -a -d

git指令
git remote 指令
git remote 命令用于管理 Git 仓库中的远程仓库。
git remote 命令提供了一些用于查看、添加、重命名和删除远程仓库的功能。
1 | git remote 列出当前仓库中已配置的远程仓库。 |
使用方法:
查看当前的远程仓库URL
1 | git remote -v |
添加远程仓库URL
1 | git remote add origin https://xxxxx.git |