Удобное код-ревью с git worktree

К моему удивлению, довольно мало людей знают про такую вещь, как git worktree. А ведь это очень удобная штука, которой я пользуюсь, когда делаю код-ревью. Суть в том, что мы можем не останавливать свою работу в текущей ветке, не возиться со stash’ами и не ломать текущее состояние в редакторе кода, а открыть новую ветку из отдельного каталога без клонирования репозитория.

Делается это очень просто:

cd /projects/my-project
git worktree add /projects/wt.my-project feat/some-feature

Где /projects/wt.my-project имя каталога (также можно использовать относительные пути), куда будет спроецирована ветка feat/some-feature. Префикс wt. я использую, чтобы отделить worktree каталоги от основного репозитория.

Дальше можно открыть wt.my-project в новом окне редактора и спокойно делать ревью или даже продолжить разработку этой ветки.

Затем, можно удалить worktree:

git worktree remove /projects/wt.my-project

Или можно оставить и использовать дальше, переключаясь на другие ветки, когда это необходимо. Стоит учесть, что одновременно одна и та же ветка не может быть открыта в основном рабочем каталоге и в worktree.