5 малоизвестных Git-приёмов, которые спасут вашу жизнь
1. git reflog — история всех ваших шагов
Не только коммиты, но и переключения веток, сбросы и прочие «хаки»:
2. git rerere — повторное разрешение конфликтов
Если в одной и той же точке вы часто сталкиваетесь с конфликтами, включите rerere:
3. git bisect — автоматический поиск «битого» коммита
Когда баг появился неясно где, let Git do the detective work:
4. git stash push -m — храни временные изменения с заметкой
Чтобы не забыть, зачем вы сохраняете рабочие правки:
5. git worktree — несколько рабочих копий одного репозитория
Для одновременной работы над фичами и багфиксами без переключений:
1. git reflog — история всех ваших шагов
Не только коммиты, но и переключения веток, сбросы и прочие «хаки»:
Код:
git reflog
# вернёт список всех HEAD-перемещений
git checkout HEAD@{3}
# вернёт вас на три шага назад
2. git rerere — повторное разрешение конфликтов
Если в одной и той же точке вы часто сталкиваетесь с конфликтами, включите rerere:
Код:
git config --global rerere.enabled true
# при повторном конфликте Git запомнит ваше решение
3. git bisect — автоматический поиск «битого» коммита
Когда баг появился неясно где, let Git do the detective work:
Код:
git bisect start
git bisect bad # текущая версия с багом
git bisect good v1.0 # последний рабочий тег
# Git сам предложит вам протестировать промежуточные коммиты
4. git stash push -m — храни временные изменения с заметкой
Чтобы не забыть, зачем вы сохраняете рабочие правки:
Код:
git stash push -m "WIP: эксперимент с OAuth"
git stash list
# будет видно вашу подпись
5. git worktree — несколько рабочих копий одного репозитория
Для одновременной работы над фичами и багфиксами без переключений:
Код:
git worktree add ../my-feature-branch feature/X
cd ../my-feature-branch
# у вас рядом две папки: main и my-feature-branch