Перебазирование на более старый коммит - PullRequest
1 голос
/ 17 марта 2020

У меня есть три коммита:

* d868098 Three
* 865eb70 Two
* 6dd085d One

И я хочу переместить «Три» непосредственно на «Один»:

* 865eb70 Two
|
| * d868098 Three
|/
* 6dd085d One

Однако все, что я пытаюсь сделать, работает. Например, git rebase --onto 6dd0 865e d868 просто перематывает HEAD, но ничего не делает. Как я могу добиться этого, используя rebase?


Обновление: Хорошо, git rebase --onto 6dd0 865e d868 работает . Раньше это не работало, потому что я пробовал это в тестовом репозитории, в котором были только пустые коммиты. Как только я создал значимые коммиты, все заработало как положено. Я буду избегать пустых коммитов для тестирования в будущем!

1 Ответ

1 голос
/ 17 марта 2020

Для этого вам нужно как минимум 2 ветви.

Я предполагаю, что вы находитесь на master ветви, которая ссылается на * d868098 Three.

  1. git reset --hard 865eb70 (удалить * d868098 Three из master)
  2. git checkout -b three_brach (создание и перемещение в новую ветку)
  3. git checkout 6dd085d
  4. git cherry-pick d868098 (выберите * d868098 Three в three_branch ветка)

Теперь дерево ниже

* 865eb70 Two (master)
|
| * d868098 Three (three_branch)
|/
* 6dd085d One
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...