我可以为GitHub Pages创建多个仓库吗?

174
我在GitHub上创建了一个用于托管博客的存储库。
有没有办法我可以创建额外的存储库来托管多个博客,还是因为username.github.io只能使用一次,所以我只能限制在一个存储库中?
9个回答

236

您可以通过将内容发布到名为“username.github.io”的存储库的主分支来将一个站点发布到https://<username>.github.io(替换为您的实际用户名)。

您还可以在每个GitHub项目中拥有一个额外的站点,发布到https://<username>.github.io/<project>。项目设置允许您选择要发布的分支和目录

GitHub页面文档中提供了更好的描述,包括使用自定义域名的选项。

自2013年4月起,所有username.github.com现在都是username.github.io


9
现在可以在任何代码仓库的主分支上创建一个页面。 - KieranPC
Stephen,gh-pages分支是什么意思?我已经将我的网站推送到上面提供的项目存储库的主分支,但是我收到了错误提示“这里没有GitHub Pages网站。” - Krishna Oza
默认情况下,您将GitHub Pages网站推送到名为“gh-pages”的分支而不是“master”,但有一个存储库设置可以发布主分支。请参阅选择发布源的文档以获取详细说明。 - Stephen Jennings
项目站点默认会发布您推送到“gh-pages”分支的任何内容。但是,“gh-pages”不会自动发布为页面。您可能需要转到“设置”>“页面”,并确保“源”选择了分支和文件夹,否则您将收到404错误。 - idbrii
你能够托管的网站数量是否有限制?比如说,如果限制是3个,如果你想要托管第四个网站,就必须先关闭前三个中的一个。 - Layhout

33

您并不受限制,可以在一个账户内拥有多个GitHub Pages站点。创建另一个GitHub仓库,并将您的网站文件推送到gh-pages分支。这将使该站点托管在tshepang.github.io/repo-name上。

现在,在同一代码库和分支中再次推送一个名为“CNAME”的文件,并将其填入movies.tshepang.net。登录您的DNS主机并添加CNAME以指向“tshepang.github.io”(就像原始站点一样)。

这将允许您在不同域上似乎拥有两个不同的站点。这对于在github.io本身中具有两个或更多子域不起作用。


1
我只看到一个分支,即主分支,没有创建名为“gh-pages”的分支。 - Krishna Oza
2
@KrishnaOza 你需要自己创建 gh-pages 分支才能使其工作。 - Ozichukwu

22

如果您可以接受代码重复的话,那么有可能在同一个仓库中托管多个具有 子页面 的页面。

我的网站最新版本是托管在http://username.github.io/REPONAME

这是我托管最新版本网站的根仓库结构截图:

Repository root folder

在文件夹 “2.4.0” 中,我可以托管该页面的先前版本 ,然后可以通过以下方式访问: http://username.github.io/REPONAME/2.4.0 这是文件夹2.4.0的结构: Repository folder 2.4.0

使用这种在主页面中嵌套子页面的方法,您可以在一个主页面中托管多个子页面。


5
您的每个 GitHub 帐户只能创建一个用户或组织站点,无论是用户帐户还是组织拥有的项目站点都是无限制的。
GitHub Pages 站点有三种类型:project、user 和 organization。Project sites 与在 GitHub 上托管的特定项目(如 JavaScript 库或食谱集合)相关联。User 和 organization 站点与特定的 GitHub 帐户相关联。
要发布用户站点,您必须创建一个由您的用户帐户拥有并命名为 .github.io 的存储库。要发布组织站点,您必须创建一个由组织拥有并命名为 .github.io 的存储库。除非您使用自定义域,否则用户和组织站点可以在 .github.io 或 .github.io 的 http(s):// 下访问。
项目站点的源文件存储在与其项目相同的存储库中。除非您使用自定义域,项目站点可以在 .github.io/ 或 .github.io/ 的 http(s):// 下访问。
您的 GitHub Pages 站点的发布源是存储网站源文件的分支和文件夹。如果默认发布源存在于您的存储库中,则 GitHub Pages 将自动从该源发布站点。用户和组织站点的默认发布源是存储库的默认分支根目录。项目站点的默认发布源是 gh-pages 分支的根目录。

1

如果您不想为不同的站点创建单独的存储库,而只是想将它们托管起来,我找到了一个解决方法。在您的io存储库中,在主分支上创建一个作为目录的索引文件index.html,链接到其他站点(子目录)的index.html文件。username.github.io主分支似乎是启用托管的登陆页面,因此,如果它没有看到链接到您的单独项目的索引文件,则不会注册您的子目录。完成后,您只需要使用URL即可查看所需的项目。io基本上就像一个巨大的单一网站,其中包含您所有的单独项目。当然,如果您宁愿拥有单独的存储库,gh-pages是一个好选择。


0
今天我创建了另一个网站,而不是创建 gh-pages 分支,我已经在存储库设置中配置了主分支——> GitHub 页面部分选择源为主分支(或任何其他分支)。您将在同一部分中获得站点链接,在我的屏幕截图中,我已删除了站点链接。

enter image description here


0
这个方法可行,但是 SSL 仍然需要解决。 在我的情况下,我的域名托管在 GoDaddy 上(url1.xyz),使用名称服务器指向 Cloudflare。然后在 Cloudflare 中,A 记录指向 Github Pages。这是网站一的正常运行页面。对于网站二,我在 gh-pages 存储库中创建了一个子目录,并放置了网站二的文件,例如 url1.xyz/static/website2/。然后在 Cloudflare 中创建一个子域名(subdomain.url1.xyz)。然后创建一个页面规则(URL 转发),将子域名转发到包含第二个网站的子目录中,例如 subdomain.url1.xyz >> mask forward >> url1.xyz/static/website2/。然后在 GoDaddy 中,我可以配置 url2.co.uk,以掩盖转发到 subdomain.url1.xyz,从而呈现网站二,例如 url1.xyz/static/website2/。

0

补充一下上面的内容。通过一个 Github 用户账户(https://< username >.github.io),我们仍然可以托管多个静态内容网站,这些网站具有不同的自定义域名(例如:domain1.com、domain2.com、domain3.com)。我们只需为每个域名创建一个新的存储库,并将 A 记录指向 Github Pages IP,将 CNAME 记录指向 < username >.github.io。


-1

您可以在您的Github账户中创建多个博客。

  1. 您可以在您的用户名下创建一个仓库。将您的代码推送到分支gh-pages,您就可以在<username>.github.io上看到网站了。

  2. 您还可以在您的组织下创建另一个仓库。为此,您需要先创建您的组织。在该组织下创建一个新的仓库,并将您的代码推送到gh-pages。您可以在<organization-name>.github.io上看到您的网站。

  3. 您还可以为每个项目创建一个网站,该网站将在<username>.github.io/<repository>上提供。

有关Github页面的更多信息,请参见this


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