Вы почти наверняка не захотите реализовать сервер git самостоятельно. Дизайн Git не поддается lib-ization, поэтому проблема в том, что версия класса git первого класса недоступна.
Тем не менее, существует целый ряд вариантов, в зависимости от ваших потребностей:
- libgit2, самую последнюю работу по истинной библиотеке C мерзавца, и различные его привязки к другим языкам
- GitPython, и аналогичные библиотеки для Python и других языках, которые свертывают мерзавец сам исполняемый файл
- jgit, родной реализации Java от мерзавца
Если вы хотите сделать прозрачным git-подобным интерфейсом для своего контента, вам нужно будет внимательно рассмотреть, что это значит и что вы хотите предоставить. Git - это DVCS, и поэтому он сохраняет всю историю всего. Это означает, что вы должны хранить и обслуживать всю историю, чтобы люди могли делать что-нибудь полезное в вашем репозитории. Итак, если вы просто пытаетесь экспортировать данные для одноразового просмотра, это не имеет большого смысла. Я думаю, что такой подход будет иметь наибольший смысл только в том случае, если вы фактически сохраняете все бэкэнд-данные, хранящиеся под контролем версий в git.
Наконец, обратите внимание, что «git-сервер» не существует. Git использует существующие транспортные средства, такие как ssh, http и т. Д., Которые могут отправлять простые команды git для отправки и получения данных.
Насколько функциональность Git могла бы реализовать ваш репозиторий? Какие преимущества он может предложить против сервера Git? – joshp
@joshp: Сколько функций Git: базовое управление версиями, но, вероятно, не поддерживало бы все функции. Какие преимущества он может предложить против сервера Git: Workflows –