| -v, --verbose | Run verbosely. |
| -m <master> | Sets head to remote's <master> branch |
| --mirror=fetch | Refs will not be stored in refs/remotes namespace, but instead will be mirrored in the local repo |
| --mirror=push | git push will behave as if --mirror was passed |
| --no-tags | git fetch <name> does not import tags from the remote repo |
| -t <branch> | Specifies the remote to track only <branch> |
| -f | git fetch <name> is run immediately after remote is set up |
| --tags | git fetch <name> imports every tag from the remote repo |
| -a, --auto | The symbolic-ref's HEAD is set to the same branch as the remote's HEAD |
| -d, --delete | All listed refs are deleted from the remote repository |
| --add | Adds <name> to list of currently tracked branches (set-branches) |
| --add | Instead of changing some URL, new URL is added (set-url) |
| --all | Push all branches. |
| --delete | All urls matching <url> are deleted. (set-url) |
| --push | Push URLS are manipulated instead of fetch URLS |
| -n | The remote heads are not queried first with git ls-remote <name>, cached information is used instead |
| --dry-run | report what branches will be pruned, but do not actually prune them |
| --prune | Remove remote branches that don't have a local counterpart |