у меня второй вариант - свои .dotfiles
первый шаг не понял - создать коммит с изменениями, которые откатывают ненужные строки в старом коммите.
а как такой коммит создать?) к примеру у меня старый коммит выглядит как на скрине. я сюда случайно впихнул изменение SignifySign групп, а это лучше вынести в другой коммит.
Надо сделать коммит который будет менять эти SignifySign группы обратно из того состояния которое получилось в результате того коммита.
Условно если в коммите значение A менялось на значение B, то в отменяющем коммите значение B должно меняться на значение A.
Если это запарно, то можно пойти другим путем, чекаутнуться в истории на тот коммит, создать там ветку, изменить коммит через --amend потом ребейзнуть или черрипикнуть туда последующие коммиты из основной ветки (я сейчас уже подзабыл как это можно ребейзнуть, но черрипикнуть через range точно можно).
Потом ресетнуть туда правильную ветку, чекнуть что все ок и зафорспушить.