Можем ли мы "спрятать" git rebase в процессе
В настоящее время находится в процессе git rebase
переход в другой (который требует некоторой адаптации и много времени), нам нужно сделать исправление на производстве (другой филиал).
Есть ли способ:
- Проверить эту производственную ветку, не теряя всю работу, проделанную в этом процессе перебазирования?
- Делай работу в производственной отрасли + коммит
- вернуться к тому процессу перезагрузки, который будет завершен?
2 ответа
Я оставил проект как есть и сделал git clone
об этом в другую папку. Я напишу код и внесу исправления в производственную ветку этой новой папки, а затем отправлю их обратно в исходную папку проекта, когда будет готово.
Краткий ответ: нет. Некоторые элементы, такие как указатель, HEAD
и информация об обновлении выполняется, хранятся в рабочем дереве или связаны с ним.
Вы можете, как вы предложили в своем ответе, создать новый клон; или, с Git версии 2.6 или выше, используйте git worktree add
, (The git worktree
эта функция появилась в версии 2.5, но в ней был краткий поток исправлений, за которым последовал более длинный набор небольших исправлений, так что это лучше всего работает в последних версиях Git.)
Какие git worktree add
делает это создает дополнительные рабочие деревья, используя существующее хранилище. Это похоже на создание нового клона, за исключением того, что основной .git
репозиторий доступен напрямую. Каждое добавленное рабочее дерево имеет свой отдельный индекс, поэтому вместо индекса для рабочего дерева теперь у вас есть индекс для каждого рабочего дерева. Вместо HEAD
, у тебя есть HEAD
за рабочее дерево и так далее.
Есть одно жесткое ограничение на git worktree add
: каждое рабочее дерево должно быть в отдельной ветке. Так что если ваше основное рабочее дерево, которое вы находитесь в процессе перебазирования, находится на ветке develop
, ваше добавленное рабочее дерево также не может быть на ветке develop
, Если вы хотите или нуждаетесь в этом, используйте отдельный клон. (Вы никогда не нуждаетесь в этом, но детали этого становятся хитрыми.)