2009-09-15 58 views
1

下面是一个使用Git的有趣实验。想想Github的'网页'功能:我在一个分支中编写程序(例如master),而文档网站保存在另一个完全不相关的分支(例如gh-pages)中。Git分支实验

我可以从我的master-branch中的代码生成HTML格式的文档,但我想将其作为我的文档网站gh-pages分支中的一部分发布。

我如何从master的代码中智能地生成我的文档,将它移动到我的gh-pages分支并在那里提交更改?我应该使用post-commit钩子还是什么?这是一个好主意,还是完全愚蠢?

+0

我认为这可能是相关的:http://stackoverflow.com/questions/1425892/how-do-you-merge-two-git-repositories – Eimantas 2009-09-15 18:10:02

+0

@Eimantas:不是,我想。这是关于同一个存储库中的两个分支,而不是两个不同的存储库。 – avdgaag 2009-09-15 18:17:37

+0

可以完成预标记挂钩,以便生成文档并在分支上发布,然后再恢复为主标签并应用标签。但是我对git挂钩不够熟悉,不知道如何去做。 – VonC 2009-09-15 18:24:06

回答

1

在版本控制下生成文件有什么优势?如果你坚持这样做,在同一个存储库中生成和生成文件有什么好处? git的分支支持非常棒,但我相信它并不是设计用来做你正在做的事情。

+0

我同意,因为这个'gh-pages'分支实际上是一个单独的项目,并不是主代码库的一个分支。这将是一个黑客。不过,我很好奇它是否可以完成。 – avdgaag 2009-09-15 18:40:16

+0

Git的Git仓库本身就是这样(对于man页面和东西),所以如果他们这样做,它一定是正确的! :) – Bombe 2009-09-16 05:49:32

2

你可以'git stash'您生成的文件,然后应用就相关事务

git checkout master 
#generate doc 
git stash save 
git checkout gh-pages 
git stash pop 

更新2016年8月:Simpler GitHub Pages publishing现在可以保持你的页面文件在相同分支的子文件夹(不再需要gh-pages):

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

您现在可以将您的代码保持最新,并将代码保存在同一分支的子文件夹中。

+1

我还没有想过藏好的东西,看起来很整齐。是否有可能使它自动化,例如在创建标签之前运行的钩子或其他东西? – avdgaag 2009-09-15 18:19:44