【问题标题】:github how to include files from master in new git branch gh-pagesgithub如何在新的git分支gh-pages中包含来自master的文件
【发布时间】:2010-12-14 21:10:50
【问题描述】:

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

我的项目只是html/images,所以我只想为master分支服务。

那么我如何创建一个名为 gh-pages 的新分支,它只是 master 的精确副本? 某种链接操作?

谢谢

【问题讨论】:

    标签: git github


    【解决方案1】:

    您希望 GitHub 存储库中的分支“gh-pages”与“主”分支相同。最简单的解决方案是配置 git 以自动将分支“master”推送到“gh-pages”。

    假设您推送到的 GitHub 存储库配置为“源”远程,您可以这样做:

    $ 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'
    • 我发现这非常适用于 git push 命令,但我无法让它与任何 GitHub for Mac 操作(提交、提交和同步、同步或甚至来自存储库菜单的Push)。 GitHub 应用程序执行的git pull --rebase 命令是否有类似的git config 行(根据mac.github.com/help.html)。
    • @JamesChevalier:它应该适用于任何推送,无论是从命令行还是从 GUI。不过,它根本不影响 pull
    • 但是这样只会推送分支origin/gh-pages,而origin/master保持不变,我必须在配置中添加[...] +refs/heads/master:refs/heads/master。我错了吗?
    • @cYrus: 这样master就会被推送到gh-pages中
    【解决方案2】:

    这实际上是git branch 命令的默认行为。需要您在“页面”文章中看到的更复杂的 symbolic-refclean 命令来避免这样做。

    因此,在您的项目根目录下,在 master 分支上:

    git branch gh-pages
    git checkout gh-pages
    

    或者只是:

    git checkout -b gh-pages
    

    【讨论】:

    • 所以如果我更新 master,gh-pages 会反映更新吗?如果我将一些文件添加到 gh-pages,它还会从 master 获得更新吗?
    • 不是自动的,不;您必须使用git merge 将更改和文件从一个分支移动到另一个分支。请参阅kernel.org/pub/software/scm/git/docs/… 了解如何使用分支的详细说明。
    【解决方案3】:

    为您的存储库创建一个本地克隆,创建一个名为 gh-pages 的新本地分支,然后将该新本地分支推送到您的存储库,位于分支 gh-pages

    git clone git@github.com:<username>/<project>.git
    cd <project>
    git checkout -b gh-pages
    git push origin gh-pages
    

    【讨论】:

      猜你喜欢
      • 2013-09-01
      • 2021-08-01
      • 2011-06-12
      • 2013-12-23
      • 2012-04-16
      • 2015-06-27
      • 1970-01-01
      • 1970-01-01
      • 2019-09-16
      相关资源
      最近更新 更多