在GitHub Pages中无法更改源分支

47

我已经为GitHub Pages创建了一个简单的网站。网站的源代码位于“master”分支中,生成的网站(我想要发布的内容)位于“gh-pages”分支下。

分支

我原本期望能够在设置中更改网站的源代码。然而,该选项是灰色的?我无法更改它(见下面的截图)。我做错了什么?我如何切换到“gh-pages”分支?

输入图像说明


1
你找到解决这个问题的方法了吗? - Abdullah Khan
现在的方式太过有限了。例如,我刚把我的主分支从 master 改成了 v1,但是文档只能从 master 分支生成,即使该分支不存在。我希望它可以允许按分支构建站点文档。这对于记录版本并能够预览尚未在主分支中发布的新版本将非常棒。 - Vadorequest
3个回答

53
个人或组织网站使用master进行构建,gh-pages分支用于构建项目的网站。
就我所看到的,您正在使用https://user-name.github.io/ URL,这是个人URL,因此master分支是默认的。
请参见文档页面

如果您的站点是名为<username>.github.io<orgname>.github.io的用户或组织页面,则您无法从不同位置发布站点的源文件。具有此类型的存储库名称的用户和组织页面仅从主分支发布。

因此答案是否定的,您不能更改它。您需要调整工作流程,在另一个分支(我们称其为development)上进行开发,并在准备好发布时合并到master中。 更新: 现在已经到了2020年,根据2020年7月31日的情况,GitHub Pages允许您配置任何分支作为旧的masterGitHub页面构建分支选择器

感谢@Anton提供的详细信息。我希望能够在主分支下拥有网站源代码,而在gh-pages下生成网站。看来我误解了这个工作原理。 - Martin
4
有人找到了解决这个问题的方法吗? - Fernando B
1
如果我想从根目录 /docs 文件夹部署呢?在一个 Vue.js 项目中,静态文件会被构建到哪里呢? - Akin Hwan
1
从2020年开始,我的问题是我创建了一个名为“<username>.github.io”的repo,而github设置强制我只停留在主分支上。我去改变了我的仓库名称,使其不再以“github.io”结尾,然后我就能够切换过去了。现在唯一的问题是内容转移到了https://<username>.github.io/<newname-for-repo>/。 - Saif Ul Islam

4

以下是我使用Next.jsgh-pages发布个人网页(即https://user-name.github.io)的设置:

  1. 在您的存储库中创建一个不同的默认分支以进行工作(例如develop
  2. 构建站点的静态导出文件:next build && next export
  3. 在导出目录中放置一个.nojekyll标记文件:touch out/.nojekyll
  4. 将静态导出文件上传到主分支:gh-pages -t -b master -d out

您可以在package.json中捆绑这些命令,以获取方便的yarn deploy命令:

scripts: {
  ...
  "build": "next build",
  "export": "yarn run build && next export",
  "deploy": "yarn export && touch out/.nojekyll && gh-pages -t -b master -d out"
  ...

0

好的,如果你正在使用angular-cli-ghpages,它默认会创建一个名为gh-pages的新分支并将其发布。

现在,作为一个初学者,如果你正在使用https://user-name.github.io/,并且希望你的应用程序从你的user-name.github.io的主分支发布,你可以按照以下步骤进行操作。

  1. 使用以下命令创建生产环境可用的构建:

    ng build --prod --base-href "/user-name.github.io/"
    
  2. 使用 angular-cli-ghpages 将应用部署到 master 分支,具体操作如下:

    angular-cli-ghpages --branch=master
    
希望这能有所帮助。

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