Я думаю, что более простой вариант, чем генерация diff-файлов, возврат и т. Д., Заключается в извлечении двух копий хранилища и использовании визуального средства сравнения, такого как DeltaWalker, для копирования фрагментов из одного в другой.
Первая копия будет той, с которой вы на самом деле работаете, а вторая только для этой цели. После внесения множества изменений в первый вы можете скопировать один раздел во второй, зафиксировать его, скопировать другой раздел, зафиксировать его и т. Д.