January 8, 2023

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]

2) Обновляем систему:

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

7) Настраиваем репозиторий:

git config --global user.name "Имя Фамилия"
git config --global user.email ваш@емайл.ру

Репозиторй готов!

Работа с "git-сервером".

cd ~/projects/my_project/
    • Инициализируем git (если ранее не сделано):
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 clone [email protected]:/home/repos/my_project.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

ТехнологииБольше по теме