博客 PUSH 踩坑+ SSH 实践解决问题

# 博客 PUSH 踩坑+ SSH 实践解决问题

# 背景

自己在push自己的博客的时候,发现一直卡在 total 中上传失败,查看了很多方法有说是缓存超了,让我去修改一下最大缓存容量,或者是使用 ssh 上传

  • 因为对ssh上传还是比较陌生,于是使用了很多别的方式,例如改 git 缓存、换仓库等都没成功,并且最终定位问题是 blog 项目生成的 dist 文件有问题,但具体是什么问题我还没搞清楚。算是浪费了两个小时的时间了
  • 晚上休息好后,不忍心就这样结束,于是打算试试 ssh 的方式看看能不能把文件传上去
  • 现在是 2024-02-26 0:09 分,已经测试过了,使用 https 依然等很久还是在 total 没反应,但改用 ssh 后直接就上传通过了!!!
  • 🚀 SSH 传输过程不知道是不是我这个仓库的问题,writing 的时候很慢要等很久

# 过程

经过

  1. 一开始自己是知道本地有一个 公钥,使用命令行 ls ~/.ssh 就能看到存在 pub 文件,使用 vim 打开文件后,进入 vision 模式进行了 copy
  2. 接着到 github 中把之前不用的 ssh key 都删了,新增了自己这个 key ,理论上这样就能直接 clone 项目了,但很遗憾还是被拒绝了(到现在为止 我都还觉得 ssh 还是比较麻烦的事)
  3. 上网搜了一下,决定重新生成一下 本地密钥,然后再试一次,接着就很轻松地成功了!
    1. 本地生成 ssh 密钥后,将公钥 copy 到 github 中,再次执行 clone 就可以了。
    2. 对比了两次的 pub,发现很大的原因在于第一次的 密钥的用户邮箱不是当前 git 账户的邮箱,导致失败了

成功的详细步骤

  1. 如果想要 备份 本地的密钥就进去文件夹中 copy 到其他文件夹中,因为是 .ssh 文件,不会明文展示这个文件夹出来,得自己设置 windows 的文件夹相关配置或者使用命令行访问
  2. 接着无论本地是否有 密钥,执行语句都会重新生成并且覆盖之前的密钥:ssh-keygen -t rsa -b 4096 -C "your_Email"
  3. 此时 去 copy 对应的公钥
  4. 到 github -->settings --> SSH and GPG keys -->new SSH key 中进行 公钥粘贴,这样就完成了 SSH 的配置
  5. 接下来直接到 git 中 clone 即可成功
    1. 为什么这样就能成功呢?是 检测到 git 的 用户名和邮箱 匹配吗?还是会自动到 文件夹 中寻找私钥进行匹配呢?
    2. 具体的依赖是谁得弄清楚,不是说去扒它的原理,而是至少知道他受谁影响!

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 即可,至于为什么会出现这个问题以及为什么加上这个命令就能解决,得后续再花时间去梳理了