Нужно ли устанавливать сервер Git, если я хочу иметь доступ к удаленному репозиторию через ssh?

Не могли бы вы объяснить, действительно ли мне нужно установить сервер git на удаленном компьютере, если мне нужно разместить там репозиторий и получить доступ к нему через ssh?

Мое невежество, вероятно, начинается с непонимания некоторых ключевых принципов работы git, поэтому я был бы рад, если кто-нибудь объяснит мне это.

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

Это возможно? Если нет, не могли бы вы объяснить мне эту вещь, которую я пропустил?

Ответ 1

Все файлы, необходимые для запуска git, хранятся локально в кассе (в каталоге .git). Вы можете просто получить доступ к репозиторию git через SSH и эффективно обрабатывать его как репозиторий на вашем локальном компьютере, например, локально установив удаленную папку.

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

Нет никакого значимого различия между git "сервером" и git "клиентом". Это распределенная система управления версиями, что означает, что каждая проверка - это полностью функционирующий репозиторий версий.

Ответ 2

Уверен, что доступ к SSH возможен без сервера git.
Вам нужен сервер ssh (демон).

Не смешивайте "удаленный сервер" и "удаленное (или восходящее) репо: удаленное репо может быть простым каталогом рядом с вашим текущим репо (локальный протокол).

Gitolite - хорошая иллюстрация, используя механизм принудительной команды ssh для управления авторизацией (не доступ).
См. Gitolite без SSH, чтобы понять, что для доступа для доступа git достаточно только sshd.

См. также Pro git book для различных протоколов, поддерживаемых Git.

Ответ 3

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

Если вы делаете это только для себя, на сервере:

 git init --bare

Если вы делаете это с другими разработчиками, вам нужно:

 mkdir repo
 chgrp GROUP repo
 chmod g+rwxs repo
 cd repo
 git init --bare --shared=group