12

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

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

我不知道如何做到这一点 - 我尝试在_site目录中添加一个 git repo 以将其推送到gh-pages但每次运行jekyll它都会删除整个目录并且我丢失了.git文件夹。

有什么建议么?还是一种本地排序的方法?

4

2 回答 2

11

一个不那么痛苦的解决方案:

  1. 检查您的分支,您的构建源所在的位置(可能是src,或master
  2. (可选:添加_site到您的.gitconfig,因此如果尚未完成,则将其忽略)
  3. 删除目录的所有内容_site

    $ rm -r _site/*

  4. 将 repo 的gh-pages分支克隆到_site目录中:

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

最后步骤:让 jekyll 构建、提交和推送:

$ jekyll build,

光盘进入_site

$ cd _site,

将所有文件作为提交的目标:

$ git add -A,

提交他们:

git commit -am 'Yeah. Built from subdir'

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

git push.

于 2016-03-04T14:06:58.923 回答
1

I did this for a while myself with a shell script.

Solution 1.

Create a .gitignore that excludes the _site/ folder. Then have your shell script check whether you are on master, if so, add all changed files and commit them. Then move the _site/ folder to a temporary folder. Switch to the gh-pages branch and copy the temporary folder over. Add all and commit. Push both master & gh-pages branch.

Solution 2. Copy the contents of the _site/ folder to another repo that is an exact clone of the repo you are working with but checked out on the gh-pages branch. Then simply push the master branch from the source repo and the gh-pages branch from the other repo

于 2013-07-27T08:26:56.697 回答