Git Worktrees

Продвинутый Git

Amanda Crawford-Adamo

Software and Data Engineer

Что такое Git Worktree?

Команда Git Worktree

git worktree
  • Позволяет «переключаться» на несколько веток в рабочем пространстве.
  • Похоже на клонирование репозитория, но эффективнее
  • Не нужно сохранять изменения в stash
  • Не нужно переключаться между ветками в процессе разработки

Схематичное дерево из кругов и линий

Продвинутый Git

Git Worktree против Git Switch

Таблица сравнивает использование git worktree и git switch в процессе разработки. $$

Git Worktree Git Switch
Несколько активных веток Одна активная ветка
Отдельные директории Единая рабочая директория
Stash не требуется Может потребоваться stash
Продвинутый Git

Создание Git Worktree

Создание нового worktree из ветки <branch> в директорию <path>

git worktree add <path> <branch>

Пример

Создание нового worktree из ветки bugfix/data-validation в директорию ../etl-bugfix

git worktree add ../etl-bugfix bugfix/data-validation
Продвинутый Git

Просмотр и удаление Worktrees

  • Список всех активных worktrees: git worktree list

Пример вывода

$ git worktree list
flight-pipeline            a1b2c3d [main]
flight-pipeline-feature    e4f5g6h [feature]
flight-pipeline-hotfix     i7j8k9l [hotfix]
  • Удаление worktree из директории <path>: git worktree remove <path>

Пример вывода

$ git worktree remove flight-pipeline-hotfix
flight-pipeline-hotfix: deleted
Продвинутый Git

Когда использовать Git Worktrees

Когда использовать:

  • Работа над несколькими функциями одновременно
  • Срочные исправления без прерывания текущей работы
  • Тестирование разных веток параллельно
  • Проверка кода без остановки разработки

Стоит пересмотреть, если:

  • Ограничено дисковое пространство
  • Проект часто обновляется со сложными слияниями
Продвинутый Git

Рекомендации по использованию Git Worktrees

При работе с Git worktrees придерживайтесь следующих рекомендаций:

  1. Используйте понятные соглашения об именовании директорий worktree
  2. Регулярно удаляйте неиспользуемые worktrees, чтобы поддерживать порядок
  3. Следите за дисковым пространством, особенно в крупных проектах
  4. Применяйте worktrees для краткосрочной параллельной работы, чтобы избежать путаницы
Продвинутый Git

Давайте потренируемся!

Продвинутый Git

Preparing Video For Download...