Поиск по сайту
Ctrl + K
Вопросы по Git

Какова цель команды git worktree?

Команда git worktree позволяет создать дополнительные рабочие деревья для одного и того же репозитория Git. Это может быть удобно в ситуациях, когда вам нужно одновременно работать над несколькими ветками или версиями проекта.

Зачем это нужно?

Предположим, что вы работаете над новой функциональностью в ветке feature-branch, но вам также нужно исправить ошибку в основной ветке main. Вместо того чтобы переживать за переключение между ветками и последующими конфликтами, вы можете использовать git worktree, чтобы создать отдельную рабочую копию для каждой ветки.

Как использовать git worktree?

Вот как вы можете создать и использовать рабочие деревья с помощью git worktree.

  • Создание нового рабочего дерева
  • Для начала вам нужно создать новое рабочее дерево. С помощью команды git worktree add вы можете указать путь к новому рабочему дереву и ветку, с которой вы хотите работать:

    git worktree add ../feature-branch feature-branch
    

    В этом примере мы создаем новое дерево по пути ../feature-branch, основываясь на ветке feature-branch.

  • Перейдите в новое рабочее дерево
  • Теперь вы можете перейти в созданное рабочее дерево:

    cd ../feature-branch
    

    Теперь вы можете работать в этой папке как в обычном репозитории Git. Внесенные изменения будут относиться именно к этой ветке, и их можно будет закоммитить, не мешая другим веткам.

  • Список рабочих деревьев
  • Чтобы посмотреть все активные рабочие деревья в вашем репозитории, вы можете использовать команду:

    git worktree list
    

    Это покажет вам список всех рабочих деревьев и их ассоциацию с ветками.

  • Удаление рабочего дерева
  • Когда вам больше не нужно рабочее дерево, вы можете удалить его с помощью команды:

    git worktree remove ../feature-branch
    

    Пример

    Рассмотрим пример, в котором вы работаете над новой функцией и исправляете ошибки одновременно:

    # Создаём новый рабочий каталог для работы над функциональностью
    git worktree add ../my-feature-feature feature-branch
    
    # Переходим в новую папку
    cd ../my-feature-feature
    
    # Теперь вы можете работать над вашим кодом
    # Внесите изменения и закоммитьте их
    git add .
    git commit -m "Добавлена новая функция"
    
    # Вернитесь в основную ветку, чтобы исправить ошибку
    cd ../my-repository
    git checkout main
    
    # Создайте новое рабочее дерево для исправления ошибки
    git worktree add ../bugfix main
    
    # Теперь исправьте ошибку в этой новой папке
    cd ../bugfix
    # ... работа над исправлением
    

    Заключение

    Команда git worktree очень полезна для фронтенд-разработчиков и всех, кто работает с Git, так как она помогает легко управлять несколькими ветками и задачами одновременно, избегая нежелательных переключений между ветками и конфликтов при слиянии.