我在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个文件将在回购中,但我想避免那种混乱。
答案 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 文档:
子树允许子项目包含在主项目的子目录中,可以选择包括子项目的整个历史记录。
在我们的情况下,我们也许能够为与主分支的虚拟副本相同的路径(根路径; .
)起别名(不过我尚未对其进行测试)。