Подтвердить что ты не робот

Как переместить изменения из одной ветки в другую ветвь git?

Как я могу перенести свою работу и изменения из ветки master на вновь созданную ветвь и оставить основную ветвь неповрежденной после перемещения?

4b9b3361

Ответ 1

Вы можете создать новую ветвь, указывающую на текущую фиксацию, используя git branch branchname (или git checkout -b branchname, если вы хотите проверить ее напрямую). Это будет в основном дублировать вашу основную ветку, чтобы вы могли продолжить работу там.

Если вы успешно скопировали ветку, вы можете reset master в ее исходную точку, используя git reset --hard commit, где commit - хэш коммита, который должен быть последним на главном сервере.

Итак, например, у вас есть такая ситуация:

---- 1 ---- 2 ---- 3 ---- 4 ---- 5 ---- 6
                   ^                    ^
              original                master
            master commit

Итак, вы проверили master на commit 6, и вы хотите создать новую ветвь ticket, указывающую на это 6, при сбросе master на 3:

git branch ticket
git reset --hard 3
git checkout ticket

И затем youre на ticket, указывающий на commit 6, а master указывает на 3.

Ответ 2

Если вы совершили (скажем) 2 раза после того, как поняли, что должны были находиться в ветке, просто выполните

git branch work_branch
git reset --hard HEAD~2

замените 2 на количество задержек, которые вы хотите отправить. Вы по-прежнему будете хозяином на этом этапе, если вы хотите перейти к ветке, чтобы продолжить работу, просто git checkout work_branch

см. git rev-parse --help, если вы хотите понять синтаксис того, как выполнить обратное копирование своего дерева коммандов с помощью ссылок, таких как HEAD~2

Ответ 3

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

Затем вы можете удалить ветвь bad, если вы не нажали ее в другом месте, и другие изменения были сделаны против нее.