An abstraction over [fetching][fetch()] a pack from the server.
Generally, there is the following order of operations.
- create a
Transport, either blocking or async - perform a [
handshake()] - execute a [
Command]- list references
- create a mapping between refspecs and references
- receive a pack
- list references