美文网首页临时收藏收藏Hexo
利用Hexo在多台电脑上提交和更新github pages博客

利用Hexo在多台电脑上提交和更新github pages博客

作者: Michaelhbjian | 来源:发表于2017-09-07 14:19 被阅读2338次

    最初是在实验室里建立了自己的博客,然后有时候回到寝室里想提交博客,于是在网上搜了很多帖子总结出这个方法。

    主要的思路是 利用git分支实现

    hexo生成的静态博客文件默认放在master分支上。
    hexo的源文件(部署环境文件)可以都放在hexo分支上(可以新创建一个hexo分支),换新电脑时,直接git clone hexo分支git@github.com:Michaeljian/Michaeljian.github.io.git)即可。

    一、hexo搭建博客原理

    hexo博客的部署环境目录:


    image.png

    hexo博客的目录结构解析:


    image.png
    上传到github上的文件:
    image.png

    1.hexo帮助把博客发送到github,同时把md文件转换成网页文件。
    2.hexo目录下的文件和github上的文件是不同的,public文件夹的文件通过hexo d 上传到github去了,其他的文件则留在本地目录下。

    二、实验室PC上的操作

    1.准备工作

    首先确保自己已经使用hexo在github搭建好了自己的个人博客,github仓库中如下图显示:

    image.png

    2.对username.github.io仓库新建hexo分支,并克隆

    在Github的username.github.io仓库上新建一个xxx分支,并切换到该分支,并在该仓库->Settings->Branches->Default branch中将默认分支设为xxx,save保存;然后将该仓库克隆到本地,进入该username.github.io文件目录。


    image.png image.png
    完成上面步骤后,在当前目录使用Git Bash执行git branch命令查看当前所在分支,应为新建的分支xxx:
    $ git branch
    *hexo
    
    hexo.png

    3.将本地博客的部署文件拷贝进username.github.io文件目录

    如题,先将本地博客的部署文件(Hexo目录下的全部文件)全部拷贝进username.github.io文件目录中去。

    接下来,进入username.github.io文件目录下,将该目录下的全部文件提交到xxx分支,提交之前需注意:

    • 将themes目录以内中的主题的.git目录删除(如果有),因为一个git仓库中不能包含另一个git仓库,提交主题文件夹会失败。
    • 可能有人会问,删除了themes目录中的.git不就不能git pull更新主题了吗,很简单,需要更新主题时在另一个地方git clone下来该主题的最新版本,然后将内容拷到当前主题目录即可

    4.提交hexo分支

    执行git add .git commit -m 'back up hexo files'(引号内容可改)、git push即可将博客的hexo部署环境提交到GitHub个人仓库的xxx分支。

    现在可以在GitHub上的username.github.io仓库看到两个分支的差异了。

    image.png image.png

    master分支和xxx分支各自保存着一个版本,master分支用于保存博客静态资源,提供博客页面供人访问;xxx分支用于备份博客部署文件,供自己维护更新,两者在一个GitHub仓库内互不冲突,完美!

    三、宿舍自己的电脑

    至此,你的博客已经可以在其他电脑上进行同步的维护和更新了,方法很简单:

    • 将新电脑的生成的ssh key添加到GitHub账户上
    • 在新电脑上克隆username.github.io仓库的xxx分支到本地,此时本地git仓库处于xxx分支
    • 切换到username.github.io目录,执行npm install(由于仓库有一个.gitignore文件,里面默认是忽略掉 node_modules文件夹的,也就是说仓库的hexo分支并没有存储该目录[也不需要],所以需要install下)
    image.png

    到这里了就可以开始在自己的电脑上写博客了!

    • 编辑、撰写文章或其他博客更新改动
    • 依次执行git add .git commit -m 'back up hexo files'(引号内容可改)、git push指令,保证xxx分支版本最新
    • 执行hexo d -g指令(在此之前,有时可能需要执行hexo clean),完成后就会发现,最新改动已经更新到master分支了,两个分支互不干扰!

    四、回到实验室PC更新并提交博客

    ** 注意: 每次换电脑进行博客更新时,不管上次在其他电脑有没有更新,最好先git pull**

    image.png

    按照之前的方法写自己博客,
    然后将目录切换下username.github.io下,此时需要安装一下npm install
    最后执行hexo ghexo shexo d等命令即可提交成功

    参考资料:
    Erick
    [theqwang'blog]

    相关文章

      网友评论

      • 834de7a92a49:是不是都使用hexo提交blog?不管哪台电脑都是使用hexo分支提交blog
        Michaelhbjian:@赛迦 是的
      • 小欧lq:新建分支克隆下来之后,可以把本地静态网页的文件删除,再复制吧
      • 小欧lq:分支上的.deploy_git文件夹下面的git也要删除吧
        Michaelhbjian:@小欧lq 你按照教程中的步骤来看
      • 834de7a92a49:新电脑是不是使用hexo的分支发布?用的多的主电脑是用master吧?那么新电脑的_config文件的branch设置应该是hexo吗
        Michaelhbjian:@赛迦 可以就用hexo分支,不用master分支
      • 奇梦人:博主 我问一下如果在windows生成的源文件能在mac上用来发布吗 ?
        Michaelhbjian:@虫子文子 应该是可以的
      • 小新GG:楼主, 非常感谢, 按照您的方法尝试成功了 但是有个疑问, gitpage读取的是master上的静态资源文件 还是 hexo分支上的文件啊
        Michaelhbjian:@小新GG有收获就好😉 ,应该是master上面的
      • 天涯浪子ou:兄台,你这个是只能在自己的电脑上写博客,然后还要回到你实验室的电脑去发布?
        Michaelhbjian:@天涯浪子ou 不需要的,实验室和宿舍都是一样的操作
      • 麦迪_老牛了:有空试试你的方法,很详细,有心了
        Michaelhbjian:@麦迪_53c6 谢谢了😉😉
      • 县太爷阿:写的很详细 在公司电脑(hexo环境电脑)操作过了 准备回家试一下
        Michaelhbjian:@县太爷阿谢谢
      • 熊小匠:换电脑后,需要添加sshkey,但本身GitHub账户已经有一个sshkey了,
        Michaelhbjian:@是拾一 github上可以添加多个sshkey,这个是不影响的
      • 拾忆者:请问这样做是github上的默认branch一直是XXX吗?
        Michaelhbjian:@圣僧留步 也行😉
        圣僧留步:我一般都不切换分支,直接重新创建一个新的仓库,把本地的Blog文件全部上传到新创建的仓库,每次去新仓库拉取和推送,就可以了。
        Michaelhbjian:@拾忆者 在github改了之后就是XXX分支
      • TonyCode:这样的话,xxx不但有部署文件还有静态资源,master还有什么用处吗?直接一开始都把本地的静态资源加上部署文件都push进master可以吗?求指教下。
        Michaelhbjian:@Tonye
        这样是可以,但是还是要做分支处理。
      • 小妍妍说:这个很666啊
        Michaelhbjian:@小妍妍说 你的评论让我大吃一惊😅😅
      • 8e2fe413a741:第二步的时候,git branch啥反应也没有,咋回事呀?
        Michaelhbjian: @Wang超阳 嗯嗯好的,多谢你的建议。
        8e2fe413a741:@Michaelhbjian 新建了 PC上的操作第2步说的不是很详细 希望能补充 感谢!
        Michaelhbjian:@Wang超阳 你在github上新建了hexo分支没有呢
      • 2b64128eec8c:用了你的方法不行
        Michaelhbjian:@yujiajia 你看哈配置哪里出现了问题
        2b64128eec8c: @Michaelhbjian 有一台电脑可以了,令一台不行
        Michaelhbjian: @yujiajia 你的哪里出了问题呢?

      本文标题:利用Hexo在多台电脑上提交和更新github pages博客

      本文链接:https://www.haomeiwen.com/subject/oicijxtx.html