Шпаргалка по Git

Полный справочник команд Git, классифицированный по категориям для быстрого поиска

Все: 65 个命令

Базовые команды(13)

git init

Создать новый Git репозиторий в текущем каталоге

git clone <url>

Клонировать удалённый репозиторий локально

git clone --depth=1 <url>

Неглубокое клонирование, получить только последний коммит

git add <file>

Добавить файл в индекс

git add .

Добавить все изменения в индекс

git commit -m "message"

Закоммитить изменения из индекса

git commit --amend

Изменить последний коммит

git status

Показать текущее состояние репозитория

git diff

Показать незакоммиченные изменения

git diff --staged

Показать изменения в индексе

git config --list

Показать все настройки

git config --global user.name "name"

Установить глобальное имя пользователя

git config --global user.email "email"

Установить глобальный email

Управление ветками(14)

git branch

Показать все локальные ветки

git branch -a

Показать все ветки (включая удалённые)

git branch <name>

Создать новую ветку

git branch -d <name>

Удалить ветку

git branch -m <old> <new>

Переименовать ветку

git checkout <branch>

Переключить ветку

git checkout -b <branch>

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

git switch <branch>

Переключить ветку (Git 2.23+)

git switch -c <branch>

Создать и переключиться на новую ветку (Git 2.23+)

git merge <branch>

Слить указанную ветку в текущую

git merge --no-ff <branch>

Слить ветку и создать merge-коммит

git rebase <branch>

Rebase текущей ветки на указанную

git rebase --continue

Продолжить rebase после разрешения конфликта

git cherry-pick <commit>

Выбрать конкретный коммит для слияния в текущую ветку

Удалённые операции(10)

git remote -v

Показать информацию об удалённом репозитории

git remote add <name> <url>

Добавить удалённый репозиторий

git fetch <remote>

Получить последнее содержимое из удалённого репозитория

git fetch --all

Получить обновления всех удалённых репозиториев

git pull <remote> <branch>

Получить и слить удалённую ветку

git pull --rebase

Получить и сделать rebase

git push <remote> <branch>

Отправить в удалённый репозиторий

git push -f

Принудительно отправить (использовать осторожно)

git push -u origin <branch>

Отправить и установить upstream-ветку

git push origin --delete <branch>

Удалить удалённую ветку

Отмена изменений(8)

git reset <file>

Отменить индексацию файла

git reset --soft HEAD~1

Отменить последний коммит, сохранив изменения

git reset --mixed HEAD~1

Отменить коммит и индексацию, сохранив рабочую директорию

git reset --hard HEAD~1

Отменить коммит и отбросить все изменения

git revert <commit>

Отменить указанный коммит (создать новый коммит)

git restore <file>

Восстановить файл в рабочей директории (Git 2.23+)

git restore --staged <file>

Отменить индексацию файла (Git 2.23+)

git clean -fd

Удалить неотслеживаемые файлы и каталоги

Управление тегами(6)

git tag

Показать все теги

git tag <name>

Создать лёгкий тег

git tag -a <name> -m "msg"

Создать аннотированный тег

git tag -d <name>

Удалить локальный тег

git push origin <tag>

Отправить тег в удалённый репозиторий

git push --tags

Отправить все теги в удалённый репозиторий

История(7)

git log

Показать историю коммитов

git log --oneline

Компактный просмотр истории коммитов

git log --oneline --graph --all

Графическое отображение истории всех веток

git show <commit>

Показать детали коммита

git blame <file>

Показать историю изменений каждой строки файла

git reflog

Показать всю историю операций

git bisect start

Начать бинарный поиск проблемного коммита

Stash(7)

git stash

Сохранить текущие изменения в stash

git stash save "message"

Сохранить изменения в stash с сообщением

git stash list

Показать все stash

git stash pop

Применить и удалить последний stash

git stash apply

Применить последний stash без удаления

git stash drop

Удалить последний stash

git stash clear

Удалить все stash

Что такое Git?

Git — это распределённая система контроля версий, созданная Линусом Торвальдсом для управления историей версий кода проекта. Она поддерживает совместную разработку несколькими людьми, отслеживает каждое изменение кода, поддерживает управление ветками и откат версий.

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

Использование

Нажмите на любую карточку команды, чтобы скопировать её. Используйте поле поиска для быстрого нахождения конкретной команды. Нажмите на метки категорий для фильтрации команд определённого типа.

Полезные советы

Отменить git add
Используйте git restore --staged или git reset для отмены индексации
Изменить последний коммит
Используйте git commit --amend для изменения сообщения или содержимого последнего коммита
Временно сохранить прогресс
Используйте git stash для временного сохранения прогресса при переключении на другую ветку
Отменить отправленный коммит
Используйте git revert вместо git reset, чтобы не нарушать историю удалённого репозитория
Просмотреть историю файла
Используйте git log -p для просмотра полной истории изменений файла

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

В: В чём разница между git pull и git fetch?

О: git fetch только получает обновления из удалённого репозитория без автоматического слияния; git pull равен git fetch + git merge. Рекомендуется сначала использовать fetch для просмотра изменений, затем решать, как их слить.

В: Как отменить последний коммит?

О: Используйте git reset --soft HEAD~1 для отмены коммита с сохранением изменений; используйте git reset --hard HEAD~1 для полной отмены и отбрасывания изменений. Если коммит уже отправлен, безопаснее использовать git revert.

В: Как разрешить конфликт слияния?

О: Вручную отредактируйте файл с конфликтом, выберите содержимое для сохранения, затем git add пометит его как разрешённый, и git commit завершит слияние. Используйте git mergetool для визуального разрешения конфликтов.

В: В чём разница между git merge и git rebase?

О: merge создаёт merge-коммит, сохраняя историю веток; rebase перемещает коммиты в конец целевой ветки, делая историю линейной. Для публичных веток рекомендуется merge, для локальных — rebase.

В: Как удалить большой файл из отправленных коммитов?

О: Используйте git filter-branch или BFG Repo-Cleaner. Обратите внимание: это переписывает историю, потребуется принудительная отправка.