记一次Hexo博客迁移至另一台电脑

本文最后更新于:2021年9月3日 晚上

记一次Hexo博客迁移至另一台电脑

安装Node.js

下载地址见这里
然后正常安装。
安装完成后,输入node -v和npm -v,如果出现版本号,那么就安装成功了。

安装git

下载地址见这里
然后正常安装,只不过最后一步添加路径时选择Use Git from the Windows Command Prompt,这样我们就可以直接在命令提示符里打开git了。
安装完成后在命令提示符中输入git —version验证是否安装成功。

最好把nodejs和git都配置到环境变量里

安装 Hexo

所有必备的应用程序安装完成后,即可使用 npm 安装 Hexo。

$ npm install -g hexo-cli

安装 Hexo 完成后,请执行下列命令,Hexo 将会在指定文件夹中新建所需要的文件。

$ hexo init <folder>
$ cd <folder>
$ npm install

注:这里的是文件夹名,新搭建的hexo的小伙伴估计都被坑过

例如我要把博客放在D盘blog文件夹里面的codeanime文件夹里,就在blog文件夹右键,git bash here,

image-20210903184956484

注意是在blog文件夹,然后执行命令:

hexo init codeanime
cd codeanime
npm install

新建完成后,指定文件夹的目录如下:

.
├── _config.yml
├── package.json
├── scaffolds
├── source
|   ├── _drafts
|   └── _posts
└── themes

将原来的文件拷贝到新电脑中

需要拷贝的文件有:

_config.yml, theme/, source/, scaffolds/, package.json, .gitignore

下面是这些文件的作用:

_config.yml:整个站点的配置,包括基本介绍,所使用的主题,关联的仓库等;
theme/:所用的主题以及主题的配置;
source/:目前所写的所有文章以及404页面等;
scaffolds/:Hexo所提供的模板文件;
package.json:说明站点使用了哪些包;
gitignore:放置在git端时忽略的文件;

需要删除的文件

.git, node_modules/, public/, .deploy_git/, db_json

这些文件的作用:

.git:git的配置,关联文件夹等,由于我们已经换了电脑,所以之前的配置应该被舍弃掉;
node_modules/:在用npm install时会重新生成;
public/:在用hexo generate时会重新生成;
.deploy_git/:在用hexo deploy时会重新生成;
db.json:站点的一些数据文件;

其实这些文件就是.gitignore中写的可以被忽略的内容】

然后进入你的博客目录(我的是codeanime文件夹),右键git bash here,执行命令

// 安装其他一些必要的组件
npm install hexo-deployer-git --save

npm install hexo-generator-feed --save

npm install hexo-generator-sitemap --save

Snipaste_2021-09-03_18-34-21

本地测试

//先本地预览
hexo clean

hexo g

hexo s

//此时可以先在localhost:4000 本地预览博客,如果不报错,那就说明迁移成功

部署到Github

生成SSH添加到GitHub

在你的博客文件夹中打开git bash,复制一下代码

git config --global user.name "yourname"
git config --global user.email "youremail"

内容换成你自己的Githuby用户名和邮箱。
执行一下两条指令,检查你有没有输入正确。

git config user.name
git config user.email

Snipaste_2021-09-03_18-35-59

然后创建SSH,一路回车

ssh-keygen -t rsa -C "youremail"

注意C是大写。

Snipaste_2021-09-03_18-36-35

这个时候它会告诉你已经生成了.ssh的文件夹。在你的电脑中找到这个文件夹(在C:\Users\你的用户名)。

image-20210903191034203

ssh,简单来讲,就是一个秘钥,其中,id_rsa是你这台电脑的私人秘钥,不能给别人看的,id_rsa.pub是公共秘钥,可以随便给别人看。把这个公钥放在GitHub上,这样当你链接GitHub自己的账户时,它就会根据公钥匹配你的私钥,当能够相互匹配时,才能够顺利的通过git上传你的文件到GitHub上。

而后在GitHub的setting中,找到SSH and GPC keys的设置选项,点击New SSH key
把你的id_rsa.pub里面的信息复制进去,title随便填写。

image-20210903191453344

image-20210903191543487

测试

// 正式部署hexo clean && hexo g && hexo d

其他

期间测试的时候会出现登陆github账号的提醒,正常登陆登陆就行了

Snipaste_2021-09-03_18-10-28

踩坑:

报错1:hexo d时出现ERROR deployer not found: git

ERROR Deployer not found: git

解决方案

这是因为没安装hexo-deployer-git插件,在站点目录下输入下面的插件安装就好了:

npm install hexo-deployer-git --save

然后在使用Hexo d命令就可以推送了。

错误2:hexo报错spwan failed

报错2

FATAL {  err: Error: Spawn failed      at ChildProcess.<anonymous> (/usr/local/src/hexo/cairbin/node_modules/hexo-util/lib/spawn.js:51:21)      at ChildProcess.emit (events.js:376:20)      at Process.ChildProcess._handle.onexit (internal/child_process.js:277:12) {    code: 128  }} Something's wrong. Maybe you can find the solution here: %s https://hexo.io/docs/troubleshooting.html

解决方案

  • 进行以下处理
##进入博客根目录(以我的为例)cd /usr/local/src/hexo/cairbin/##删除git提交文件夹rm -rf .deploy_git/git config --global core.autocrlf false
  • 最后重新生成提交
hexo clean && hexo g && hexo d

报错3

! [remote rejected] master -> master (push declined due to email privacy restrictions)

解决方案

  • 这是因为你的github设置出了问题
  • 浏览器进入github.com
  • 登陆github -> “+” ->settings
  • 后续操作如下图

image-20210903194424285

  • 重新提交
hexo clean && hexo g && hexo d

大功告成