«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Повышение производительности с помощью Git Worktrees

Повышение производительности с помощью Git Worktrees

Опубликовано 3 ноября 2024 г.
Просматривать:983

Я часто работаю над несколькими функциями одновременно, из-за чего мне приходится сохранять изменения и забывать о них, переключаясь на другие задачи. Я пробовал использовать git-хуки и псевдонимы терминалов в качестве напоминаний, но они либо доставляли слишком много хлопот, либо их было легко игнорировать. Итак, мне пришлось найти лучшее решение.

Эта статья изначально была опубликована в моем блоге более года назад, но я продолжаю возвращаться к ней. Повторно делюсь этим со всем миром :)

Коротко о Git

Git хранит информацию в виде списка снимков. снимок — это сохраненная версия репозитория на определенный момент времени. Каждый коммит представляет собой снимок в мире git.

Рабочее дерево — это единая проверка одной версии проекта. Эти файлы извлекаются из сжатой базы данных в каталоге Git и помещаются на диск для использования или изменения. Это место, где вы выполняете свою работу перед ее постановкой и фиксацией.

Рабочие деревья Git

Рабочие деревья Git — это способ одновременного управления несколькими рабочими деревьями git без хлопот, связанных с git stash. Они позволяют нам работать с ветвями как с подкаталогами репозитория, полностью облегчая необходимость хранения изменений, когда требуются срочные, несвязанные изменения.

Модуль worktree позволяет вам извлекать несколько версий проекта в отдельных подкаталогах в одном корневом каталоге репозитория. Возьмем, к примеру, следующую диаграмму традиционного подхода:

Boosting My Productivity With Git Worktrees

В этом примере у меня есть два спрятанных изменения (которые могут состоять из сотен строк кода) и 3 ветки: feature-1, feature-2 и fix -1. К тому времени, как я закончу работу над веткой fix-1 и нажму на нее, мой мозг перейдет к следующей задаче и полностью забудет о предыдущих функциях, пока мне не напомнят о них снова.

Вместо этого с рабочими деревьями это выглядит так:

Boosting My Productivity With Git Worktrees

При использовании рабочих деревьев структура каталогов содержит каждое рабочее дерево (ветвь) в отдельном каталоге. Это позволяет мне плавно переключаться с одной ветки на другую, просто меняя каталог, в котором я сейчас работаю. Мой обычный рабочий процесс с этим подходом состоит из следующего:

  1. Откройте терминал в каталоге проекта
  2. Создайте рабочее дерево с именем ветки
  3. код. чтобы открыть VSCode в каталоге рабочего дерева

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

Создание рабочего дерева

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

Удаление рабочего дерева

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

Ошибки

Рабочие деревья — это извлечения ветвей репозитория, поэтому неотслеживаемые файлы не копируются. Файлы типа .env не будут скопированы, поэтому обязательно скопируйте их после создания рабочего дерева и установите зависимости, если они существуют.

Также обратите внимание, что каталоги, созданные для рабочих деревьев, будут отображаться в журналах состояния git при выполнении в корневом каталоге репозитория. Однако для меня эти ошибки — ничто по сравнению с забвением часов работы.


Спасибо, что читаете! Вы можете прочитать больше в моем блоге и поддержать мою работу у спонсоров GitHub!

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/kl13nt/using-git-worktrees-to-boost-my-productivity-18m4?1. Если обнаружено какое-либо нарушение прав, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3