Git rev-list lists commit objects that are reachable from the specified commit. It works by traversing the commit graph and listing each commit it encounters. Git stores commits and other objects in compressed files called packs in the .git/objects directory to optimize storage and transfer.