Я использую следующий сценарий.
- Исправить незначительную ошибку
- Зафиксировать исправление
- git rebase -i HEAD ^ 4
Это откроет редактор vim (возможно) со следующим текстом
pick 972ded feature 1 working
pick d816dd feature 2 working
pick 826da0 feature 3 working
pick xxxxxx fix feature 1
, измените его на
pick 972ded feature 1 working
f xxxxxx fix feature 1
pick d816dd feature 2 working
pick 826da0 feature 3 working
Обратите внимание, что я перемещаю коммит "fix feature 1" во вторую строкуи измените выберите на f .Это заставляет git объединять «работающую функцию 1» и «фиксировать функцию 1», фиксируя один коммит с первым сообщением о фиксации (т. Е. «Функция 1 работает»).
«функция 2 работает» и«feature 3 working» передает git листья «нетронутыми».(На самом деле это применяется, это фиксирует новую историю. Таким образом, они получат новые идентификаторы)