如何在新的git分支gh-pages中包含来自主分支的文件?GitHub

13

GitHub有一个功能,如果您在项目中创建了一个名为gh-pages的新分支,您可以发布“项目页面”。完整的描述请参见http:// pages.github.com/

我的项目只是HTML / 图像,所以我只想提供主分支。

那么,我如何创建一个名为gh-pages的新分支,它与主分支完全相同? 一些链接操作吗?

谢谢

3个回答

20

您想让 GitHub 存储库中的 'gh-pages' 分支与 'master' 分支相同。最简单的解决方案是配置 git 自动将 'master' 分支推送到 'gh-pages' 分支。

假设您要推送到的 GitHub 存储库已配置为 'origin' 远程,您可以执行以下操作:

$ git config --add remote.origin.push +refs/heads/master:refs/heads/gh-pages

或者,如果您愿意,您可以直接编辑.git/config文件。

然后,当您执行git pushgit push origin时,您将把您存储库中的'master'分支推送到GitHub存储库中的'gh-pages'分支。

请参阅git-push manpage以获取有关refspec格式的文档和描述。


你是说“gh-pages”而不是“hg_pages”吧。 - coderintherye
我发现这对于 git push 命令非常有效,但是我无法让它与 GitHub for Mac 的任何操作配合使用(Commit、Commit & Sync、Sync,甚至是 Repository 菜单中的 Push)。是否有类似于 git config 行的配置适用于 git pull --rebase 命令,就像 GitHub 应用程序所做的那样(参见 http://mac.github.com/help.html)? - James Chevalier
@JamesChevalier:它应该适用于任何推送,无论是从命令行还是从GUI。但它不会影响pull - Jakub Narębski
但是这种方式只会推送分支origin/gh-pages,而origin/master保持不变,我还需要在配置中添加[...] +refs/heads/master:refs/heads/master。我错了吗? - cYrus
@cYrus:这样主分支将被推送到 gh-pages 分支。 - Jakub Narębski

2

这实际上是git branch命令的默认行为。在“pages”文档中列出的更复杂的symbolic-refclean命令需要避免执行此操作。

因此,在您的项目根目录下,位于主分支:

git branch gh-pages
git checkout gh-pages

或者只需:
git checkout -b gh-pages

如果我更新主分支,gh-pages会反映这些更新吗?如果我向gh-pages添加一些文件,它是否仍然会从主分支获取更新? - git
1
不,你需要使用 git merge 命令将更改和文件从一个分支移动到另一个分支。请参阅 http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html#_managing_branches 以了解如何使用分支的详细说明。 - Ash Wilson

0
创建您的存储库的本地克隆,创建一个名为gh-pages的新本地分支,然后将该新本地分支推送到您的存储库上的gh-pages分支。
git clone git@github.com:<username>/<project>.git
cd <project>
git checkout -b gh-pages
git push origin gh-pages

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接