Вернуться -------------------------------------------------------------------------------- # Буфер обмена -------------------------------------------------------------------------------- git stash | Сохранить изменения в бумер обмена. git stash pop | Выгрузить изменения сделаные предыдущей командой. -------------------------------------------------------------------------------- # Рабочая директория -------------------------------------------------------------------------------- git checkout -f | Сбросить индекс и откатить все изменения в рабочей директории. git checkout @ . | Тоже самое. git reset --hard | Тоже самое. git checkout . | Откатить все изменения до версии в индекс, если индекс пуст, то до версии коммит. git checkout 6c2e81b . | Откатить все изменения до версии из коммит "6c2e81b" и добавить их в индекс и рабочую директорию. -------------------------------------------------------------------------------- # Индекс -------------------------------------------------------------------------------- git add -- index.html | Добавить файл "index.html". git reset -- index.html | Сбросить файл "index.html". git reset | Сбросить все изменения. git add . | Добавить все изменения из текущей директории. git add --all | Добавить все изменения из всех поддиректорий. git add -A | Тоже самое, только сокращенный вариант. -------------------------------------------------------------------------------- # Перемещение указателя ветки на другой коммит -------------------------------------------------------------------------------- git reset --hard 6c2e81b | С удалением всех изменений в рабочей директории и в индекс. git reset --soft 6c2e81b | С сохранением текущих изменений в рабочей директории и в индекс. git reset 6c2e81b | С сохранением текущих изменений только в рабочей директории. git reset --mixed 6c2e81b | Тоже самое, так как --mixed это флаг по умолчанию. -------------------------------------------------------------------------------- # Коммит -------------------------------------------------------------------------------- git commit --amend -m "New comment" | Перезаписать последний коммит с комментарием "New comment". git commit --amend --no-edit | Тоже самое, но без изменения комментария. git commit -a -m "Comment" | Сделать коммит в обход git add, но только для файлов которые уже отслеживаються. git commit -v | Вывести сравнения между индекс и текущий коммит. -------------------------------------------------------------------------------- # Список коммитов -------------------------------------------------------------------------------- git log | Список всех коммитов. git log -15 | Только последние 15 коммитов. git log -- index.html | Только коммиты которые модифицировали файл "index.html". git log -- src/ | Тоже самое, но для всех файлов в директории "src/". git log -p -- index.html | Добавить наглядные различия. git log -p --follow -- index.html | Если файл был переименован. git log -S "foo()" | Только в которых были добавлены или удалены любые файловые данные совпадающие со строкой "foo()". git log --oneline | Сократить вывод до одной строки на коммит. git log --oneline --abbrev=4 | Сократить хэш коммита до 4 символов. git log --oneline --graph | С визуальным отображением веток. git log ..feature | Только коммиты из ветки "feature" исключая коммиты из текущей ветки. git log feature ^master | Только коммиты из ветки "feature" исключая коммиты из ветки "master". git log feature ^master --boundary | Тоже самое, но дополнительно вывести коммит на котором ветки разделились. Наглядно сравнить две ветки git log master...feature --boundary | Ветки "master" и "feature" включительно до коммит где они разделились. -------------------------------------------------------------------------------- # Изменения в коммит -------------------------------------------------------------------------------- git show | Изменения между текущим и предыдущем коммит. git show --name-only | Вывести только имена файлов. git show 6c2e81b | Изменения между текущим коммит и коммит "6c2e81b". git show master | Изменения между текущим коммит и последним коммит в ветке "master". -------------------------------------------------------------------------------- # Сравнение -------------------------------------------------------------------------------- git diff --name-only | Вывести только имена файлов. git diff --word-diff | Включить показ отличий по словам, по умолчанию по строкам. git diff --color-words | Тоже самое, но без добавдения в квадратные и фигурные скобки. git diff -- index.html user.html | Вывести только файлы "index.html" и "user.html". -------------------------------------------------------------------------------- # Сравнение рабочей директории -------------------------------------------------------------------------------- git diff | С индекс, если индекс пуст, то с текущим коммит. git diff @ | С текущим коммит. git diff 6c2e81b | С коммит "6c2e81b". git diff master | С последним коммит в "master". -------------------------------------------------------------------------------- # Сравнение индекс -------------------------------------------------------------------------------- git diff --cached | С текущим коммит. git diff --cached 6c2e81b | С коммит "6c2e81b". git diff --cached master | С последним коммит в "master". -------------------------------------------------------------------------------- # Сравнение коммитов -------------------------------------------------------------------------------- git diff 6c2e81b 4eb51f4 | Коммит "6c2e81b" с коммит "4eb51f4". -------------------------------------------------------------------------------- # Сравнение между ветками -------------------------------------------------------------------------------- git diff master feature | С последним коммит в "master" и "feature". git diff master..feature | Тоже самое. git diff master...feature | С коммит на котором отделилась "feature" от "master" c последним коммит в "feature". --------------------------------------------------------------------------------