65

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

我怎样才能做到这一点?我是否必须在我的仓库中创建另一个文件夹?

4

9 回答 9

39

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

git checkout --orphan gh-pages
git rm -rf .
于 2011-01-23T04:34:32.610 回答
34

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

将 GitHub Pages 的“gh-pages”分支和“master”分支设置为父项目文件夹(“grandmaster”)的子文件夹

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

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

于 2011-02-14T15:10:57.663 回答
11

在您的本地克隆上,

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

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

于 2011-01-20T17:41:49.573 回答
4

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

有关更多信息,请查看

于 2017-07-20T16:24:21.343 回答
2

像这样发布一个静态站点:

git subtree push --prefix www origin gh-pages

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

于 2017-10-28T20:47:24.183 回答
1

手动创建项目页面

如果您习惯于使用命令行 git,则手动为项目添加一组新页面是一个简单的过程。

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

于 2013-02-27T16:28:08.630 回答
1

您的 gh-pages 和 master 分支是否具有完全相同的文件夹结构?如果是这种情况,你为什么还要有两个分支?只需维护一个 gh-pages 分支!但是,如果出于某种原因您希望两个分支不断同步,那么您最好的选择是使用git rebase. 见这里: http:
//lea.verou.me/2011/10/easily-keep-gh-pages-in-sync-with-master/

您也可以只从 master 中挑选出您需要的文件,然后使用git checkout. 见这里: http:
//oli.jp/2011/github-pages-workflow/#gh-pages-workflow
http://nicolasgallagher.com/git-checkout-specific-files-from-another-branch/

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

我的建议是创建 gh-pages 作为一个--orphan分支,并且只在其中包含可发布的材料。您必须在不同的本地目录中从 master 克隆,git checkout --orphan gh-pages用于创建 gh-pages,然后使用git rm -rf .. 在添加仅发布文件后,您可以从那里继续并推送到 gh-pages。有关更多信息,请参阅 Github 文档:
https ://help.github.com/articles/creating-project-pages-manually/

祝你好运

于 2015-11-11T22:51:50.653 回答
0

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

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

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

于 2015-11-23T01:36:31.537 回答
0

我用这个

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

您可以查看工作版本https://github.com/rofrol/closeyoureyesnow/blob/master/build_and_deploy.sh

于 2019-11-22T11:59:18.793 回答