Taahhüt aralığını B'den D'ye (en azından git sürüm 2'de) tek bir kaydetmede geri döndürmek istiyorsanız, şunları yapabilirsiniz:
git revert -n B^..D
Bu, B'nin üst taahhüdünden (hariç tutulan) D taahhüdüne (dahil edilen) taahhütler tarafından yapılan değişiklikleri geri döndürür, ancak geri alınan değişikliklerle herhangi bir taahhüt oluşturmaz. Geri dönüş yalnızca çalışma ağacını ve dizini değiştirir.
Sonra değişiklikleri yapmayı unutmayın
git commit -m "revert commit range B to D"
Aynı yöntemi kullanarak tek bir işlemede birden fazla ilgisiz kaydı geri döndürebilirsiniz. örneğin B ve D'yi geri döndürmek ama C'yi değil
git revert -n B D
git commit -m "Revert commits B and D"
Referans: https://www.kernel.org/pub/software/scm/git/docs/git-revert.html
Düzeltme için teşekkürler Honza Haering