git
45 commands
45 shown
Интерактивный rebase последних N коммитов
Squash, перестановка или редактирование последних 5 коммитов
git rebase -i HEAD~5
Cherry-pick коммита
Применить один коммит из другой ветки
git cherry-pick <sha>
Reflog — восстановить потерянные коммиты
Последние движения HEAD включая rebase и reset
git reflog show --date=relative | head -20
Stash с сообщением
Сохранить незакоммиченную работу (включая untracked) с меткой
git stash push -m 'WIP: feature-x' -u
Применить stash по индексу
Применить и удалить конкретный stash
git stash pop stash@{2}
Bisect — найти сломавший коммит
Бинарный поиск по истории для нахождения регрессии
git bisect start && git bisect bad HEAD && git bisect good <good-sha>
Worktree — несколько веток
Переключиться на ветку в параллельной директории без stash
git worktree add ../feature-branch feature/my-feature
Обновить submodule
Инициализировать и обновить все submodule рекурсивно
git submodule update --init --recursive
Файл на конкретном коммите
Содержимое файла на историческом коммите
git show <sha>:path/to/file
Лог с графом веток
Компактный визуальный граф всех веток репо
git log --oneline --graph --decorate --all | head -40
Поиск по истории коммитов
Найти все коммиты которые добавляли или удаляли строку 'password'
git log -S 'password' --oneline --all
Исправить сообщение последнего коммита
Добавить staged изменения в последний коммит без смены сообщения
git commit --amend --no-edit
Удалить удалённую ветку
Удалить ветку из удалённого репозитория
git push origin --delete feature/old-branch
Удалить неотслеживаемые файлы
Удалить неотслеживаемые файлы и директории (включая gitignore)
git clean -fdx
Fetch всех remote и prune
Обновить все remote и удалить устаревшие tracking ветки
git fetch --all --prune --tags
Изменить сообщение последнего коммита
Переписать сообщение последнего коммита (только локально)
git commit --amend -m 'new message'
Интерактивный rebase последних N коммитов
Слить, переупорядочить или отредактировать последние 5 коммитов
git rebase -i HEAD~5
Stash с сообщением
Сохранить только src/ в stash с описательным именем
git stash push -m 'wip: feature-x' -- src/
Применить конкретный stash
Список stash и применение конкретного по индексу
git stash list && git stash apply stash@{2}
Cherry-pick диапазона коммитов
Применить коммиты от A до B включительно на текущую ветку
git cherry-pick A^..B
Кто изменил строку (blame)
Аннотировать строки 10–25 автором и датой
git blame -L 10,25 --date=short src/main.py
Найти коммит с багом (bisect)
Бинарный поиск по истории для нахождения сломавшего коммита
git bisect start && git bisect bad HEAD && git bisect good v1.0
Изменённые файлы между ветками
Список добавленных, изменённых, удалённых файлов между ветками
git diff --name-status main..feature/x
График истории коммитов
ASCII-граф полной истории коммитов со всеми ветками
git log --oneline --graph --decorate --all
Отменить последний коммит, сохранив изменения
Переместить HEAD назад на один коммит; изменения остаются в дереве
git reset HEAD~1
Сбросить все локальные изменения
Сбросить изменения и удалить неотслеживаемые файлы/директории
git restore . && git clean -fd
Теги с сообщениями
Список всех тегов с первой строкой аннотации
git tag -l -n1
Создать подписанный тег
GPG-подписанный аннотированный тег для релиза
git tag -s v1.2.3 -m 'Release 1.2.3'
Удалить устаревшие remote ветки
Удалить локальные ссылки на удалённые ветки которых больше нет
git fetch --prune
Shallow clone
Клонировать только последний коммит одной ветки (быстро для CI)
git clone --depth=1 --single-branch --branch main <url>
Контрибьюторы по числу коммитов
Список авторов отсортированный по числу коммитов
git shortlog -sn --all
Поиск по сообщениям коммитов
Найти все коммиты чьё сообщение содержит паттерн
git log --all --grep='fix:' --oneline
Поиск по содержимому коммитов
Найти когда строка была добавлена или удалена во всех ветках
git log -S 'functionName' --patch --all
Частичное клонирование
Скачать коммиты и деревья; блобы загружаются по требованию
git clone --filter=blob:none <url>
Worktree для параллельных веток
Переключиться на ветку в отдельной директории без смены текущей
git worktree add ../hotfix-branch hotfix/urgent
Интерактивный rebase последних N коммитов
Интерактивно изменить порядок, squash или отредактировать последние 5 коммитов
git rebase -i HEAD~5
Cherry-pick коммита
Применить конкретный коммит из другой ветки
git cherry-pick abc1234
Stash с сообщением
Сохранить рабочие изменения с описательным сообщением stash
git stash push -m "WIP: feature X"
Список stash
Показать все сохранённые наборы изменений
git stash list
Применить stash по индексу
Применить конкретный stash без его удаления
git stash apply stash@{2}
Найти коммит, который внёс баг
Начать бинарный поиск коммита, введшего баг
git bisect start && git bisect bad && git bisect good v1.0
История изменений файла
Показать полную историю изменений файла включая переименования
git log --follow -p -- path/to/file.py
Отменить последний коммит (сохранить изменения)
Откатить HEAD на один коммит, сохранив стейдженные изменения
git reset --soft HEAD~1
Удалить неотслеживаемые файлы
Удалить неотслеживаемые файлы и директории из рабочего дерева
git clean -fd
Показать ветки, смёрженные в main
Показать локальные ветки, уже смёрженные в main
git branch --merged main
no commands match