博客 PUSH 踩坑+ SSH 实践解决问题
# 博客 PUSH 踩坑+ SSH 实践解决问题
# 背景
自己在push自己的博客的时候,发现一直卡在 total 中上传失败,查看了很多方法有说是缓存超了,让我去修改一下最大缓存容量,或者是使用 ssh 上传
- 因为对ssh上传还是比较陌生,于是使用了很多别的方式,例如改 git 缓存、换仓库等都没成功,并且最终定位问题是 blog 项目生成的 dist 文件有问题,但具体是什么问题我还没搞清楚。算是浪费了两个小时的时间了
- 晚上休息好后,不忍心就这样结束,于是打算试试 ssh 的方式看看能不能把文件传上去
- 现在是 2024-02-26 0:09 分,已经测试过了,使用 https 依然等很久还是在 total 没反应,但改用 ssh 后直接就上传通过了!!!
- 🚀 SSH 传输过程不知道是不是我这个仓库的问题,writing 的时候很慢要等很久
# 过程
经过
- 一开始自己是知道本地有一个 公钥,使用命令行
ls ~/.ssh
就能看到存在 pub 文件,使用 vim 打开文件后,进入 vision 模式进行了 copy - 接着到 github 中把之前不用的 ssh key 都删了,新增了自己这个 key ,理论上这样就能直接 clone 项目了,但很遗憾还是被拒绝了(到现在为止 我都还觉得 ssh 还是比较麻烦的事)
- 上网搜了一下,决定重新生成一下 本地密钥,然后再试一次,接着就很轻松地成功了!
- 本地生成 ssh 密钥后,将公钥 copy 到 github 中,再次执行 clone 就可以了。
- 对比了两次的 pub,发现很大的原因在于第一次的 密钥的用户邮箱不是当前 git 账户的邮箱,导致失败了
成功的详细步骤
- 如果想要 备份 本地的密钥就进去文件夹中 copy 到其他文件夹中,因为是 .ssh 文件,不会明文展示这个文件夹出来,得自己设置 windows 的文件夹相关配置或者使用命令行访问
- 接着无论本地是否有 密钥,执行语句都会重新生成并且覆盖之前的密钥:
ssh-keygen -t rsa -b 4096 -C "your_Email"
- 此时 去 copy 对应的公钥
- 到 github -->settings --> SSH and GPG keys -->new SSH key 中进行 公钥粘贴,这样就完成了 SSH 的配置
- 接下来直接到 git 中 clone 即可成功
- 为什么这样就能成功呢?是 检测到 git 的 用户名和邮箱 匹配吗?还是会自动到 文件夹 中寻找私钥进行匹配呢?
- 具体的依赖是谁得弄清楚,不是说去扒它的原理,而是至少知道他受谁影响!
Git 相关命令
- ls -al ~/.ssh : 展示所有的ssh文件
- ssh-keygen -t rsa -b 4096 -C "your_Email : 生成 SSH 密钥对
- git config --list --show-origin: 展示所有的用户信息,包括用户名和邮箱
- git push --set-upstream origin <远程分支>: push 内容 并且追踪指定远程分支
Bug
- git pull 的时候出现:
fatal: refusing to merge unrelated histories
- 在对应命令行后面加上 :
--allow-unrelated-histories
即可,至于为什么会出现这个问题以及为什么加上这个命令就能解决,得后续再花时间去梳理了
- 在对应命令行后面加上 :