Шпаргалка по командам Git
В Git около 150 подкоманд, и некоторые из них опасно похожи друг на друга, reset против restore, checkout против switch, rm против restore --staged. Этот справочник группирует команды, которые вы реально набираете, по ситуациям: повседневная работа, ветки, отмена ошибок и stash. Выберите нужную группу и скопируйте блок.
Как пользоваться шпаргалкой
-
1
Выберите тему
Повседневная работа, ветки, отмена или stash, каждой соответствует свой образ мышления.
-
2
Пробегитесь по блоку
Каждая строка, это готовая рабочая команда; заполнителей в угловых скобках нет, если это не отмечено явно.
-
3
Скопируйте нужную
Вставьте в терминал, поправьте имя ветки или SHA коммита и запустите.
Почему команды путают даже опытных пользователей
Пользовательский слой (porcelain) Git разрастался постепенно, командой за командой. checkout перегрузили сразу двумя задачами, «переключить ветку» и «восстановить файл»; а reset находится где-то между «отбросить работу» и «передвинуть указатель ветки». Начиная с Git 2.23 появились более понятные глаголы:
| Старое | Новое (понятнее) |
|---|---|
git checkout branch |
git switch branch |
git checkout -b new |
git switch -c new |
git checkout -- file |
git restore file |
git checkout --staged file |
git restore --staged file |
Безопасная лестница отмены
- Восстановить один файл:
git restore path/to/file(не проиндексированный) илиgit restore --staged path/to/file(проиндексированный, но ещё не закоммиченный). - Отменить последний коммит, сохранив изменения:
git reset --soft HEAD~1. - Отменить последний коммит и отбросить изменения:
git reset --hard HEAD~1(необратимо; убедитесь, что нет незакоммиченной работы). - Откатить общий коммит:
git revert <sha>, создаёт новый коммит, отменяющий старый; безопасно для уже отправленной истории.
Этикет работы со stash
- Всегда делайте stash с сообщением:
git stash push -m "wip: подключаю API". - Перед
popсмотрите список черезgit stash list, безымянные stash-и быстро накапливаются. git stash popприменяет и удаляет;git stash applyприменяет и оставляет.
Восстановление
Потеряли коммит после hard reset? Скорее всего, он ещё в reflog. Выполните git reflog, чтобы увидеть все перемещения HEAD за последние 90 дней, и git reset --hard <sha>, чтобы вернуться к нужному состоянию.
Часто задаваемые вопросы
Начиная с Git 2.23 (август 2019 года) проект разделил перегруженную команду checkout на две. switch переключает ветки, restore восстанавливает файлы. Обе по-прежнему существуют ради обратной совместимости, но их проще читать, когда позже просматриваешь историю команд в терминале.
reset перемещает указатель ветки (а при необходимости и рабочее дерево). revert создаёт новый коммит, отменяющий предыдущий, безопасно в общей ветке. checkout / restore меняют файлы в рабочем дереве, не переписывая историю.
Используйте git revert <sha>, чтобы добавить компенсирующий коммит, и отправьте именно его. Избегайте связки git reset --hard + git push --force в общих ветках, если команда явно не договорилась об этом.
Команды, это статический текст, отрисованный на странице. Выбранная тема отправляется на сервер только для показа соответствующих команд и попадает в ссылку страницы при переходе между двумя шагами. Она не сохраняется и не логируется.
Сопутствующие инструменты
Справочная таблица ASCII
Полная таблица ASCII от 0 до 127 с десятичным, шестнадцатеричным, восьмеричным и двоичным представлением, а также записью числовых ссылок HTML, включая NUL, LF и DEL.
Справочник сочетаний клавиш
Ищите документированные сочетания по умолчанию для VS Code, Chrome и Bash с GNU Readline в macOS, Windows и Linux.
Справочник символов HTML
Справочник HTML-сущностей с поиском, их именованными и числовыми кодами, а также копированием специальных символов и знаков одним кликом.
Шпаргалка по Markdown
Практический справочник Markdown с настоящим предпросмотром и готовыми для копирования примерами заголовков, списков, таблиц, кода, ссылок, изображений и синтаксиса GFM.
Счетчик FPS
Измерьте FPS браузера через requestAnimationFrame: сглаживание, минимальная и максимальная частота кадров, порог предупреждения и график по желанию. Работает локально, без загрузок и API.
Генератор EditorConfig
Создайте файл .editorconfig с вашими правилами стиля и размера отступа, конца строки, кодировки и пробелов для единообразного форматирования во всех IDE и редакторах.
Инструмент доступен на других языках
- Feuille de triche des commandes Git [FR]
- ورقة مرجعية لأوامر Git [AR]
- Git-Befehlsübersicht [DE]
- Git-kommandon fusklapp [SV]
- คู่มือคำสั่ง Git สำหรับการใช้งานอย่างรวดเร็วและสะดวก [TH]
- Hoja de trucos de comandos de Git [ES]
- Git 명령어 치트시트 [KO]
- Lembar Contekan Perintah Git [ID]
- Gitコマンドチートシート [JA]
- Git-commando's spiekbriefje [NL]
- Bảng tra nhanh lệnh Git [VI]
- Ściąga z poleceń Git [PL]
- Folha de Dicas de Comandos Git [PT]
- Git Command Cheatsheet [EN]
- Promemoria dei comandi Git [IT]
- Git Komutları Kopya Kağıdı [TR]
- Git命令速查表 [ZH]