
10 Git команд которые я хотел бы знать раньше
Git знают все. Но большинство использует одни и те же пять команд по кругу add, commit, push, pull, merge. Остальное открывается случайно когда что-то пошло не так.
Вот команды которые я хотел бы знать раньше.
1. git commit --amend --no-edit
Сделал коммит и сразу заметил опечатку или забыл добавить файл. Не нужно делать новый коммит «fix typo». Добавь изменение в стейджинг и используй --amend - предыдущий коммит обновится без изменения сообщения.
git add forgotten-file.ts
git commit --amend --no-edit
2. git stash
Работаешь над фичей - и нужно срочно переключиться на другую ветку. stash убирает незакоммиченные изменения во временное хранилище. git stash pop возвращает их обратно.
git stash
git checkout hotfix-branch
# сделал что нужно
git checkout feature-branch
git stash pop
3. git bisect
Баг появился в какой-то момент но непонятно когда. bisect делает бинарный поиск по истории коммитов - отмечаешь плохой и хороший коммит, Git сам ведёт тебя к тому где сломалось.
git bisect start
git bisect bad # текущий коммит сломан
git bisect good v1.2.0 # здесь всё работало
# Git будет переключать между коммитами, ты говоришь good/bad
4. git cherry-pick
Нужно перенести конкретный коммит из одной ветки в другую без слияния всей ветки целиком.
git cherry-pick abc1234
Можно перенести диапазон:
git cherry-pick oldest_commit^..newest_commit
5. git clean -fd
Убирает все неотслеживаемые файлы и папки. Полезно когда нужно вернуть рабочую директорию в чистое состояние - особенно после экспериментов или генерации файлов.
git clean -fd # f = force, d = включая папки
git clean -fdn # сначала посмотреть что удалится (dry run)
6. git log --oneline --graph
Визуальная история веток прямо в терминале. Намного лучше читается чем дефолтный git log.
git log --oneline --graph --decorate --all
7. git blame
Показывает кто и когда написал каждую строку файла. Полезно когда хочешь понять контекст странного куска кода - и кому задать вопрос.
git blame src/utils/auth.ts
8. git reflog
Лог всех действий с HEAD - включая те которые не видны в обычном git log. Спасает когда случайно удалил ветку или сделал reset --hard и хочешь всё вернуть.
git reflog
git checkout HEAD@{2} # вернуться к состоянию два действия назад
9. git diff --staged
Показывает что именно попадёт в следующий коммит. Простой но недооценённый способ проверить себя перед git commit.
git diff --staged
10. git worktree
Позволяет работать с несколькими ветками одновременно в разных папках - без stash и checkout. Особенно удобно когда нужно быстро проверить что-то в другой ветке не прерывая текущую работу.
git worktree add ../hotfix-branch hotfix-branch
# теперь две рабочие директории - две разные ветки
Git это инструмент который раскрывается постепенно. Базовые команды решают 80% задач. Остальные 20% - это когда что-то пошло не так или когда хочется работать быстрее. 🔧

Комментарии