Rose debug info
---------------

Про Git

Скопипащу сюда свой собственный мануал для новеньких разработчиков.

Установка git


$ sudo su
$ apt-get install git-core git-gui git-doc

SSH ключи


Шаг 1. Проверяем есть ли у вас уже ключи.

cd ~/.ssh
Если отвечает “No such file or directory“ идем на шаг 3. Иначе идем на шаг 2.

Шаг 2. Бекапим имеющиеся

mkdir key_backup
cp id_rsa* key_backup
rm id_rsa*

Шаг 3. Создаем новый ключ

ssh-keygen -t rsa -C «[email protected]»
[enter]

Шаг 4. Нужно добавить ваш ключ на репозиторий, например gitorius, gitlab, bitbucket

cat id_rsa.pub
ctrl+c ctrl+v в браузер.

Шаг 5. Добавляем персональную информацию

git config —global user.name «Firstname Lastname»
git config —global user.email «[email protected]»

Использование


git init — создать в этой папке git репозиторий
git status — получить информацию на какой ветке мы сейчас находимся, список внесенных изменений
git checkout development — переключиться на основную девелоперскую ветку.
git pull origin development — скачать с серевра самую свежую версию ветки development и залить ее в текущую ветку.
git checkout -b new_branch_name — создать новую ветку из текущей (на которой вы сейчас находитесь).
git reset —hard — отменяет все изменения сделанные до коммита
git commit -a — сохраняет на вашем локальном компе в ветке все изменения, которые вы внесли
git push origin branch_name — закачивает на сервер вашу модифицированную ветку

Для работы в общем-то и этого набора команд достаточно :)

Ништяки


Вывод названия текущей ветки в строку приглашения bash.
Выглядит примерно так: /var/www/site (master) $
Создать в домашней директории файл .gitbranch.sh с правами на исполнение для владельца:

#!/bin/bash
 
GIT_BR=`git symbolic-ref HEAD 2> /dev/null | cut -b 12-`
 
if [ "$GIT_BR" = "" ]; then
    echo -n
else
    echo -n "($GIT_BR)"
fi
</pre>
в файле .bashrc, находящейся в домашней директории найти строку
<pre class="brush:shell">if [ "$color_prompt" = yes ]; then
PS1='...

и заменить ее на

if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\e[1;31m\]:\[\e[01;34m\]\w\[\e[00m\]`~/.gitbranch.sh`\[\e[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w`~/.gitbranch.sh`\$ '
fi

так же 10 строками выше можно раскоментировать force_color_prompt=yes

GUI

Многие разработчики в нашей команде используют либо командную строку, либо gtk-шный Git Gui. Я же рекомендую SmartGit, пожалуй это лучший клиент из всех что я видел. Еще весьма неплохо работает с гитом клиент, встроенный в PHP Storm.

Из очень удобных клиентов под Linux я бы еще назвал Gitg. Он особенно полезен для просмотра дерева веток и истории слияний веток между собой. Устанавливается он с полпинка по apt-get install gitg.

Вот забавно, хотел сейчас причитать о том, как жаль, что под Mac нет такого классного инструмента, как оказалось, что Gitg это клон GitX, содранного с маков :)

Под Windows я использую тот же самый SmartGit и консоль (mingw), которая поставилась самим инсталлятором. Скачать git для windows можно на http://git-scm.com/

Ссылки по теме:
Прекрасная книга Pro Git
Магия Git — другая прекрасная книга про гит