Git

Это небольшая шпаргалка по git.

Конфигурация Git

Для настройки git используется команда git config. Конфигурация задаётся на 3 уровнях: уровне системы –system, уровне пользователя –global и непосредственно в репозитории. Например, указание ключа –global означает, что параметры будут сохранены в домашнем каталоге пользователя и будут использованы для всех его репозиториев (~/.gitconfig или ~/.config/git/config). По умолчанию используется ключ –local, при этом все настройки сохраняются в файле .git/config текущего репозитория. Конфигурация на каждом последующем уровне имеет более высокий приоритет, т.е. настройки внутри репозитория перекрывают настройки в домашнем каталоге пользователя, которые перекрывают системные настройки.

Изначально необходимо задать имя пользователя и адрес электронной почты, которые будут указаны в коммитах. Чтобы не указывать это каждый раз, следует добавить их глобально:

git config --global user.name "FSA"
git config --global user.email fsa@mail.com

В некоторых случаях в качестве дефолтного значения обычно предлагают ИМЯ_ПОЛЬЗОВАТЕЛЯ@ИМЯ_ХОСТА.

Просмотр конфигурации git, локальной и глобальной:

git config --list
git config --list --global

Подробнее о параметрах конфигурации:

git help config

Удалить значение параметров конфигурации или даже целые секции можно так:

git config unset user.name
git config --remove-section user

Полезные опции

Текстовый редактор, который будет вызван при создании коммитов.

git config --global core.editor vim

Постраничный вывод результатов команд:

git config --global core.pager 'less -RFX'

Свои утилиты для просмотра изменений в файлах:

git config --global diff.tool kdiff3
git config --global merge.tool kdiff3

Алиасы

Добавление алисасов для часто используемых команд:

git config --global alias.ci commit
git config --global alias.br branch
git config --global alias.co checkout
git config --global alias.st "status --short"
git config --global alias.hist "log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short"

Работа с ветками

Просмотр имеющихся веток и всех веток, в том числе в удалённых репозиториях:

git branch
git branch -a

Переключиться на ветку

git checkout ВЕТКА

Если необходимо переключиться на другую ветку, но некоторые файлы были изменены, то можно спрятать все изменения, которые не попали в комиты (сохраняются только файлы, которые уже находятся в базе git):

git stash

Восстановить сохранённые изменения:

git stash pop

Изменения сохраняются в виде стека. Просмотр сохранённых снимков:

git stash list

Просмотр ещё не влитых изменений в ветку master:

git log --no-merges master..