在同一Git目录结构中管理代码和文档

4
我将一个项目从Google Code转移到了Github。该项目包含代码和文档在同一个目录结构下。
我想使用Github的“Pages”功能托管HTML文档。理想情况下,我希望只需要1个push提交代码和文档的更改。
我该如何实现这一点?
1个回答

2
关于 GitHub页面,你有用户页面和项目页面。
我假设你说的是后者,这意味着你需要创建自己的gh-pages分支,在这个新的空分支中从你的master分支复制你的文档文件,就像GitHub文档页面所描述的那样。
从那里开始,当你在mastergh-pages分支中都有新的提交时,你可以通过一个push命令将两个分支一起推送(git push --all)。
问题开始出现在你绝对想要同时看到两个目录结构的时候。
最简单的解决方案是:
  • 一个克隆你repo的master分支。
  • 一个克隆相同repo的gh-pages分支。
  • 从第一个repo到第二个repo的符号链接(这允许你在同一目录结构中修改代码和文档。自Windows Vista以来,符号链接甚至也被支持)。
  • 一个git别名脚本,以便自动化命令序列 'git push master origin; cd ../secondRepo; git push gh-pages origin'
你可以尝试将一个文档仓库作为主仓库的子模块,但是...这似乎比应该的要复杂得多:请参见“如何将git仓库添加为其自身的子模块?(或:如何以编程方式生成GitHub页面?)”。
更新于2016年8月:更简单的GitHub Pages发布现在允许您将页面文件保存在同一分支的子文件夹中(不再需要gh-pages)。

Now you can select a source in your repository settings and GitHub Pages will look for your content there.

你终于可以在一个分支中更新代码和页面了。

+1:不确定如何管理“符号链接”部分...您能详细说明一下吗? - jldupont
@jldupont 的想法是在两个不同的目录结构中拥有两个独立的克隆,但能够从其中一个克隆中看到两个克隆。如果您使用Windows,可以使用 mklink创建符号链接(http://www.windows7home.net/how-to-create-symbolic-link-in-windows-7/)在一个库中查看另一个库, 这比在这种情况下使用子模块要简单得多。 - VonC
@jldupont 和 Von。我目前也在面临同样的问题。这似乎是一个合理的答案。两年后,你们是否喜欢它的工作方式,或者有没有想出更好的方法?谢谢! - user949300

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