使用Hexo搭建博客,备份至GitHub过程

来源:互联网 发布:算命准吗 知乎 编辑:程序博客网 时间:2024/05/21 00:46

参考资料:

使用hexo,如果换了电脑怎么更新博客?
https://www.zhihu.com/question/21193762
其中,最多赞回答(转至其博文):
http://crazymilk.github.io/2015/12/28/GitHub-Pages-Hexo%E6%90%AD%E5%BB%BA%E5%8D%9A%E5%AE%A2/#more

Q:如何本地直接删除文件后,git到远程仓库,远程仓库也删除了对应文件?
A1:“git到远程仓库”是指什么?一般你在本地删除了文件,之后commit,再push到远程,对应的文件肯定就删掉了。
A2:例如删除github上的 .DS_Dtore 文件的执行操作,进入到对应目录,在终端中执行以下操作
git rm –cached filename
git commit -m “hehe”
git push origin
执行完毕,刷新一遍github,你会发现此时想要删除的文件已经消失了。


1、在需要创建 .gitignore 文件的文件夹, 右键选择Git Bash 进入命令行,进入项目所在目录。
2、输入 touch .gitignore ,生成“.gitignore”文件。
3、在”.gitignore” 文件里输入你要忽略的文件夹及其文件就可以了。(注意格式)
我的 .gitignore:

.deploy_git/
node_modules/
public/

某知乎回答,其.gitignore文件:

db.json
debug.log
node_modules/
public/
.deploy_git/

参考用:
我在新建一个文件夹 hexo init 后出现了一个.gitignoren文件,文件内容为:

.DS_Store
Thumbs.db
db.json
*.log
node_modules/
public/
.deploy*/


我的备份方式

在github上新建一个GitHub Page:strivebo.github.io,正如知乎上的回答,在这个仓库下,另外新增加一个hexo分支,并且设置该分支为主分支。

这样,master用来上传hexo搭建的博客编译好的博客,hexo分支用来备份源文件,包括theme、.md等文件。

完整操作如下:(摘自知乎回答)
1. 创建仓库,strivebo.github.io;
2. 创建两个分支:master 与 hexo;
3. 设置hexo为默认分支(因为我们只需要手动管理这个分支上的Hexo网站文件);
4. 使用git clone git@github.com:strivebo/strivebo.github.io.git拷贝仓库;
5. 在本地strivebo.github.io文件夹下通过Git bash依次执行npm install hexo、hexo init、npm install 和 npm install hexo-deployer-git(此时当前分支应显示为hexo);
6. 修改_config.yml中的deploy参数,分支应为master;
7. 依次执行git add .、git commit -m “…”、git push origin hexo提交网站相关的文件;
8. 执行hexo generate -d生成网站并部署到GitHub上。

个人已出此坑:第 5 步中特别要注意,hexo init会清空.git 文件夹(即版本控制信息会丢失)
所以我的做法是:
第 4 步完成后,先拷贝出.git文件夹,等第 5 步完成后,再粘贴.git文件进去。

此外,如何出现提示 no ** develop 什么的,不太记得,需要使用 npm install hexo-deployer-git –save

  • 日常修改
    在本地对博客进行修改(添加新博文、修改样式等等)后,通过下面的流程进行管理:
    依次执行git add .、git commit -m “…”、git push origin hexo指令将改动推送到GitHub(此时当前分支应为hexo);
    然后才执行hexo generate -d发布网站到master分支上。
    虽然两个过程顺序调转一般不会有问题,不过逻辑上这样的顺序是绝对没问题的(例如突然死机要重装了,悲催….的情况,调转顺序就有问题了)。

  • 本地资料丢失
    当重装电脑之后,或者想在其他电脑上修改博客,可以使用下列步骤:
    使用git clone git@github.com:strivebo/strivebo.github.io.git拷贝仓库(默认分支为hexo);
    在本地新拷贝的strivebo.github.io文件夹下通过Git bash依次执行下列指令:npm install hexo、npm install、npm install hexo-deployer-git(记得,不需要hexo init这条指令)。

另外:
我还会新建一个仓库,如 hexo-blog ,专门用来备份本地 .md 等源文件,这些博客文件丢失最难受了。因为上面用的分支方式,最后是多次尝试我是成功了,但是在成功之前我失败了好多次,然后导致删了仓库重新再来,所以我对分支方式还是不太保险,对每一步操作和涉及的文件的含义还未完全明白。所以干脆另建一个仓库再次备份吧,步骤如下:

  1. github上新建 hexo-blog 仓库
  2. 电脑上打开 Git Bash,输入 git clone 仓库地址 ,克隆下仓库至本地计算机
  3. 然后需要的备份的文件全都拷贝到刚刚克隆下来的 hexo-blog 仓库内,然后进行 git add . 、git commit -m “” 、git push origin master 上传至远程仓库hexo-blog上。
    注:当然也可以拷贝所有文件包括 public、.deploy_git 文件夹至刚刚克隆下来的仓库hexo-blog中,但是记得新增一个 .gitignore文件,内容参照文章最上面的有关回答。其作用大概是上传github远程仓库时,忽略其中指定的文件及文件夹。