Шпаргалка Git — команды, которые можно скопировать

Все команды Git, которые вы используете каждый день, и те, что нужны, когда что-то пошло не так, — с пояснением в одну строку. Введите один раз имена ветки, remote и файлов и копируйте готовые команды.

Обновлено
Ваши значенияВсе примеры ниже обновляются при вводе

Настройка и конфиг

7
git config --global user.name "Ada Lovelace"

Укажите имя автора, которое будет записано в ваших коммитах.

git config --global user.email "ada@example.com"

Укажите email для коммитов — используйте тот, что привязан к вашему аккаунту GitHub или GitLab.

git config --global init.defaultBranch main

Задаёт имя первой ветки в каждом новом репозитории.

git config --global pull.rebase true

Делает git pull перемещать ваши локальные коммиты (rebase) вместо создания merge-коммитов.

git config --global core.editor "code --wait"

Использовать VS Code для сообщений коммитов и интерактивного rebase.

git config --global alias.lg "log --oneline --graph --decorate --all"

Добавляет алиас git lg для компактного графа истории.

git config --list --show-origin

Показывает все настройки и файл, из которого они взяты, — удобно, когда настройка «не работает».

Создание репозитория

6
git init

Превращает текущую папку в Git-репозиторий.

git clone git@github.com:acme/app.git

Скачивает репозиторий со всей историей.

git clone --depth 1 git@github.com:acme/app.git

Поверхностное клонирование только с последним коммитом — намного быстрее для больших репозиториев и CI.

git remote add origin git@github.com:acme/app.git

Связывает локальный репозиторий с удалённым.

git remote -v

Показывает remote и их URL для fetch и push.

git remote set-url origin git@github.com:acme/app.git

Меняет URL remote, например, с HTTPS на SSH.

Индекс и коммит

12
git status -sb

Краткий статус с именем ветки и информацией о том, на сколько коммитов вы впереди или позади remote.

git add src/app.js

Добавляет один файл в индекс для следующего коммита.

git add -p

Просмотр и добавление изменений по фрагментам — лучший способ делать точечные коммиты.

git add -A

Добавляет всё: новые, изменённые и удалённые файлы.

git commit -m "Add login form"

Создаёт коммит из изменений в индексе с сообщением.

git commit --amend --no-edit

Добавляет изменения из индекса в последний коммит и сохраняет его сообщение. Не используйте для уже отправленных коммитов.

git commit --amend -m "Better message"

Переписывает сообщение последнего коммита.

git diff

Показывает изменения, которые ещё не добавлены в индекс.

git diff --staged

Показывает, что именно войдёт в следующий коммит.

git restore --staged src/app.js

Убирает файл из индекса, но сохраняет ваши правки.

git restore src/app.js

опасно Отбрасывает незакоммиченные правки в файле и возвращает его к последнему коммиту.

git rm --cached src/app.js

Прекращает отслеживание файла (например, после добавления в .gitignore), сохраняя его на диске.

Ветки

9
git branch -a

Показывает локальные и удалённые ветки.

git switch -c feature/login

Создаёт новую ветку и переключается на неё.

git switch feature/login

Переключается на существующую ветку.

git switch -

Возвращает вас на предыдущую ветку.

git branch -m feature/login

Переименовывает текущую ветку.

git branch --merged main

Показывает ветки, уже слитые в основную, — их можно безопасно удалить.

git branch -d feature/login

Удаляет слитую локальную ветку.

git branch -D feature/login

опасно Принудительно удаляет локальную ветку, даже если её коммиты нигде не слиты.

git push origin --delete feature/login

опасно Удаляет ветку на remote.

Синхронизация с remote

6
git fetch --all --prune

Загружает новые коммиты и удаляет из локального списка ветки, которые были удалены на remote.

git pull

Загружает и объединяет upstream-ветку с текущей.

git pull --rebase origin main

Переносит ваши локальные коммиты поверх свежей main.

git push -u origin feature/login

Отправляет новую ветку и назначает её upstream, чтобы дальше git push работал без аргументов.

git push --force-with-lease

опасно Принудительная отправка после rebase, но команда откажется, если кто-то успел отправить свои изменения. Намного безопаснее, чем --force.

git push origin --tags

Отправляет все локальные теги.

Слияние и rebase

10
git merge feature/login

Сливает другую ветку с текущей.

git merge --no-ff feature/login

Всегда создаёт merge-коммит, чтобы ветка оставалась видна в истории.

git merge --squash feature/login

Добавляет все изменения ветки одним набором, готовым для одного коммита.

git rebase main

Переносит коммиты вашей ветки поверх свежей main для линейной истории.

git rebase -i HEAD~3

опасно Интерактивно объединяет, переупорядочивает, переписывает или удаляет последние N коммитов. Переписывает историю.

git rebase --continue

Продолжает rebase после разрешения конфликтов и добавления файлов в индекс.

git rebase --abort

Отменяет rebase и возвращает к исходному состоянию.

git merge --abort

Отменяет слияние с конфликтами.

git checkout --theirs src/app.js

Во время конфликта берёт входящую версию файла (--ours оставляет вашу).

git cherry-pick a1b2c3d

Применяет один коммит из другой ветки к текущей.

Отмена и исправление ошибок

9
git reset --soft HEAD~1

Отменяет последний коммит, но оставляет его изменения в индексе.

git reset HEAD~1

Отменяет последний коммит и оставляет его изменения как неиндексированные правки.

git revert a1b2c3d

Создаёт новый коммит, который отменяет предыдущий, — безопасный способ отмены в общих ветках.

git reset --hard HEAD~1

опасно Удаляет последний коммит и все его изменения.

git reset --hard origin/main

опасно Делает локальную ветку точной копией remote, отбрасывая локальные коммиты и правки.

git reflog

Показывает все коммиты, на которые недавно указывал HEAD, — так находят «потерянные» коммиты после неудачного reset или rebase.

git reset --hard HEAD@{1}

опасно Возвращает HEAD к состоянию до последнего reset, rebase или checkout.

git clean -nd

Показывает, какие неотслеживаемые файлы и папки удалит git clean.

git clean -fd

опасно Удаляет неотслеживаемые файлы и папки. Сначала выполните предпросмотр -nd.

Stash

6
git stash push -m "wip: feature/login"

Откладывает незакоммиченные изменения с меткой.

git stash -u

Stash с учётом неотслеживаемых файлов.

git stash list

Показывает все stash.

git stash pop

Применяет последний stash и удаляет его из списка.

git stash apply stash@{0}

Применяет stash, но оставляет его в списке.

git stash drop stash@{0}

опасно Окончательно удаляет stash.

История и просмотр

9
git log --oneline --graph --all

Компактный граф всех веток.

git log -p -- src/app.js

История одного файла с diff каждого изменения.

git log --author="Ada Lovelace" --since="2 weeks ago"

Коммиты одного автора за выбранный период.

git log -S "functionName"

Находит коммиты, которые добавили или удалили строку, — отлично подходит для вопроса «когда это пропало?».

git blame -w src/app.js

Показывает, кто последним менял каждую строку, игнорируя изменения только пробелов.

git show a1b2c3d

Показывает сообщение и diff коммита.

git diff main...feature/login

Изменения в ветке с момента её отделения от main — то, что показал бы pull request.

git shortlog -sn

Количество коммитов на каждого автора.

git bisect start
git bisect bad
git bisect good v1.2.0

Бинарный поиск по истории коммита, который внёс ошибку. Отмечайте каждый шаг как good или bad, затем выполните git bisect reset.

Теги и релизы

4
git tag -a v1.2.0 -m "Release v1.2.0"

Создаёт аннотированный тег для релиза.

git push origin v1.2.0

Отправляет один тег.

git describe --tags --abbrev=0

Выводит последний тег.

git tag -d v1.2.0

опасно Удаляет локальный тег.

Worktree и дополнительно

4
git worktree add ../feature/login feature/login

Переключает другую ветку в отдельную папку — работа с двумя ветками без stash.

git worktree list

Показывает подключённые worktree.

git submodule update --init --recursive

Загружает и переключает все submodule после клонирования.

git archive --format=zip -o release.zip HEAD

Экспортирует текущее дерево в ZIP без папки .git.

Ваши данные никогда не покидают ваш компьютер. Вся обработка выполняется на 100% локально в вашем браузере.

Был ли этот инструмент полезен?0.0 Оценок: 0
Опишите задачу в GitОтменить коммит, переименовать ветку, squash, stash, revert или убрать файл из отслеживания.Генератор команд Git →

Как пользоваться: Шпаргалка Git

  1. Введите свои значения (ветку, remote, файл, коммит) в полях сверху — все примеры на странице обновятся сразу.
  2. Найдите нужную команду через поиск или перейдите к разделу.
  3. Нажмите Копировать, чтобы скопировать готовую строку, или Копировать раздел, чтобы получить блок с комментариями.
  4. Команды, отмеченные как опасные, удаляют или перезаписывают данные — прочитайте примечание перед запуском.

Работа с Git за минуту

Большинство задач идут по одному циклу: создаёте ветку командой git switch -c, вносите изменения, проверяете их через git diff, добавляете в индекс командой git add -p, делаете коммит и отправляете его командой git push -u. Перед открытием pull request обновите ветку командой git pull --rebase origin main, чтобы она корректно легла поверх свежей main.

Команды, которые переписывают историю

commit --amend, rebase, reset и push --force меняют уже существующие коммиты. В ветке, которой пользуетесь только вы, это нормально, но в общих ветках остальным участникам придётся восстанавливать свои копии. В общих ветках отменяйте изменения через git revert, а если без force-push не обойтись, используйте --force-with-lease.

Ничего не теряется 30 дней

Даже после неудачного reset --hard или rebase закоммиченная работа остаётся в репозитории. git reflog показывает, где был HEAD, так что можно вернуться к любому недавнему состоянию. Исключение — незакоммиченные изменения: коммитьте или сохраняйте их в stash почаще.

Создавайте команды для конкретных ситуаций в генераторе команд Git, а новые репозитории начинайте с генератора .gitignore.

Также ищут как: git cheat sheet, git rebase, git stash.

Инструменты, которые хорошо сочетаются с Шпаргалка Git

  • Шпаргалка Docker — Команды Docker и Docker Compose, которые нужны каждую неделю, с пояснением в одну строку.
  • Шпаргалка по Linux-командам — Команды Linux и bash, которые разработчики используют на серверах и ноутбуках: файлы, поиск, права доступа, процессы, логи, сеть и SSH.
  • Промпты для разработчиков — Проверенные промпты для задач, которые вы решаете каждый день: отладка, ревью, тесты, рефакторинг, SQL, сообщения коммитов и документация.
  • Шпаргалка PowerShell — Команды PowerShell, которые разработчики и администраторы используют каждый день в Windows, а также в PowerShell 7 на macOS и Linux.

Часто задаваемые вопросы

В чём разница между git fetch и git pull?
git fetch загружает новые коммиты из remote, но не трогает вашу ветку. git pull делает fetch, а затем сливает (или перемещает через rebase) эти коммиты в текущую ветку.
Как отменить последний коммит?
Используйте git reset --soft HEAD~1, чтобы отменить коммит и оставить его изменения в индексе. Если коммит уже отправлен в общую ветку, лучше использовать git revert <commit>, чтобы не переписывать чужую историю.
Что лучше: merge или rebase?
Делайте rebase своей feature-ветки на main, чтобы история оставалась линейной и понятной. Используйте merge (или squash-merge), когда переносите готовую работу в общую ветку. Никогда не делайте rebase коммитов, которые уже забрали другие люди.
Как вернуть коммит, который потерялся после reset?
Выполните git reflog, найдите строку из времени до reset и выполните git reset --hard HEAD@{n} или создайте ветку от хеша этого коммита.
Можно ли установить Шпаргалка Git как веб-приложение и пользоваться им офлайн?
Да. Шпаргалка Git — это веб-приложение (PWA), которое можно установить из браузера, без скачивания из магазина приложений. В Chrome или Edge (Windows, macOS, Linux, ChromeOS) или на Android нажмите вверху этой страницы «Установить приложение»; на iPhone и iPad используйте «Поделиться → На экран «Домой»», а в Safari 17+ на Mac — «Файл → Добавить в Dock». После этого приложение откроется в отдельном окне со своим значком, и так как оно полностью работает в браузере, оно продолжит работать офлайн. Firefox на компьютере не умеет устанавливать веб-приложения. Как работает установка.

Похожие инструменты

localГенератор команд GitВыберите задачу, например «отменить последний коммит, но сохранить изменения» или «переименовать ветку на…localГенератор .gitignoreОтметьте свой стек — Node, Python, React, Next.js, Docker, macOS, VS Code и ещё 40 вариантов — и получите…localШпаргалка DockerКоманды Docker и Docker Compose, которые нужны каждую неделю, с пояснением в одну строку. Задайте образ,…localШпаргалка по Linux-командамКоманды Linux и bash, которые разработчики используют на серверах и ноутбуках: файлы, поиск, права…localПромпты для разработчиковПроверенные промпты для задач, которые вы решаете каждый день: отладка, ревью, тесты, рефакторинг, SQL,…localШпаргалка PowerShellКоманды PowerShell, которые разработчики и администраторы используют каждый день в Windows, а также в…