Let A<-B<-C be a sequence of Git commits.
Commits B and C introduce 3 types of changes:
- Adding some files.
 - Modifying some files.
 - Deleting some files.
 
Unfortunately, the changes of type 2 and 3 in both B and C turned out to be incorrect. Therefore we need to derive a modified sequence A<-B'<-C', where B' and C' only include the file additions from the original A and B, discarding any Modifications or Deletions.
How can that be done?
If it helps, we don't absolutely need B' and C' as separate commits; we can do with just A<-D, where D contains every file added in either B or C.