Я хочу удалить промежуточное слияние (удалить, а не сквош), а затем переместить последние 2 коммита в новую ветку.
Это мой текущий git log --graph
:
* 3a5c453 - (2 hours ago) last commit (HEAD, master)
* b6c19f1 - (2 hours ago) Merge branch 'tade' into HEAD
|\
* | be356d0 - (2 hours ago) previous commit
| * 65328dc - (3 hours ago) some other commit in branch tade
Я хочу закончить с этим:
* bbbbbbb - (some time in the future) a later commit on tade (tade)
* | aaaaaaa - (some time in the future) a later commit on master (master)
| * | 3a5c453 - (2 hours ago) last commit (HEAD, newone)
| * | be356d0 - (2 hours ago) previous commit
|/ |
| * 65328dc - (3 hours ago) some other commit in branch tade
Я думал об использовании git rebase -i
для удаления слияния с ветвью ветвления, а затем сделал git branch newone
и git reset --hard HEAD^2
, чтобы переместить последние 2 коммита в новую ветвь. Когда я сделал ребаз, он показал мне все коммиты из ветки тейда, которые были объединены с мастером и | неохотно удалял их.
Есть ли лучший способ, или я должен пойти дальше?
РЕДАКТИРОВАТЬ: я обновил график предполагаемого состояния, чтобы сделать его более понятным. Два новых коммита (aaaaaaa
и bbbbbbb
) предназначены только для того, чтобы немного лучше проиллюстрировать состояние (надеюсь)