如何将jekyll _site目录推送到gh-pages分支,并将源保留在master中?

时间:2013-07-24 13:48:27

标签: git github jekyll github-pages

我有一个由页面(不是帖子)组成的基本jekyll网站但是,因为我想在列出它们时对页面进行排序,所以我不得不使用Jekyll-Sort插件(有点奇怪的排序页面没有内置致jekyll)。

因为我正在使用插件,所以我无法利用GitHub的自动jekylling。所以我想将项目的源代码推送到master分支,只将_site目录推送到gh-pages分支。

我无法弄清楚如何执行此操作 - 我尝试在_site目录中添加git repo以将其推送到gh-pages,但每次运行jekyll时它都会删除整个目录,我丢失了.git文件夹。

有什么建议吗?还是一种本地排序方式?

2 个答案:

答案 0 :(得分:8)

一个不太痛苦的解决方案:

  1. 检查您的分支,您的构建源所在的位置(可能import android.content.res.Resources;src
  2. (可选:将master添加到您的_site,这样就会被忽略(如果尚未完成)
  3. 删除.gitconfig目录的所有内容:

    _site

  4. 将您的repo的$ rm -r _site/* 分支克隆到gh-pages目录:

    _site

  5. 最后的步骤:让jekyll构建,做提交&推:

    $ git clone -b gh-pages `git config remote.origin.url` _site

    cd 进入$ jekyll build

    _site

    定位提交的所有文件:

    $ cd _site

    提交它们:

    $ git add -A

    并将您的网站推送到GitHub-Pages:

    git commit -am 'Yeah. Built from subdir'

答案 1 :(得分:1)

我用shell脚本做了一段时间。

解决方案1。

创建一个排除_site /文件夹的.gitignore。然后让你的shell脚本检查你是否在master上,如果是,则添加所有已更改的文件并提交它们。然后将_site /文件夹移动到临时文件夹。切换到gh-pages分支并复制临时文件夹。添加全部并提交。推动主人和主人gh-pages branch。

解决方案2。 将_site /文件夹的内容复制到另一个repo,它是您正在使用的repo的精确克隆,但是在gh-pages分支上签出。然后只需从源repo推送master分支,从另一个repo推送gh-pages分支