将本地master *推入github上的* gh-pages分支

时间:2013-12-05 22:09:55

标签: git github github-pages

我在github和我的本地仓库中创建了一个简单的gh-pages分支。我使用自动页面生成器来创建它使用的5个文件:      图片javascripts stylesheets index.html params.json

我把它拉到我的本地仓库并将js-markdown-extra.js添加到javascripts,并编辑了index.html以用markdown库创建的已编译的README.md替换“content”部分。

使用虚拟README.md显示它可以正常工作。

想要然后只需将我的本地主人推入(不是)远程gh-pages分支,而无需修改5个网站文件。

我还没有办法做到这一点。通过http://oli.jp/2011/github-pages-workflow/告诉我这可行:git push -f origin master:gh-pages

我在测试回购中尝试了这个并且它失败了,导致了404(推送了为降价技巧修复的本地gh页面)

所以有一种方法可以将主推入,作为gh-pages的一个子集?

如果失败了,是否有一种简单的方法可以在不删除5个网站文件的情况下将主页合并到本地页面?

我知道如何“镜像”所有这些东西,所以5个文件将在回购中,但我想避免那种混乱。

4 个答案:

答案 0 :(得分:27)

根据我的理解,您必须切换到本地的gh页面副本。合并为master,然后按gh-pages

git checkout gh-pages
git merge master
git push origin gh-pages

答案 1 :(得分:9)

如果我理解正确,您似乎在本地主分支上创建了虚拟自述文件和其他文件,但是打算将它们放在gh-pages分支上。如果是这种情况,最安全的选择是将您的主分支合并到gh-pages分支中(假设您没有其他文件在master上,您宁愿不在gh-pages分支上)。建议git push -f origin master:gh-pages命令将您的本地主分支推送到gh-pages分支。我不太确定你的意思,但是对于vs,因为分支名称只是git中的指针。

答案 2 :(得分:1)

这是一个很好的写作github pages workflow,我曾经理解如何在master和gh-pages分支之间进行交互。

来自谷歌的paul爱尔兰人在另一篇文章的评论中推荐它 - 它有超级清晰的例子。

答案 3 :(得分:1)

作为一种替代方法,如何使用git subtree 作为您的gh-pages分支?

git checkout master
git subtree push --prefix . origin gh-pages

根据source code上的 git-subtree 文档:

  

子树允许子项目包含在主项目的子目录中,可以选择包括子项目的整个历史记录。

在我们的情况下,我们也许能够为与主分支的虚拟副本相同的路径(根路径; .)起别名(不过我尚未对其进行测试)。

顺便说一句,在this gist遇到cobyism之后,我发现了子树。