如何让github从主分支中的文件夹自动构建项目页面?

时间:2016-02-19 11:37:13

标签: git github configuration github-pages

我有一个github项目,它有自己的项目页面。在该项目的master分支中是一个目录html,其中包含项目页面的文件。所以,例如项目https://github.com/con-f-use/foobar的文件./html/index.html可通过https://con-f-use.github.io/foobar/index.html访问。

到目前为止,当我更改master分支中的html时,通常我会通过以下命令更新项目页面(git需要在其自己的分支gh-pages中):

 git subtree push --prefix html origin gh-pages   # From master branch

我想配置git,每次将内容推送到master时自动进行更新。可选地,它会很好,但最终不重要,如果它反过来也是如此。所以我可以推送到gh-pages并且掌握获取./html中的更改,而无需我手动摆弄。我知道git允许指定提交后脚本。我可以将上面的命令放在其中一个脚本中。问题是,我必须为存储库的每个本地克隆手动指定此脚本。我宁愿让github非本地化。

有没有办法配置github以使./html/分支中的master目录自动与./的根gh-pages保持同步分支(和副反面)并且不用我改变本地git配置吗?

所以我想要的是,每当我推送到gh-pages时,./html分支中的master也会得到更改。同样,当我在./html master目录中推送新更改时,这些更改应自动传播到gh-pages./目录。

1 个答案:

答案 0 :(得分:0)

另一种解决方案,类似于OP中的subtrees

git submodule add -b gh-pages git@github.com:con-f-use/foobar.git ./html

所以步骤:

  • 确保./html文件夹的内容位于遥控器上gh-pages并且是最新的
  • 删除./html中的master文件夹,提交并按
  • 使用上述命令将gh-pages分支添加为子模块,并提交并按

但是,需要git pull --recurse-submodules后跟git submodule update --remote --recursive并提交master进行更新。

除了单次推送之外,还不需要运行命令。