How does git-revert work? Does it make a patch or list of patches (only in reverse) which it then applies, or does it simply copy paths from the old commit into the new comm
It makes new commits, the effect of which is to undo the previous commit. Basically it makes an opposite patch of the patch in the commit you're reverting it, and commits that patch as a new commit.