使用Hexo搭建博客,备份至GitHub过程(基于网上资料的实践操作)
参考资料:
使用hexo,如果换了电脑怎么更新博客?
https://www.zhihu.com/question/21193762
其中,最多赞回答(转至其博文):
http://crazymilk.github.io/2015/12/28/GitHub-Pages-Hexo搭建博客/#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等文件。
完整操作如下:(摘自知乎回答)
- 创建仓库,strivebo.github.io;
- 创建两个分支:master 与 hexo;
- 设置hexo为默认分支(因为我们只需要手动管理这个分支上的Hexo网站文件);
- 使用git clone git@github.com:strivebo/strivebo.github.io.git拷贝仓库;
- 在本地strivebo.github.io文件夹下通过Git bash依次执行npm install hexo、hexo init、npm install 和 npm install hexo-deployer-git(此时当前分支应显示为hexo);
- 修改_config.yml中的deploy参数,分支应为master;
- 依次执行git add .、git commit -m “…”、git push origin hexo提交网站相关的文件;
- 执行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 等源文件,这些博客文件丢失最难受了。因为上面用的分支方式,最后是多次尝试我是成功了,但是在成功之前我失败了好多次,然后导致删了仓库重新再来,所以我对分支方式还是不太保险,对每一步操作和涉及的文件的含义还未完全明白。所以干脆另建一个仓库再次备份吧,步骤如下:
- github上新建 hexo-blog 仓库
- 电脑上打开 Git Bash,输入 git clone 仓库地址 ,克隆下仓库至本地计算机
- 然后需要的备份的文件全都拷贝到刚刚克隆下来的 hexo-blog 仓库内,然后进行 git add . 、git commit -m “” 、git push origin master 上传至远程仓库hexo-blog上。
注:当然也可以拷贝所有文件包括 public、.deploy_git 文件夹至刚刚克隆下来的仓库hexo-blog中,但是记得新增一个 .gitignore文件,内容参照文章最上面的有关回答。其作用大概是上传github远程仓库时,忽略其中指定的文件及文件夹。
更多推荐
所有评论(0)