git branch:gh-pages

时间:2011-01-20 17:36:02

标签: git git-branch github-pages

我在GitHub上有一个回购。最近我发现了GitHub的页面,我想用它们 我想创建这个新分支,然后在需要时,在master分支或gh-pages分支上提交。

我该怎么做?我是否必须在我的仓库中创建另一个文件夹?

9 个答案:

答案 0 :(得分:35)

更新版本的git可以替代Chandru解释的git symbolic-ref方法。这避免了必须使用较低级别的命令。

git checkout --orphan gh-pages
git rm -rf .

答案 1 :(得分:27)

您可能会发现本教程很有用:

Setup GitHub Pages "gh-pages" branch and "master" branch as subfolders of a parent project folder ("grandmaster")

对我来说,这种方法似乎比每次想要编辑gh页面内容时git checkout gh-pages更简单。让我知道你的想法^ _ ^

编辑:我更新了教程链接 - 感谢@Cawas。旧的tuotial(不推荐)是https://gist.github.com/825950

答案 2 :(得分:9)

在您的本地克隆上,

git symbolic-ref HEAD refs/heads/gh-pages
rm .git/index 
git clean -fdx

然后,git checkout gh-pages并写下你的页面。当您准备发布页面时git push origin gh-pages

答案 3 :(得分:2)

发布如下静态网站:

git subtree push --prefix www origin gh-pages

其中www是您的静态文件所在的doc根目录。 您的静态网站现在位于: https://[user_name].github.io/[repo_name]/

答案 4 :(得分:1)

  

手动创建项目页

     

手动为项目添加一组新页面非常简单   如果您习惯使用命令行git。

https://help.github.com/articles/creating-project-pages-manually

答案 5 :(得分:1)

还有另一个问题的解决方案:忘掉gh-pages和分支;放置应该在/docs目录中提供的静态文件,然后转到项目设置并告诉github提供/docs内容。

有关详细信息,请查看this

答案 6 :(得分:0)

您的gh-pages和master分支是否具有完全相同的文件夹结构?如果是这种情况,为什么你甚至想要两个分支?只需维护一个gh-pages分支!但是如果出于某种原因你希望两个分支都经常同步,那么最好的办法就是使用git rebase。见这里:
this tutorial

您还可以使用git checkout的特殊用例,仅从master中选择您需要的文件并将其推送到gh页面。见这里:
http://lea.verou.me/2011/10/easily-keep-gh-pages-in-sync-with-master/
http://oli.jp/2011/github-pages-workflow/#gh-pages-workflow

由于不得不解决同样的问题,我发现gh-pages通常最终会拥有与master不同的代码库。换句话说,gh-pages应该只包含项目的dist / build / publish文件夹的内容,而master将包含你的配置文件,无限制的脚本和样式等。

我的建议是将gh-pages创建为--orphan分支,并且只包含发布就绪的材料。您必须在不同的本地目录中从主服务器克隆,使用git checkout --orphan gh-pages创建gh页面,然后使用git rm -rf .删除所有不必要的文件。从那里开始,您可以在添加仅发布文件后继续推送到gh页面。 有关更多信息,请参阅Github文档:
http://nicolasgallagher.com/git-checkout-specific-files-from-another-branch/

祝你好运

答案 7 :(得分:0)

典型的方法是切换分支:git checkout master如果你想在master上工作,git checkout gh-pages如果你想在gh-pages上工作。

从git 2.5开始,您可以同时检出两个分支(在不同的目录中)。见https://github.com/blog/2042-git-2-5-including-multiple-worktrees-and-triangular-workflows。通过git worktree add -b gh-pages ../gh-pages origin/gh-pages进行设置。

奖励:如果master结帐的子目录内容是gh-pages的内容,请使用https://github.com/X1011/git-directory-deploy提供的脚本。

答案 8 :(得分:0)

我用这个

git push origin `git subtree split --prefix build`:$DEPLOY --force

您可以看到有效版本https://github.com/rofrol/closeyoureyesnow/blob/master/build_and_deploy.sh