Github wiki and tags



所以我有一个Github项目,我用一个wiki来维护文档。每当项目中发生变化或添加到项目中时,我都会立即将其记录在wiki中,这有助于将所有内容都记录下来。

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

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

我该怎么做才能生成一个URL,我可以发布给用户,将他们引导到一个工作中的wiki,反映出它在最新二进制版本发布时的状态

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

它实际上可以回答这个问题,因为子模块将记录wiki(注册为子模块)的确切SHA1

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

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

  • 转到该子模块
  • 修改wiki,添加,提交和推送
  • 回到父repo,添加、提交和推送:这将在您的父repo中记录wiki的SHA1

当您的用户获得该repo时,一个简单的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放在本地repo中的一个文件中(作为url:https://github.com/you/proj.wiki/commit/<SHA1>
  • 拒绝当前提交,要求您添加并再次提交(因为预提交无法修改索引)

这样,您的用户就会查阅该文件,以便获得正确版本的wiki。

最新更新