n1ro°
RU

Документы · Инструкция

Git worktree: branch is already checked out — что делать

Запустите `git worktree list --porcelain` и найдите нужную строку `branch`. Если каталог существует, откройте его и пров

Редакция N1RO · Проверено

Короткий ответ

Выполните `git worktree list` и найдите каталог, где ветка уже открыта; работайте там, переключите тот worktree на другую ветку либо удалите действительно ненужный worktree, а для устаревшей записи используйте `git worktree prune`.

Проверка по порядку

  • Запустите `git worktree list --porcelain` и найдите нужную строку `branch`.
  • Если каталог существует, откройте его и проверьте `git status` перед изменениями.
  • Если оба worktree нужны, создайте для второго новую ветку через `git worktree add ./other -b <new-branch> <base>`.

Исправление

  1. Если старый worktree больше не нужен и чистый, удалите `git worktree remove <path>`.
  2. Если каталог удалили вручную, выполните `git worktree prune` и снова `git worktree list`.
  3. Повторите `git worktree add` только после устранения конфликтующей регистрации или выбора другой ветки.

Как понять, что исправлено

  • git worktree list показывает одну рабочую привязку branch, а команда add/switch больше не падает с already checked out.

Важно

Не применяйте git worktree add --force только ради обхода сообщения: защита не даёт одновременно работать с одной branch в двух worktree.

Что учитывать

Не применяйте git worktree add --force только ради обхода сообщения: защита не даёт одновременно работать с одной branch в двух worktree.

Источники и проверка

Фактическая часть сверена по первичным источникам (в т.ч. git-worktree Documentation). Пример и формулировки — редакция N1RO на 2026-09-17.