…очень краткая инструкция. Как и всё в моём блоге ☺

C версии 2.5 в Git появились рабочие деревья – worktree. Это новшество позволяет выгружать в отдельную папку единичные ветки и работать с ними параллельно работе с текущей рабочей веткой.

Я вам скажу это чертовски удобно! Сделать быструю правку в отдельной ветке без танцев с бубнами (stash - checkout - commit - push - checkout - stash pop, либо каким-нибудь другим способом) теперь возможно! Да, умудрённые опытом гуру скажут мне, что можно всё тоже самое сделать иначе и вообще преимуществ они не видят, но супротив одного важного аргумента возразить мало кому удастся: рабочие деревья позволяют держать запущенными две версии вашего софта, что может быть полезно для сравнения поведения после внесённых правок.

Подробную документацию по работе можно найти здесь.

Пример работы с worktree


Добавить рабочую ветку
git worktree add ../folder name-of-branch
Посмотреть список рабочих деревьев
git worktree list
Когда все изменения сделаны и отправлены на сервер можно просто удалить эту папку, а затем выполнить команду которая всё подчистит.
git worktree prune

Ошибка fatal: '' is already checked out at '' (fatal: «…» уже находится на …)


Эта ошибка лечится удалением директории .git/worktrees/ или её содержимого