Как перенести изменения в другую ветку в Git — CloudSavvy IT

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

Перенос изменений (если вы еще не сделали этого)

Git следит за всей вашей папкой, но изменения, которые вы вносите в файлы, не привязаны к определенной ветке, пока вы их не зафиксируете. Вы можете перемещать ветви и приносить эти изменения с собой.

Самый простой вариант — просто переключить ветки, но это сработает только в том случае, если две ветки, на которые вы нацелены, имеют совпадающую историю:

функция проверки git

Вы можете обойти это несколькими способами. Первый — создать новую ветку, а затем объединить расходящиеся истории:

git checkout -b tempfeature git checkout feature git merge tempfeature

Вы также можете использовать git stash, чтобы сохранить изменения на будущее и повторно применить их в новой ветке:

git stash git switch функция git stash применить

Перемещение коммитов (если вы уже совершили)

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

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

git сбросить HEAD ~ 1

Это оставит вас в состоянии «еще не зафиксировано», после чего вы можете использовать описанные выше методы для решения проблемы.

В качестве альтернативы вы можете использовать git cherry-pick. Эта команда копирует коммиты из одной ветки в другую, и это хороший способ выделить коммиты и аккуратно переместить их в новые ветки.

Запустите git log, чтобы найти идентификатор фиксации, которую вы хотите отменить:

git журнал

Затем проверьте ветку функций, предполагая, что ваши изменения были зафиксированы, и запустите cherry-pick:

функция переключателя git git cherry-pick

После этого в основной ветке по-прежнему будет дублированный коммит. Вы можете сбросить это и отменить изменения, если ветка функций находится в правильном порядке, или оставить ее и позволить Git разобраться с ней после слияния.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *