我在GitHub上有一个回购。最近我发现了GitHub的页面,我想用它们
我想创建这个新分支,然后在需要时,在master
分支或gh-pages
分支上提交。
我该怎么做?我是否必须在我的仓库中创建另一个文件夹?
答案 0 :(得分:35)
更新版本的git可以替代Chandru解释的git symbolic-ref
方法。这避免了必须使用较低级别的命令。
git checkout --orphan gh-pages
git rm -rf .
答案 1 :(得分:27)
您可能会发现本教程很有用:
对我来说,这种方法似乎比每次想要编辑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