Два remote, таблица репозиториев и workflow push origin/github.
5.9 KiB
Работа с Git
Основной remote: git.kalinamall.ru (полная копия, включая секреты).
Резерв: github.com/PTah/... (без паролей и токенов). Подробно — repo-policy.md.
Репозиторий: https://git.kalinamall.ru/PapaTramp/reverse-proxy
Установка Git
sudo apt update
sudo apt install -y git
Первое клонирование
cd ~
git clone https://git.kalinamall.ru/PapaTramp/reverse-proxy.git
cd reverse-proxy
Для push с сервера настройте SSH-ключ или PAT (см. ниже).
Обновление локальной копии
cd ~/reverse-proxy
git pull origin main
После git pull снова скопируйте при необходимости файлы в /etc/haproxy/ (см. haproxy-install.md).
Как не вводить логин и пароль при каждом git pull / git push
Способ 1: SSH-ключ (предпочтительно)
-
Создайте ключ (имя файла можно своё):
ssh-keygen -t ed25519 -C "ubuntu-haproxy" -f ~/.ssh/id_ed25519_kalinamallПарольную фразу можно задать или оставить пустой (на сервере оцените риски).
-
Покажите публичный ключ и добавьте его на git.kalinamall.ru: профиль → Settings → SSH / GPG Keys → Add Key.
cat ~/.ssh/id_ed25519_kalinamall.pub -
Проверьте доступ:
ssh -T git@git.kalinamall.ru -
Клонируйте по SSH (или смените URL у уже существующего клона):
git clone git@git.kalinamall.ru:PapaTramp/reverse-proxy.git # уже склонировано по HTTPS — переключение: # git remote set-url origin git@git.kalinamall.ru:PapaTramp/reverse-proxy.git
Дальше git pull / git push идут по SSH без пароля (при необходимости один раз вводится только passphrase ключа, если вы её задали; её можно кешировать через ssh-agent).
Способ 2: HTTPS + Personal Access Token (PAT)
git.kalinamall.ru не принимает обычный пароль от аккаунта для операций git clone / git pull / git push по HTTPS. Вместо пароля нужно создать Personal Access Token (PAT) и вводить его там, где Git спрашивает пароль.
Создание токена
- Войдите на git.kalinamall.ru под нужным аккаунтом.
- Откройте Settings (Настройки) → Applications (или Access Tokens).
- Создайте новый токен:
- Name — произвольное имя (например
ubuntu-haproxy-pull), чтобы потом понимать, зачем токен. - Expiration — срок действия (чем короче, тем безопаснее; для сервера часто выбирают ограниченный срок и потом перевыпускают).
- Scopes — для
pull/pushвключите минимумread:repositoryиwrite:repository(или эквивалентные права на репозиторий).
- Name — произвольное имя (например
- Сразу скопируйте строку токена — сервер покажет её один раз; после ухода со страницы повторно не отобразит.
Использование PAT в Git на Ubuntu
- Username (логин): ваш логин на git.kalinamall.ru, не e-mail, если Git явно просит username.
- Password: вставьте целиком PAT (не пароль от сайта).
Пример первого клонирования по HTTPS:
git clone https://git.kalinamall.ru/PapaTramp/reverse-proxy.git
# при запросе: Username = ваш_логин
# Password = вставить PAT
Чтобы не вводить PAT каждый раз
Токен хранится в открытом виде в ~/.git-credentials — используйте только на доверенных машинах:
git config --global credential.helper store
cd ~/reverse-proxy
git pull origin main
# один раз ввести Username + PAT — дальше подставятся из файла
Кеш в памяти на заданное время (секунды), без постоянной записи в файл:
git config --global credential.helper 'cache --timeout=28800'
После истечения срока кеша или срока действия токена снова создайте новый PAT и при необходимости обновите сохранённые учётные данные (удалите строчку с git.kalinamall.ru из ~/.git-credentials или снова выполните git pull и введите новый токен).
Два remote: Gitea и GitHub
cd ~/reverse-proxy
git remote -v
# origin → git@git.kalinamall.ru:PapaTramp/reverse-proxy.git
# github → git@github.com:PTah/reverse-proxy.git
git push origin main # основной — всегда
git push github main # резерв — только без секретов в коммите
Если origin ещё указывает на GitHub:
git remote rename origin github
git remote add origin git@git.kalinamall.ru:PapaTramp/reverse-proxy.git
git fetch origin
git branch -u origin/main main