Кажется, уже есть некоторые подобные вопросы, но ни один из них не является именно тем, что я хочу.
Допустим, у меня есть история коммитов, подобная этой
* xxxxxxxH (HEAD -> B) Latest commit
* (more commits)
* xxxxxxxG (B) More commits
* xxxxxxxF Merge branch 'master' into B
|\
| * xxxxxxxE (master) Another commit on master
| * (more commits here)
| * xxxxxxxD Commit on master
* | xxxxxxxC Another commit
* | (more commits here)
* | xxxxxxxB First commit on branch A
|/
* xxxxxxxA (master) some commit
Теперь я хочу переписать историю ветви A, возможно, слить или отредактировать некоторые коммиты, но я также хочу изменить первый коммит на ветви A, а также я хочу сохранить слияния, чтобы сохранить слияние master в А.
Сначала я интуитивно попробовал git rebase -i -p xxxxxxxB
, но, очевидно, он не включал сам коммит xxxxxxxB. Итак, еще одна попытка была git rebase -i -p xxxxxxxB^
, которая включала этот коммит, но теперь он фактически не сохранял слияния.
Другой вариант, который выглядел многообещающим, был --root
, но этот начинается с самого первого коммита во всем хранилище, что тоже не то, что я хочу.
Есть ли способ сделать то, что я хочу?