1

我想在我的 github 存储库上保持gh-pages同步,目前我正在使用一个脚本来执行此操作,该脚本每次都会生成一个额外的合并提交,实际上我只需要一个提交。master

确实,我可以简单地忽略更新master而只使用 gh-pages 进行开发,但我想知道 git 是否支持两个本地分支可以指向同一个提交的可能性。

让两者都向前发展是有道理的。github.com 上的 repo 向世界公开,而 my_username.github.com 上master的 Github Pages 页面(托管我实际用于测试的实时代码示例和测试页面)跟踪gh-pages。两者都应该同步重要的东西(js代码),我的问题是两者是否有可能指向相同的确切提交。暂时忽略这将意味着master将接收到页面站点的额外文件,这些文件并不真正属于那里。尽管如此,我仍然不介意拥有这种透明度,因此人们很容易弄清楚网站的设置方式。

4

2 回答 2

2

我从你的回购中收集到了这个。

$ git diff --stat master..gh-pages
 debug.js                     |    2 +-
 images/body-bg.png           |  Bin 0 -> 8859 bytes
 images/highlight-bg.jpg      |  Bin 0 -> 34222 bytes
 images/hr.png                |  Bin 0 -> 1037 bytes
 images/octocat-icon.png      |  Bin 0 -> 1651 bytes
 images/tar-gz-icon.png       |  Bin 0 -> 1671 bytes
 images/zip-icon.png          |  Bin 0 -> 1661 bytes
 index.html                   |   71 ++++++++
 javascripts/main.js          |    1 +
 params.json                  |    1 +
 stylesheets/print.css        |  226 +++++++++++++++++++++++++
 stylesheets/pygment_trac.css |   69 ++++++++
 stylesheets/stylesheet.css   |  371 ++++++++++++++++++++++++++++++++++++++++++
 13 files changed, 740 insertions(+), 1 deletions(-)

从外观上看,分支基本相同,只是在gh-pages. 简单的答案是杀戮master,就像我所做的那样

我想补充一下,存在两种类型的“GitHub 页面”。

  • 您有“用户”页面,类似于svnpenn.github.io
  • 您有“项目”页面,类似于svnpenn.github.io/bm

  • 用户页面依赖于master分支来生成/显示页面。
  • 项目页面依赖gh-pages分支来生成/显示页面。

明确一点,gh-pages分支对“用户”存储库没有任何目的,就像master分支对“项目”存储库没有任何目的一样,除了您想出的目的。

于 2013-02-06T05:34:51.543 回答
1

是的,两个分支可以指向相同的提交。然而,gh-pages在分支不共享相同历史的情况下,你必须告诉 Git 基本上squash现有的gh-pages分支是可以的。

这会将您的 gh-pages 分支指向您的本地 master 指向的任何内容:

git push origin +master:gh-pages

请记住,它会压缩gh-pages服务器上曾经指向的任何内容。该+标志告诉 Git 可以压缩东西。

于 2013-02-06T05:49:41.743 回答