Как интегрировать GitHub wiki в основной проект - PullRequest
40 голосов
/ 04 августа 2011

Я хочу хранить весь мой исходный код и документацию в одном репозитории git. У меня уже есть страницы github, интегрированные в мой основной проект, и теперь я хочу сделать то же самое с wiki github.

Я знаю, что github wiki - это простые git-репозитории. Мой план состоит в том, чтобы добавить вики в качестве удаленного к моему главному репо и хранить все в одном месте. Однако в репозитории вики все находится в корневом каталоге и, таким образом, загромождает мой основной проект.

Кто-нибудь пробовал это раньше? Каков наилучший способ справиться с этим?

Ответы [ 3 ]

34 голосов
/ 04 августа 2011

Вы хотите добавить вики как подмодуль .Тот же репозиторий Wiki git, подключенный как удаленный, но в подкаталоге со своим собственным каталогом .git.

git submodule add git://github.com/you/proj.wiki

В корне вашего основного репо добавить репозиторий вики как подмодуль в вики / директорию.

6 голосов
/ 17 октября 2015

Я нахожу все это довольно утомительным - по моему мнению, github wiki должны быть ветвями основного хранилища, или, по крайней мере, должна быть возможность сделать эту опцию.

Тем не менее, я считаю, что лучшее решениеэто просто переместить вики в основной репозиторий, скажем, в docs/ или wiki, используя слияние поддерева .Например, если ваш репозиторий равен you/proj, ваша вики будет иметь следующий адрес: git://github.com/you/proj.wiki.Затем, чтобы объединить его с вашим основным репо, вы должны сделать:

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/"

Вы можете даже оставить вики на стороне, чтобы приветствовать публичные вклады, но затем проверять их в своей основной документации, как считаете нужным,Чтобы объединить новые изменения после проверки, вы должны сделать:

git pull -s subtree wiki master

К сожалению, объединение изменений другим способом несколько сложнее, и в любом случае, вам, вероятно, следует сделать это как раз, затем закрытьвики или перенаправление на источник репо ...

Кроме того, основным предостережением этого подхода является то, что git log wiki/Home.md (например) фактически не отображает историю со страницы вики.История есть , но каким-то образом git-log не может отследить ее.Это известное ограничение , касающееся поддеревьев git.Другим решением этой проблемы было бы сделать filter-branch и регулярное объединение, один раз, чтобы сохранить историю.

Для меня главное преимущество наличия вики как части основного дерева исходников состоит в том, чтоЗапросы и изменения по запросу могут быть скоординированы по всему коду и документации.Это также упрощает отправку документации с вашим кодом, вместо того, чтобы предполагать, что люди будут просто читать ее онлайн ...

3 голосов
/ 04 августа 2011

Вы можете создать подмодуль с репозиторием вики или сделать обычную выборку и переключать ветви назад и вперед.

...