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 очень помог мне в моем рабочем процессе!
Оригинал