могу я впихнуть например коммит D между коммитами А и B? чтобы получилось так:
git rebase
. Сложность впихивания напрямую зависит от того, насколько много общих строчек изменяют D, B и C. Если они полностью независимы, git rebase
сделает всё сам, если нет -- прийдётся разрешать конфликты.