Только осваиваю для себя DSVC. Работаю над проектом, в котором три файла: file1, file2, file3. Работаю, делаю комиты, всё в порядке. И вот на этапе комита номер 10 я понимаю, что всё, что я делал в file2 за последние 4 комита, было неверным. То есть мне нужно на этапе комита номер 10 взять версию file2 из комита 6, но не менять файлы file1, file3. Какой правильный и красивый способ это сделать если я использую git? Если Mercurial?
Решение в лоб, которое я вижу: откатиться к комиту номер 6, ручками скопировать file2 куда-то в сторону от репозитория в папку TMP, вернуться к комиту 10, перезаписать файл 2 из папки TMP в рабочую, закомитить как комит 11. Но это как-то грубо и не изящно.