Я нахожу все это довольно утомительным - по моему мнению, 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
и регулярное объединение, один раз, чтобы сохранить историю.
Для меня главное преимущество наличия вики как части основного дерева исходников состоит в том, чтоЗапросы и изменения по запросу могут быть скоординированы по всему коду и документации.Это также упрощает отправку документации с вашим кодом, вместо того, чтобы предполагать, что люди будут просто читать ее онлайн ...