问题提出

每次重装系统或者换设备,由于我菜,我都只能重新安装hexo然后再去复制那些_config之类的文件。

在更深入地了解之后,简单整理了一下流程。

操作办法

首次部署指路:从零搭建 Hexo + Github 博客 | Venus’ Blog

我按照此方法部署,根目录为\Blog,博客内容根目录\Blog\SaltA

前置准备

  1. Git - Downloads (git-scm.com)
  2. Node.js (nodejs.org)

开始实践

  1. 重新配置GitHub的SSH

    1. 打开git-bash.exe.
    2. 输入生成ssh命令ssh-keygen -t rsa -C "your_email@example.com",四次回车。
    3. GitHub生成SSH Key,内容来自C:\Users<用户名>.ssh\id-rsa.pub`文件。
  2. 给博客安装环境

    1. 打开cmd,进入\Blog.
    2. \Blog中执行npm install hexo-cli.
    3. 进入\Blog\SaltA,执行npm install以及npm install hexo-deployer-git --save.
  3. 上传至GitHub仓库

    1. 设置好_config.yml,因为一直在云盘里不是重新部署所以我不用设置。

    2. 使用git bash配置Git:

      • git config --global user.email "your_email@example.com"
      • git config --global user.name "your_username"
    3. 尝试上传hexo g&hexo d

      相关问题:FATAL: unable to access ‘https://github.com/username/username.github.io.git‘: failed to connect to github.com port 443 after 21106 ms: couldn’t connect to server

      使用https远程连接至仓库可能会因为网络等原因带来诸多不便。
      建议使用SSH远程连接至仓库。

      并且建议使用git-bash来完成例如(npx) hexo g -d等操作。

  4. 恭喜完成重新部署。

后记

Git使用SSH连接

问题提出

可能在安装好Git之后,会默认使用https为控制用于克隆 GitHub 仓库的协议。

问题解决

  1. 确保已经安装好Git并且配置好email和name等信息。

  2. 打开终端,输入ssh -T git@github.com

    相关问题:若出现警告
    The authenticity of host ‘github.com (20.205.243.166)’ can’t be established.
    ECDSA key fingerprint is SHA256:<SHA256>.
    Are you sure you want to continue connecting (yes/no/[fingerprint])?

    输入yes确认即可。

    此时返回
    Hi You’ve successfully authenticated, but GitHub does not provide shell access.
    则说明配置成功。

  3. 通过git remote -v可以查看当前仓库的链接方式是https还是SSH

VSCode的Git插件上传到仓库 (errno 10054)

问题提出

我真的好喜欢利用VSCode的工作区来管理Git仓库啊。

我还有些别的用法,比如管理我的CDN,CDN仓库本地有一份,配置好之后VSC上推送同步(对,我甚至不需要图床,还是本地整理好上传,因为放OD里面,东西多了释放空间即可),但是一开始Git上传,会出现无法同步等问题。我遇到比较多的是errno 10054

问题解决

  1. 其实可以说还是和上面那个同样的问题,传不上去到Github,VSC默认使用的控制用于克隆 GitHub 仓库的协议也是https
  2. 打开设置Ctrl + ,,搜索框内搜索SSH,筛选出的列表中选择GitHub,会发现有一条设置叫做Github: Git Protocol(控制用于克隆 GitHub 仓库的协议),修改为ssh
  3. 重启VSC,问题应该解决。
  4. 注:可能需要登录并授权VSC、Git插件与GitHub连接的权限。