How to integrate a GitHub wiki into the main project
我要把我所有的源代码和文件保存在一个单一的GIT库。我已经把吉普赛人的页面整合到我的主要项目中,现在我想和吉普赛人维基做同样的事情。
我知道吉普赛人维基斯很平静。我的计划是将wiki添加到我的主回收站,并在一个地方保留一切。然而,在wiki的回复中,所有的东西都在根目录中,因此我的主要项目将结束。
以前有人试过这个吗?处理这件事的最佳方式是什么?
您希望将wiki添加为子模块。与远程连接的wiki git repo相同,但在具有自己的.git dir的子目录中。
1 | git submodule add git://github.com/you/proj.wiki |
在主repo的根目录中添加wiki repo作为wiki/dir中的子模块。
我觉得这一切都很乏味——在我看来,Github维基应该是主存储库的分支,或者至少可以让它成为一种选择。
不过,我认为最好的解决方案是简单地将wiki移动到主存储库中,比如在
1 2 3 4 5 6 | git clone git://github.com/you/proj cd proj git remote add -f wiki git://github.com/you/proj.wiki git merge -s ours --no-commit --allow-unrelated wiki/master git read-tree --prefix=wiki/ -u wiki/master git commit -m"Github wiki subtree merged in wiki/" |
你甚至可以让wiki站在一边欢迎公众的贡献,但是如果你认为合适的话,可以将它们审查到你的主要文档中。要在审阅后合并中的新更改,请执行以下操作:
1 | git pull -s subtree wiki master |
不幸的是,以另一种方式合并变更有些棘手,无论如何,您应该一次性完成这项工作,然后关闭wiki,或者重定向到repo源代码…
此外,这种方法的一个主要警告是,EDOCX1(例如4)实际上没有显示wiki页面上的历史记录。历史就在那里,但不知何故,
对我来说,将wiki作为主源代码树的一部分的主要优势是,可以跨代码和文档协调请求和更改。它还使得用代码发送文档变得非常简单,而不是假设人们只是在线阅读它…
您可以使用wiki repo创建一个子模块,也可以定期获取和来回切换分支。