Git Worktree: как это может помочь вам улучшить рабочий процесс Git

Git Worktree: как это может помочь вам улучшить рабочий процесс Git

22 марта 2023 г.

Git Worktree: улучшите рабочий процесс Git

Было ли такое, что вы когда-нибудь работали над кодом функции и неожиданно получали уведомление о том, что производство остановлено? Если вы используете Git, теперь у вас есть несколько вариантов: зафиксировать свою работу, спрятать ее или отказаться от нее. Все они приходят со своими проблемами в зависимости от ситуации.

Если вы коммитите недоработанный код, вы можете вернуться позже и перебазировать, чтобы очистить историю коммитов. Скрытие может вызвать проблемы, потому что что, если вам нужно спрятать лишний код позже, прежде чем вернуться к исходной работе?

Я отброшу свои текущие изменения, если они будут небольшими, но в остальном нет, спасибо.

Недавно я наткнулся на рабочее дерево Git, и это значительно повысило мою продуктивность

Что такое Git Worktree?

Рабочее дерево Git позволяет нам проверять множество веток в репозитории git. Это позволяет нам переключаться между разными ветвями в репозитории Git, не теряя незафиксированной работы. Git делает это, создавая новые отдельные каталоги, называемые «связанным рабочим деревом», которое связывается с одним «основным рабочим деревом» (каталог, созданный с помощью git clone или git init). .

Чтобы получить новое рабочее дерево, мы используем команду worktree add: git worktree add <path> <название_ветки>. Рабочие деревья создаются как новые каталоги. Мы даем команде add путь к тому месту, где мы хотим создать новый каталог, и какую ветку git мы хотим проверить.

Как и git checkout -b, мы можем создавать совершенно новые ветки, добавляя аргумент -b (git worktree add -b <branch_name> <path>< /код>).

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

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

А если мы захотим зафиксировать и отправить наши изменения на Github? Без проблем! Git worktree — это способ проверить множество веток. Итак, после внесения изменений в наше рабочее дерево мы можем git add, git commit и git push origin, как если бы мы работает в другой ветке.

Изменения будут отображаться на Github под тегом <branch_name>, который мы указали в git worktree add <path> <название_ветки>.

Когда мы закончим с рабочим деревом, мы можем вызвать git worktree remove <path_to_worktree>, чтобы удалить его.

Конец

Я держу все рабочие деревья в отдельном каталоге ~/.worktree вне общего каталога проектов ~/projects, чтобы уменьшить беспорядок и сохранить «основные рабочие деревья» явными. из «связанных рабочих деревьев».

Я постоянно переключаюсь между ветвями и кодом, и Git worktree очень помог мне в моем рабочем процессе!


Оригинал