Работа с несколькими ветками одновременно в одном репозитории

Nov 29 2022
В идеальном мире каждый разработчик должен сосредоточиться на одной задаче или истории, не переключаясь между разными контекстами. Согласитесь, в наше время это редкость.
Фото Суганта на Unsplash

В идеальном мире каждый разработчик должен сосредоточиться на одной задаче или истории, не переключаясь между разными контекстами. Согласитесь, в наше время это редкость. К счастью, в арсенале git есть идеальный инструмент, позволяющий разработчикам работать с несколькими ветками одновременно, не переходя туда и обратно. Речь идет о git worktree.

Требования:

Чтобы запустить рабочее дерево, вам нужен инициализированный репозиторий, возможно, с несколькими ветвями.

Например, рассмотрим репозиторий с тремя ветками. list-users-API, ветвь функций, которая является текущей активной ветвью, mainветвью и user-unable-to-edit-content, дополнительной ветвью ошибок. Возможный сценарий: ветка ошибок не прошла проверку кода и требуются дальнейшие изменения. Отсюда можно пойти несколькими путями:

  1. Спрячьте весь наш прогресс и переключитесь на ветку ошибок, чтобы применить необходимые изменения.
  2. Клонируйте репозиторий в другую папку и решите проблему, не прячась, но потратив на процесс значительное количество времени.
  3. Третий и последний подход заключается в использовании git worktree, сохранении нашего текущего прогресса в функциональной ветке и полном отказе от переключения.

Реализация:

Чтобы начать, используйте следующую команду для инициализации рабочего дерева :

$ git worktree add <path> [<commit-ish>]

Подготовка рабочего дерева (проверка «пользователь не может редактировать контент»)

Если вы используете git branchnow, вы увидите +символ, предшествующий имени ветки. Чтобы начать использовать рабочее дерево, все, что нам нужно сделать, это открыть новый каталог внутри репозитория с помощью выбранной нами IDE. Теперь мы можем отправлять изменения в ветку ошибок одновременно с разработкой новой функции. Как только мы закончим с изменениями, мы можем удалить рабочее дерево, используя:

$ git worktree remove <worktree>

Git worktree — это удобный инструмент, который повышает универсальность и экономит значительное количество времени. Это позволяет работать с двумя или более ветвями без необходимости хранить или коммитить незавершенный код. Я надеюсь, что эта статья была вам полезна и повысит вашу продуктивность. Пожалуйста, оставьте любой отзыв, который вы считаете достойным поделиться в комментариях!