如何将 GitHub 维基存储为源代码的一部分

How to store GitHub wiki as part of source

GitHub(以及许多 git 服务器,例如 GitLab)提供项目级维基,通常存储 markdown (*.md) 文件和形成...好吧...您项目的 wiki。

如果有一种方法可以将您的 wiki 存储为主要项目源的一部分,那将是太酷了,这样当您将更改推送到您的主要项目时,您的 wiki也会发生变化(当然,如果您对 wiki markdown 文件进行了更改)。

类似于:

myproject/
    src/main/resources/
    src/main/groovy/
    build.grade
    docs/
        Home.md
        About_This_Project.md
        etc.

有什么办法可以做到吗?我看到 wiki 有克隆 URL 和数字,这意味着它们被视为单独的 Git 项目。有什么方法可以将两者结合起来吗?

正如@larsks 在评论中提到的,您可以使用 GitHub Pages 来处理类似的事情。但是,如果没有一些额外的工具,文档将需要位于与主项目不同的分支 ("gh-pages") 中。然而,有几种方法可以将两者融合在一起,并且一些解决方案可以与其他 Git 主机一起使用,只需稍作调整。

gph-导入

引擎盖下的便捷工具 ghp-import actually takes the docs/ directory (or whichever directory you point it to) and copies it over to the gh-pages branch for you (and can optionally push to GitHub). As GitHub Pages uses Jekyll,如果您将 docs/ 中的文件配置为 Jekyll 项目,任何时候您 运行 ghp-import 命令,您对文档的更改将提交给 'gh-pages' 分支。当这些更改被推送到 GitHub 时,它们 运行 Markdown 文件上的 Jekyll 并使用呈现的 HTML.

更新网站

当然,此解决方案存在一些问题。首先,它是 GitHub 特定的,其次,它管理 `gh-pages' 分支的提交历史(参见文档中的 warning)。

git-子树

也许更通用的解决方案是将 git-subtree, which can copy (and preserve) the history of a subdirectory to a separate branch. It will only copy the commits which effected the specified sub-directory. Additionally, any commits which included changes in both the specified subdirectory and other parts of your source only include the changes to the subdirectory. I did a full write-up on how to use it 与 Git 中心页面一起使用。

排序版本是 运行 主分支的以下命令,只要你想更新 gh-pages 分支(或你正在使用的任何分支):

git subtree split --branch gh-pages --prefix docs/
git push origin gh-pages

未使用 GitHub

如果您不想使用 GitHub,您可以(理论上)使用上述任一工具,并为仅包含您的文档的分支设置不同的远程。然后,在将更改复制到文档分支后(可能使用 git subtree split 命令),您可以将该分支推送到主机的 "wiki" 存储库。我没有亲自尝试过。您的里程可能会有所不同。

不使用 Jekyll

甚至 GitHub Pages 也不要求您使用 Jekyll 来呈现您的文档。如果您将已呈现的 HTML 推送到 Git 中心页面,它们将正常工作。 Various static site generators (more here) offer this sort of functionally. For example, one popular project, MkDocs, 将在你的 docs/ 目录中获取 Markdown 文档并将它们渲染到 HTML。然后,您可以将这些呈现的文档上传到各种托管服务。

这个答案离推荐特定工具越来越危险,所以我就到此为止了。

GitHub 将在其查看器中呈现 Markdown 文件,因此您无需执行任何操作即可有效地执行此操作。如果你把 link 放在你的 README.md 中,像这样:

 ...to see more info [click Here](docs/SomeFile.md). So on and so forth

然后当有人点击您的 README.md 中的 link 时,他们将到达正确的位置并且文件将在查看器 window 区域中呈现为 Markdown。

Source

每个 wiki 都提供了一种将其内容克隆到您的计算机的简单方法。您可以使用提供的 URL:

将存储库克隆到您的计算机
$ git clone https://github.com/YOUR_USERNAME/YOUR_REPOSITORY.wiki.git

克隆 wiki 后,您可以添加新文件、编辑现有文件并提交更改。您和您的协作者可以在使用 wiki 时创建分支,但只有推送到主分支的更改才会生效并可供您的读者使用。