我该如何让GitHub Pages使用主分支(master branch)?

5
我有一个使用Jekyll搭建的静态网站,托管在GitHub上。问题是,我其实不需要主分支(master branch),因为仓库中唯一包含的就是网站。
这样一来,我必须先执行 git checkout gh-pages,然后执行 git merge master,最后再执行 git push origin gh-pages
是否有任何简单的方式可以摆脱gh-pages分支,直接从master分支推送(push)呢?

你为什么不直接在gh-pages分支上工作呢? - Dominik Honnef
3个回答

14

问题在于,我不需要主分支,因为仓库中唯一的内容就是网站。

有没有简单的方法,可以摆脱gh-pages分支,直接从主分支推送?

换句话说,您不需要主分支。删除它并在gh-pages中工作即可。


0
假设您想要保留两个分支(这样您也有文档)。 您只需在推送到主分支后运行一个脚本即可:
git checkout gh-pages
wget https://github.com/{yourgitlogin}/{your-project}-master/archive/master.zip
git rm {your-project}-master
unzip master.zip && rm master.zip
git add -u
git add .
git commit -m "update master"
git push
git checkout master

类似这样的操作会将您的整个网站添加为 gh-pages 的子目录,使您能够在同一位置轻松地拥有文档和最新的运行示例。


0

我自己使用Jekyll,通常在主分支上进行更改并将其推送到源代码库...

没有人强制你创建分支... 如果你所做的更改水平不需要多个分支,那么就在主分支上进行更改,并执行git push origin。

你表述问题的方式有些像master分支是一个特殊的git分支,这是不正确的。归根结底,master或gh-pages只是指向提交和与之相关的refspec规则不同,但它们基本上具有相同的语义。

删除gh-pages分支:git branch -d gh-pages。如果gh-pages尚未合并,则在删除gh-pages之前合并到主分支。然后继续使用仅主分支。


2
你所忽略的是,GitHub使用“gh-pages”分支来为托管在GitHub上的git存储库生成/提供静态网站。 - Dominik Honnef

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