记一次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
注:这里的
例如我要把博客放在D盘blog文件夹里面的codeanime文件夹里,就在blog文件夹右键,git bash here,
注意是在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
本地测试
//先本地预览
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
然后创建SSH,一路回车
ssh-keygen -t rsa -C "youremail"
注意C是大写。
这个时候它会告诉你已经生成了.ssh的文件夹。在你的电脑中找到这个文件夹(在C:\Users\你的用户名)。
ssh,简单来讲,就是一个秘钥,其中,id_rsa
是你这台电脑的私人秘钥,不能给别人看的,id_rsa.pub
是公共秘钥,可以随便给别人看。把这个公钥放在GitHub上,这样当你链接GitHub自己的账户时,它就会根据公钥匹配你的私钥,当能够相互匹配时,才能够顺利的通过git上传你的文件到GitHub上。
而后在GitHub的setting中,找到SSH and GPC keys
的设置选项,点击New SSH key
把你的id_rsa.pub
里面的信息复制进去,title随便填写。
测试
// 正式部署hexo clean && hexo g && hexo d
其他
期间测试的时候会出现登陆github账号的提醒,正常登陆登陆就行了
踩坑:
报错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
- 后续操作如下图
- 重新提交
hexo clean && hexo g && hexo d
大功告成
本文作者: CodeAnime
本文链接: https://codeanime.cc/%E8%AE%B0%E4%B8%80%E6%AC%A1Hexo%E5%8D%9A%E5%AE%A2%E8%BF%81%E7%A7%BB%E8%87%B3%E5%8F%A6%E4%B8%80%E5%8F%B0%E7%94%B5%E8%84%91.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!