Hexo多终端同步及发布至Github

本文章首发于个人博客,欢迎点击阅读。

因为有两台电脑的关系,很多东西都需要同步,一般文件比较小的会用Onedrive,文件比较大的比如Hexo会选择用GitHub(主要贫穷的我只有5G的免费空间)。
相比于其它普通文件夹直接push就可以同步,这个就稍微麻烦一点,因为整个文件夹里有多个含有git的文件夹。
而在第一次直接把跟目录push上去以后,甚至遇到了这个网站yueyue200830.github.io的github全部被覆盖。
当时整个人内心都十分崩溃。。。

解决方法之概念

首先,我们需要了解一下hexo是如何push到github上的

在根目录寻找一圈后,会发现有一个.deploy_git的文件夹,打开发现和github上面的文件完全一样。
没错了,hexo就是直接编译在这个文件夹生成文件,然后push到github上面。

然而,不要高兴太早,如果单纯的push为什么换电脑是覆盖而不是有任何的conflict信息呢?

.deploy_git文件夹在打开git bash,输入git remote -v,发现竟然什么也没有???

介于自己完全不熟练git命令,打开了外部有同步的文件夹同样输入git remote -v,是会得到以下显示的
git remote命令
虽然不清楚发生了什么(对不起,我就是一个git小白)。。但是可以知道我们git仓库没有github上面的信息
也就是每次hexo在deploy的时候,是直接把整个仓库替换上去的(好粗暴呀。。)

而再去看一下整个项目的github,发面默认的gitignore里把.deploy_git添加上了。
也就是说同步的时候根本没有任何之前发布的信息,所以当换了一台电脑的时候就会遇到如此崩溃的事情了。

解决方法之实际操作

既然.deploy_git和项目各会同步在我的github上,那么与其取消ignore,不如在.deploy_git上添加远程仓库,每次更新前做一个同步。

.deploy_git文件夹的终端下输入以下内容,让其连接到github仓库(注意在最后加上.git

$ git remote add origin https://github.com/yueyue200830/yueyue200830.github.io.git

这个时候,我们再输入git remote -v,可以看到有信息了

再把remote和本地的进行一次同步:(应该用pull也可以)

$ git push origin master

这样,我们就在本地同步与github同步成功了,只需要再另一台电脑上也进行以下同步配置,之后每次换电脑的时候只需要两个文件夹各同步一下就可以啦。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章