2

我使用Jekyll和自定义Coderay,所以我必须在 GitHub 上维护 2 个分支

master; The generated HTML site
source; Markdown files, etc

source分支上,我有一个_includes我忽略的文件夹,因为它只包含一些硬链接。我有一个脚本来管理 2 个分支,但似乎应该有比我想出的更好的东西。

# Start on "source" branch
jekyll /tmp
git checkout master
git stash -u # _includes
rm -r * # keeps ".git"
cp -r /tmp/* .
git add -A
git commit
git push origin master
git checkout source
git stash apply
4

1 回答 1

1

选项1

对我来说更好的选择是完全摆脱硬链接。我通过制作一个允许在 repo 之外呈现文件的插件来做到这一点。

render_partial.rb

module Jekyll
    class IncludeTag < Liquid::Tag
        def initialize(tag_name, file, tokens)
            super
            @file = file.strip
        end
        def render(context)
            File.read(@file)
        end
    end
end
Liquid::Template.register_tag('render_partial', Jekyll::IncludeTag)

选项 2

如果您想保留硬链接,此选项将起作用。

help.github.com/ignore-files

#!/bin/sh
# Initial setup, configure excludes
cat > .git/info/exclude <<EOF
_includes
_site
EOF
# Commit source branch
git checkout source
git add -A
git commit -m 'new post'
git push origin source
# Commit master branch
jekyll
git checkout master
git rm -r .
cp -r _site/* .
git add -A
git commit -m 'new post'
git push origin master
于 2012-05-24T20:40:01.957 回答