我有一个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
根./
目录。
答案 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
进行更新。
除了单次推送之外,还不需要运行命令。