понедельник, 27 мая 2013 г.

Linux: Продолжаю осваивать git

Собственно, возникла простая задача:
1. Поднять на "сервере" сервер git (это не тавтология)
2. Научиться с репозиториями этого сервера работать по ssh.

Первая задача в первом приближении решилась просто: скачиваем исходники git одним архивом, разархивируем, читаем внимательно файл INSTALL, выполняем команды:
$ make configure
$ ./configure --prefix=/usr
$ make all doc
# make install install-doc install-html
в общем, на вид ничего сложного, справится даже такой тупень, как я.

Вторая задача, как оказалось, тоже не бином Ньютона. Если, конечно, внимательно прочитать инструкцию. Или полезные указания опытных людей. Или ещё что-нибудь.

Но это всё, конечно, не про меня. Узнав про команду ssh-keygen и обрадовавшись открывшимся возможностям я полез заводить юзера git, создавать домашнюю папку, давать разрешения и т.п. В результате каких-то вычурных команд репозиторий обосновался в домашней папке этого пользователя, а сам пользователь получил возможность интерактивного входа в систему. Кошмар. (Зато научился блокировать и разблокировать пользователя командами passwd -l git и passwd -u git)

Короче говоря, сделал так. В папке /opt создал символическую ссылку на папку с репозиторием (этот репозиторий с проектами будет жить на отдельном диске), и принял следующую схему работы при создании нового проекта.

На сервере выполняем команды:
$ cd /opt/git
$ mkdir newProject
$ cd newProject
$ git init --bare
$ git commit -m 'Initial commit'

На клиенте выполняем команды
$ cd newProject
$ git init
$ git remote add origin mylogin@myserver:/opt/git/newProject
$ git pull origin master

Если когда-нибудь этот репозиторий перекочует, можно будет сменить оригины командой
$ git remote set-url origin mylogin@myserver:/new-git-repository/newProject
(кстати, текущие значения этих оригинов в текстовом виде хранятся в папке проекта в файле .git/config)

Ну, эта схема ещё явно не окончательная.

Кстати, набрёл еще на одну памятку. Может, пригодится...

Важное дополнение: клиент git под Windows как-то странно рисует кириллические имена файлов. Вроде бы научить его русскому языку удалось командой:
$ git config --global core.quotepath false

Комментариев нет:

Отправить комментарий