К моему удивлению, довольно мало людей знают про такую вещь, как 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.