16

在 github 上进行开发时,我经常在我的 master 分支中维护一个html/_site/子目录,在那里我为项目生成基于 Web 的文档。我想切换到我的 gh-pages 分支,并将pull这个html目录的内容切换到 gh-pages 分支的根目录,这样它将通过 github 呈现为一个不错的网站(它会自动在gh-pagesat 中呈现 html username.github.com/repositoryname)。执行此操作的最佳工作流程是什么?

如果我还没有设置 gh-pages 分支,我可以分支,清除分支,然后复制html目录的内容,然后,我已经准备好了一个站点。但我不确定以后如何最好地更新 gh-pages 分支。

git branch gh-pages
git checkout gh-pages
# Remove files I don't need from the gh-pages branch
rm -rf data/ man/ R/ README.md NEWS NAMESPACE DESCRIPTION demo/
# move documentation to the root
mv inst/doc/html/* .
# remove the rest
rm -rf inst/
git add *
git commit -a -m "gh-pages documentation"
git push origin gh-pages
git checkout master

现在我应该怎么做才能稍后更新 gh-pages 分支?听起来这可能涉及子树合并,但我不太确定。

4

1 回答 1

14

要启动您的 gh-pages 分支:

true | git mktree | xargs git commit-tree | xargs git branch gh-pages

要获取您想要的任何内容,请从主分支、读取树和提交中说 html 目录:

git checkout gh-pages
git read-tree master:html
git commit -m'gh-pages documentation'
git push origin gh-pages
git checkout master

你就完成了。

后期添加:添加到 gh-pages 分支的顺序更短:

git commit-tree -p gh-pages -m "" master:html \
| xargs git update-ref refs/heads/gh-pages

不需要刷新当前工作树

于 2012-05-14T22:02:34.510 回答