GIT и только SSH
Для совместной работы пары человек на закрытом проекте, всё, что вам нужно ― это SSH- сервер и "голый" репозиторий.
Чтобы работать с Git сервером необязательно использовать Gitosis или Gitolite. Для работы Git по протоколу SSH достаточно установленного демона SSH. В этом случае неудобство проявляется в том, что для каждого нового пользователя GIT сервера нужно заводить системного пользователя ОС и права на чтение/запись этих пользователей совпадают с правами на файлы репозитория (чтобы сделать push пользователь должен обладать правами на запись). Чтобы получить рабочий Git- сервер, к которому несколько человек имеют доступ ― просто добавьте учетные записи SSH на сервер, и положите голый репозиторий в место, к которому эти пользователи имеют доступ на чтение и запись. И всё.
Пример установки связки Git и SSH
Все репозитории будут храниться в директории /home/gitsrv для которой разрешен полный доступ для всех. Пустой репозиторий создается с ключем –bare. Для того чтобы приступить к установке любого сервера Git, вы должны экспортировать существующий репозиторий в новый «голый» репозиторий, т.е. репозиторий без рабочего каталога. Обычно это несложно сделать. Чтобы склонировать ваш репозиторий и создать новый «голый» репозиторий, выполните команду clone с параметром —bare. По существующему соглашению, каталоги с голыми репозиториями заканчиваются на .git.
- Установим сам git
apt install git
- Создадим на сервере пользователя git с домашней директорией /home/gitsrv
# useradd git -d /home/gitsrv -m
Создаем пустой репозиторий empty в директории empty.git
$ mkdir /home/gitsrv/empty.git $ cd /home/gitsrv/empty.git $ git --bare init Initialized empty Git repository in /opt/gitsrv/empty.git/
- На клиенте
git clone git@your.server.git:/home/gitsrv/empty.git $ touch README $ git add . git commit -am "First initial commit." git push origin master
- Всё!!! Может понадобиться задать права (444) на файлы и директории(775) в репозиториях
chown -R git:git /home/gitsrv/; find /home/gitsrv -type f -exec chmod 444 {} \; find /home/gitsrv -type d -exec chmod 775 {} \;
- Дополнительно на сервере. В качестве дополнительной меры предосторожности можно ограничить возможности пользователя git только действиями связанными с Git с помощью ограниченной оболочки git-shell поставляемой вместе с Git. Для этого нужно заменить интерпретатор команд пользователя на git-shell.
$ which git-shell /usr/bin/git-shell # nano /etc/passwd git:x:1002:1002:git version control:/home/gitsrv/:/usr/bin/git-shell
Копируем файлы с разрешенными командами, из всего две list и help.
# cp -R /usr/share/doc/git/contrib/git-shell-commands /home/gitsrv # chmod +x git-shell-commands/help # chmod +x git-shell-commands/list
Использование GIT в локальном репозитории
Шпаргалка Git для управления версиями файлов и локальный репозиторий использование без загрузки на git сервер. Иногда при правке файлов мне нужно сохранить просто истории изменений и откатиться в случае ошибки. Загружать на удаленый сервер изменения мне не нужно.
Создадим локальный репозиторий в папке с проектом:
git init
Для того, чтобы добавить все файлы из текущей директории и всех поддиректорий введите:
git add -A
Для просмотра текущего состояния можно воспользоваться командой:
git status
После добавления файлов проекта,с помощью команды создаем версию проекта. Коммит -фиксация изменений.:
git commit -am "First!"
Просмотреть коммиты можно при помощи команды:
git log
Простого всем редактирования файлов!!! Дополнительно Настройка .gitignore.
📌 Для тестирования скриптов, установщиков VPN, Python ботов рекомендуем использовать надежные VPS на короткий срок. Если вам нужна помощь с более сложными задачами, вы можете найти фрилансера, который поможет с настройкой. Узнайте больше о быстрой аренде VPS для экспериментов и о фриланс-бирже для настройки VPS, WordPress. 📌
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!
7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Китайский VPN Shadowsocks простая установка и настройка
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах