GitHub Pages:`gh-pages` 分支的结构

5
这更像是一个关于Git方法论的问题,而不是一个特定的GitHub Pages问题:
当我自动生成项目的GitHub Pages时,我会得到一个名为gh-pages的分支。然而,这个分支的结构和内容几乎与原始的master分支没有任何相似之处。
这让我想到我可能完全误解了Git中“分支”的概念。也许这可以归咎于我在CVCS(集中式版本控制系统)方面的传统背景...
分支不应该是其源的副本吗,至少在其初始提交中是这样吗?
还有一个更具体的GH问题:是否有任何简单的策略来合并gh-pages与其他分支并保持它的最新状态?
后者可能与我先前在Keeping GH homepage in sync with README.md中提出的问题有关。
2个回答

3

gh-pages 是孤立的分支。也就是说,它们是存储库中完全新的分支,没有链接到您可能认为的根或主分支。

您可以使用以下命令创建它们:

git checkout --orphan <new-branch-name>

因此,在同一代码库中没有到其他分支的链接。


1
感谢@Abizern。这在这里有描述: --orphan <new_branch> 在这个新分支上进行的第一次提交将没有父级,它将是一个与所有其他分支和提交完全断开连接的新历史记录的根... 当您想要发布来自提交的树而不暴露其完整历史记录时,这可能很有用。您可能希望这样做以发布项目的开源分支,其当前树是“干净的”,但其完整历史记录包含专有或受限制的代码位。 - the-happy-hippo

1
我的观点是,gh-pages是GitHub的一个技巧,允许您为项目创建网站。因此,分支的概念有点丢失了。有时它们会与原始项目有很大不同。您可以尝试找到更好地组织它们的技巧,但不要将其与分支的一般概念混淆。
例如,想象一下带有预编译元素(例如SASS)的项目,它们可能不包括在您的项目中,但是它们可能需要在gh-pages分支中使用。
保持GH页面与README同步是由于GH页面和主要项目之间的分歧,可能会发生您忘记其中一个的情况。保持它们同步的建议与保持项目组织有关,而不仅仅是任何其他事情。
如果它们没有任何相似之处,我不会感到担心。
正如我所说,这只是我的观点。

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