Для совместной работы пары человек на закрытом проекте, всё, что вам нужно ― это SSH- сервер и "голый" репозиторий.
Чтобы работать с Git сервером необязательно использовать Gitosis или Gitolite. Для работы Git по протоколу SSH достаточно установленного демона SSH. В этом случае неудобство проявляется в том, что для каждого нового пользователя GIT сервера нужно заводить системного пользователя ОС и права на чтение/запись этих пользователей совпадают с правами на файлы репозитория (чтобы сделать push пользователь должен обладать правами на запись). Чтобы получить рабочий Git- сервер, к которому несколько человек имеют доступ ― просто добавьте учетные записи SSH на сервер, и положите голый репозиторий в место, к которому эти пользователи имеют доступ на чтение и запись. И всё.
Все репозитории будут храниться в директории /home/gitsrv для которой разрешен полный доступ для всех. Пустой репозиторий создается с ключем –bare. Для того чтобы приступить к установке любого сервера Git, вы должны экспортировать существующий репозиторий в новый «голый» репозиторий, т.е. репозиторий без рабочего каталога. Обычно это несложно сделать. Чтобы склонировать ваш репозиторий и создать новый «голый» репозиторий, выполните команду clone с параметром —bare. По существующему соглашению, каталоги с голыми репозиториями заканчиваются на .git.
apt install git
# 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
chown -R git:git /home/gitsrv/; find /home/gitsrv -type f -exec chmod 444 {} \; find /home/gitsrv -type d -exec chmod 775 {} \;
$ 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 init
Для того, чтобы добавить все файлы из текущей директории и всех поддиректорий введите:
git add -A
Для просмотра текущего состояния можно воспользоваться командой:
git status
После добавления файлов проекта,с помощью команды создаем версию проекта. Коммит -фиксация изменений.:
git commit -am "First!"
Просмотреть коммиты можно при помощи команды:
git log
Простого всем редактирования файлов!!! Дополнительно Настройка .gitignore.