从另一个子目录更新分支的根目录

时间:2012-05-14 19:56:09

标签: git github

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

如果我还没有设置gh-pages分支,我可以分支,清除分支,并复制html目录和presto的内容,我准备好了一个站点。但我不确定以后如何最好地更新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分支?听起来这可能涉及subtree merging,但我不太确定。

1 个答案:

答案 0 :(得分:13)

开始你的gh-pages分支:

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

要获取您想要的任何内容,请说明主分支中的html目录,read-tree和commit:

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

不需要刷新当前工作树