Как настроить общедоступные репозитории git?

Недавно я попытался настроить git repo на linux box и потратил около 10 часов без каких-либо результатов. Нет никаких проблем с компиляцией или что-то в этом роде, это просто проблема конфигурации. Через 2 часа я получил меркурий, чтобы делать все, что мне нужно:

  • публичные репозитории
  • web ui
  • push/pull с разрешениями для каждого пользователя (не привязаны к учетным записям linux)

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

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

Благодарю вас!

Ответы

Ответ 1

Я верю (но еще не пробовал), что gitosis - это путь для:
Обновление: 2011, я фактически развернул gitolite

  • сделать хостинг git repos проще и безопаснее. Это
  • управляет несколькими репозиториями под одной учетной записью пользователя, используя SSH-ключи для идентификации пользователей.
    Конечным пользователям не нужны учетные записи оболочки на сервере, они будут разговаривать с одной общей учетной записью, которая не позволит им запускать произвольные команды.

Процесс установки, который я рекомендую, - это сделать с клиентом, чтобы скопировать полную установку гитолита на сервер:

(из-клиента) установить с клиента на сервер

Помните: gitolite управляет авторизацией, а не аутентификацией (SSH): ее можно использовать без SSH, но ее естественное развертывание осуществляется через SSH и принудительный механизм управления. (например, гитоз был, но со многими другими функциями)


Старые ссылки на гитоз:

Ниже приведен шаг за шагом учебник.

И затем приложение учебника: Gitosis - создание нескольких управляемых хранилищ Git (для Mac) или установка gitosis на Ubuntu

Далее следуют: Добавление пользователей в нашу безопасную Git setup

Готово: Git подпроекты (так как ваш сервер gitosis управляет всеми этими репозиториями Git)


Для действительно светлых (cgi-серверов) общедоступных репозиториев Git вы можете:

  • настройте Git сервер: git-daemon; он будет прослушивать порт 9418. По умолчанию он будет иметь доступ к любому каталогу, который выглядит как каталог Git и содержит волшебный файл git -daemon-export-ok. Передача некоторых путей каталога в качестве аргументов git -daemon будет дополнительно ограничивать экспорт этими путями.
    Вы также можете запустить git -daemon в качестве службы inetd;
  • экспорт с http разместите недавно созданный голый репозиторий Git в каталоге, который экспортируется веб-сервером, и внесите некоторые изменения в предоставить веб-клиентам дополнительную информацию, необходимую им.

Вот как это сделать на сервере Apache.


В статье 2010 года 8 способов обмена репозиторией Git упоминаются все возможности для доступа в хранилище Git.

Ответ 2

Вы могли бы просто сделать

git instaweb

если у вас установлен lighttpd. Это всего лишь веб-интерфейс.