git clone --depth 1 downloads only the latest commit. It is fast and small, but history commands see little. git fetch --unshallow restores the rest. See also partial clone.