Show Menu
Cheatography

Git (Russian) Cheat Sheet (DRAFT) by

This is a draft cheat sheet. It is a work in progress and is not finished yet.

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

git config --global user.name "Your Name"
Устана­вливает имя, которое будет указано в коммитах и тэгах
git config --global user.email "­you­@ex­amp­le.c­om­"
Устана­вливает email, который будет указано в коммитах и тэгах
git config --global color.ui auto
Добавляет немного цвета в вывод команды git

Начало работы

git init [project name]
Создает новый локальный репози­торий. Если указан [project name], Git создаст новую директорию [project name] и создаст репози­торий внутри нее. Иначе репози­торий будет создан в текущей директ­ории.
git clone <pr­oject url>
Скачивает проект со всей историей с удаленного репози­тория.

Игнори­рование файлов

$ cat .gitignore
/logs/
!/logs/,gitkeep
/tmp
*.swp
Согласно этому файлу Git будет игнори­ровать все файлы в папке logs, исключая файл .gitkeep, всю папку /tmp и все файлы формата *.swp. Описание файла работает для директории и поддир­ект­орий, в которой расположен файл .gitignore
 

Популярные команды

git status
Показывает статус работы. Новые, зафикс­иро­ванные, измененные файлы. Текущую ветку.
git diff [file]
Показывает изменения между рабочей директ­орией и зафикс­иро­ванными измене­ниями
git diff --staged [file]
Показывает изменения между зафикс­иро­ванными измене­ниями и индексом (заком­иче­нными измене­ниями)
git checkout [file]
Отменяет изменения в рабочей директории. Операция необра­тимая.
git add [file]
Фиксирует изменения файла. Исполь­зуйте
.
, чтобы добавить все изменения в директории и поддир­ект­ориях.
git reset [file]
Отменяет фиксацию файла.
git commit [-m "­message here"]
Создает новый коммит из зафикс­иро­ванных изменений. Сообщение обязат­ельно. Если не указать его через -m, откроется текстовый редактор.
git rm [file]
Удаляет файл из директории и фиксирует удаление файла.
git stash
Прячет все незафи­кси­ров­анные изменения в "­тай­ник­" (stash).
git stash pop
Применяет изменения из "­тай­ник­а" в рабочей директории и очищает его.
git stash drop
Очищает "­тай­ник­".

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

git branch [-a]
Список всех локальных веток. -a покажет список всех веток (не только локальные)
git branch [name]
Создает новую ветку, ссылаю­щуюся на текущий HEAD
git checkout [-b] [name]
Перекл­ючает рабочую директорию на указанную ветку. С опцией -b создает ветку, если она не сущест­вует.
git merge [from name]
Присое­диняет указанную ветку к текущей.
git branch -d [name]
Удаляет ветку, если она уже вмержена в другую. Исполь­зование -D вместо -d форсирует изменения.

Просмотр изменений

git log [-n count]
Показывает историю коммитов текущей ветки. -n count ограни­чивает кол-во коммитов.
git log --oneline --graph --decorate
Обзор истории ветки. Одна строка на коммит.
git log ref..
Список коммитов ветки, которые не вмерженны в ref. ref может быть имя ветки или имя тэга.
git log ..ref
Список коммитов ветки, которые есть в ref, но нет в текущей ветке.
git reflog
Список действий (мержи, коммиты и т.д.), сделанных в локальном репози­тории.