Изменение было применено к большой кодовой базе, затем был применен форматер, затрагивающий почти каждый файл.
A --------- B
Один коммит B
, объединяющий эти два действия, приводит к гигантскому c diff это боль для обзора, а также трудно разделить вручную с помощью интерактивной перебазировки и выбора фрагментов. Тем не менее, я мог бы легко создать промежуточный коммит I
, отметив A
и запустив на нем средство форматирования кода.
A --------- B
\
\
-- I
Учитывая, что я только что сделал коммит I
, как я могу легко генерировать коммит B'
, который заканчивается тем же самым содержимым дерева, что и B
?
A --------- B
\
\
-- I --- B' # (has exact same contents as B)
Если я наивно делаю
git checkout B
git rebase I
, я получаю массу конфликтов , Я не хочу быть умным, я просто хочу оказаться в том же каталоге, что и B
, с предположением, что I..B
diff будет значительно меньше, чем A..B
.