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

Как можно переместить последний коммит из ветки main в другую ветку на GitHub после случайного push?
  • 24 декабря 2023 г. 13:17
Ответы на вопрос 2
Для перемещения последнего коммита из одной ветки в другую без изменения истории коммитов можно воспользоваться командой git cherry-pick.

1. Убедитесь, что вы находитесь в ветке, в которую нужно переместить последний коммит. Если нужной ветки еще нет, создайте ее с помощью команды git branch <имя ветки>.

2. Скопируйте хэш-код последнего коммита (SHA-1) из ветки, из которой нужно переместить коммит. Это можно сделать с помощью команды git log или команды git reflog.

3. Выполните команду git cherry-pick <хэш-код коммита>. Например, git cherry-pick abc123, где abc123 - это хэш-код коммита.

4. После выполнения команды git cherry-pick коммит будет перемещен в текущую ветку без изменения истории коммитов.

Чтобы переместить последний коммит с ветки main на GitHub после случайного push, следуйте этим шагам:

1. Откройте репозиторий на GitHub и перейдите к ветке, в которую нужно переместить коммит.

2. Нажмите на кнопку "New pull request" (новый запрос на слияние) рядом с веткой, в которую нужно переместить коммит.

3. В появившейся форме выберите ветку main в качестве базовой ветки (base branch) и ветку, в которую нужно переместить коммит, в качестве сравниваемой ветки (compare branch).

4. Нажмите на кнопку "Create pull request" (создать запрос на слияние).

5. Дайте название запросу на слияние и добавьте описание (если нужно).

6. Нажмите на кнопку "Create pull request" (создать запрос на слияние) еще раз.

Теперь последний коммит из ветки main будет перемещен в другую ветку на GitHub без изменения истории коммитов.
1. git revert *hash* - откатываешь последнее изменение 
2. git checkout -b *new branch* - создаешь у себя новую ветку
3. git cherry-pick *hash* - переносишь коммит в новую ветку
Похожие вопросы