Github wiki和标签

时间:2013-12-09 09:41:59

标签: git github gollum-wiki

所以我有一个带有wiki的Github项目,用于维护文档。每当项目中的某些内容发生变化或被添加到项目中时(通常是血腥的),我会立即在维基中将其记录下来,这有助于记录所有内容。

同时,大多数用户只能获得并使用定期二进制更新,因此需要在特定时间点访问wiki的状态。我知道wiki也是一个git存储库,但它显然与主项目存储库完全分开。

我也知道可以将wiki存储库集成为子模块(虽然我不能说我理解这些是如何工作的,因为我没有真正的命令行git经验)但是本身并没有回答我的问题,我以这种方式表达:

我需要做些什么来制作一个我可以发布给用户的URL,以便将它们引导到工作的wiki,反映它在最新二进制版本发布时的状态?

1 个答案:

答案 0 :(得分:0)

  

我也知道可以将wiki存储库集成为一个子模块(虽然我不能说我理解这些是如何工作的,因为我没有真正的命令行git经验),但这本身并不能解决我的问题问题

它实际上可以回答这个问题,因为子模块会记录维基的确切SHA1(registered as a submodule

cd /yourRepo
git submodule add -b master https://github.com/you/proj.wiki
git submodule update --init

每次修改项目时,您都可以:

  • 转到该子模块,
  • 修改wiki,添加,提交和推送,
  • 返回父级仓库,添加,提交和推送:这将在您的父仓库中记录维基的SHA1。

当您的用户获得该回购时,一个简单的git ls-tree master:<path-to-directory-containing-submodule>可以为他们提供该Wiki的SHA1。 请注意,除非这些用户要创建:

,否则该Wiki的内容将不可见
git submodule update --init

但如果只想要SHA1,为了在https://github.com/you/proj.wiki/commit/<SHA1>访问wiki,git ls-tree就足够了(他们不需要用任何内容填充子模块)。


现在,如果子模块方法看起来太麻烦,您可以更简单地在本地仓库中设置预提交挂钩,这将:

  • 检查wiki中最新提交的SHA1
  • 将SHA1放入本地仓库中的文件中(作为网址:https://github.com/you/proj.wiki/commit/<SHA1>
  • 拒绝当前提交,要求您再次添加和提交(因为预提交无法修改索引)

这样,您的用户就会查看该文件,以便以正确的版本获取Wiki。