[[ Установка Git SCM на Gentoo Linux ]]

GentooGit

Установка Git SCM на Gentoo Linux

Git - распределённая система управления версиями

Установка Git

Установка флагов

/etc/portage/package.use

dev-vcs/git cgi highlight
#dev-lang/lua -deprecated
#app-crypt/gnupg -smartcard

  • cgi - поддержка web интерфейса
  • highlight - раскраска в интерфейсе

Установка:

emerge dev-vcs/git -av

Настройка

Добавим пользователя git, под которым будет запущен git-daemon

useradd git -mU -s /bin/bash
id git
chmod 750 /home/git

Репозитории

Инициализация репозитория test.git

su - git
git init --bare test.git
touch ~/test.git/git-daemon-export-ok

На сервере создаем «чистый» --bare репозиторий.
Суффикс .git в имени папки репозитория - это просто соглашение об именах, которое обычно означает, что папка расположена на сервере, а не у клиента.
Наличие файла git-daemon-export-ok разрешает git-daemon экспортировать репозиторий, иначе ошибка:

git-daemon[4419]: '/home/git/test.git/': repository not exported.

Так же можно указать опцию демона --export-all, тогда по-умолчанию все репозитории будут доступны

Настройки демона

/etc/conf.d/git-daemon

GITDAEMON_OPTS="--syslog --enable=receive-pack --base-path=/home/git"
GIT_USER="git"
GIT_GROUP="git"

Для загрузки данных на удаленный сервер используются процессы send-pack и receive-pack. Процесс send-pack запускается на стороне клиента и подключается к receive-pack на стороне сервера.
Git-изнутри-Протоколы-передачи
Т.е. без --enable=receive-pack работает как read only.

Запуск

/etc/init.d/git-daemon start

Для работы по git протоколу, необходимо открыть порт 9418

Проверка демона

Выполняем действия на стороне клиента

git config --global user.email "you@example.com"
git config --global user.name "Your Name"
cd /tmp
git clone git://domain.ru/test.git
cd test
 
# До
#git status
#git remote -v
#git remote show origin
#git branch
 
touch README.md
git add README.md
git commit -m 'initial commit'
git push origin master
 
# После
#git status
#git remote -v
#git remote show origin
#git branch

Настройка SSH

Для доступа по SSH добавляем ключ(и)

su - git
mkdir -p ~/.ssh
chmod 750 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 640 ~/.ssh/authorized_keys
echo 'ssh-rsa AAAA<PUBLIC KEY>' >> ~/.ssh/authorized_keys

git clone ssh://git@domain.ru:/home/git/test.git




Обсуждение

Aleksey, 2018/02/12 13:52

origin — это имя по умолчанию, которое Git присваивает серверу, с которого вы склонировали репозиторий

Ваш комментарий. Вики-синтаксис разрешён:
167 -5 = 
 
howto/gentoo/gentoo_install_git.txt · Последнее изменение: 2022/08/31 14:53 — 127.0.0.1
Gentoo Linux Gentoo Linux Driven by DokuWiki