Git worktree: работать с двумя ветками в разных папках

Категория: Git · Язык: Bash · Обновлено:

git worktree открывает вторую рабочую папку того же репозитория. Оставьте незакоммиченные изменения в основной ветке и параллельно проверьте hotfix, не делая stash и повторное переключение.

Рабочий пример

Bash
git worktree add ../snipit-hotfix hotfix/login
git worktree list
git worktree remove ../snipit-hotfix
git worktree add -b fix/cache ../fix-cache main

У папок отдельные рабочие файлы и индекс, но общая база объектов Git. Это экономит место относительно повторного clone и позволяет держать две ветки открытыми в редакторе одновременно.

Частый вопрос

Это отдельная копия репозитория?

Рабочие файлы отдельные, а объекты и refs общие. Изменения одной ветки не появляются в другой без коммита или cherry-pick.