Git-сервер в локальной сети.
В качестве сервера для размещения локального Git-репозитория будет использоваться компьютер с установленной операционной системой Ubuntu Linux 22.04.1 LTS с локальным IP - 192.168.1.47 (далее - "git-сервер").
Создание пользователя git
1) На "git-сервере" создаем пользователя git (имя выбираем произвольное).
sudo adduser git
Вводим и подтверждаем пароль для нового пользователя, когда запросят.
Доступ по SSH-ключам
Для удобства дальнейшей настройки и последующей работы с сервером организуем подключение к "git-серверу" по SSH-ключам.
1) На локальном компьютере (далее - "клиент") генерируем ключи командой:
ssh-keygen
Отвечаем на вопросы генератора ключей (можно пропускать - нажатием клавиши "Enter").
2) Копируем ключ на "git-сервер":
ssh-copy-id [email protected]
По запросу, вводим пароль пользователя git.
3) Теперь подключатся к "git-серверу" можно командой:
ssh [email protected]
Примечание. Доступ можно упростить ещё немного, если создать ssh-алиас - в файл ~/.ssh/config добавить настройки "git-сервера":
vim ~/.ssh/config
Host git Hostname 192.168.1.47 User git Port 22
Теперь подключатся к "git-серверу" можно короткой командой:
ssh git
Настройка репозитория
1) Подключаемся к "git-серверу":
ssh [email protected]
sudo apt update && sudo apt upgrade -y
3) Устанавливаем git (обычно уже установлен):
sudo apt install git
4) Переходим в домашнюю папку (обычно, после подключения, находимся уже в ней):
UPDATE 2023-01-08: Важное обновление!
Чтобы не возникло проблем с правами доступа на файлы в дальнейшем (например с ключами ssh или организацией синхронизации) репозиторий лучше создавать не в домашней директории /home/git/, а создать отдельную папку на уровне выше домашней, например папку repos в /home (и путь к репозиторию будет /home/repos/). Далее а тексте пути обновлены.
cd /home/ mkdir repos cd repos/ pwd # /home/repos/
5) Создаем пустой репозиторий (папку с .git на конце) и переходим в него:
mkdir my_project.git && cd my_project.git
6) Инициализируем "чистый" (--bare) репозиторий:
git init --bare
git config --global user.name "Имя Фамилия" git config --global user.email ваш@емайл.ру
Работа с "git-сервером".
- Отправка проекта на "git-сервер".
- На "клиенте" переходим в папку проекта:
cd ~/projects/my_project/
git init
git config user.name "Имя Фамилия" git config user.email ваш@емайл.ру
- Добавляем локальный репозиторий на "git-сервер":
git remote add origin [email protected]:/home/repos/my_project.git
- Создание фиксации и отправка на "git-сервер":
- Добавляем файлы (в данном случае - все файлы: " . "):
git add .
git commit -m "Первый коммит. Добавляем исходные файлы проекта."
git push origin master
- Получения проекта с "git-сервера":
git clone [email protected]:/home/repos/my_project.git
- Удаление репозитория с "git-сервера":
git remote rm [email protected]:/home/repos/my_project.git
- Изменение адреса "git-сервера":
git remote -v
git remote set-url origin git@новый-адрес-сервера:/home/repos/my_project.git
- В случае ошибок в работе с "git-сервером"
git reset --hard HEAD git pull
git pull