With shallow checkouts cloning is much quicker. You could try combining it with sparse checkouts too. You can even have Git fetch the full history in the background, and from a quick test you can do stuff like commit while it's fetching. Obviously the limited history means commands like log and blame will be inaccurate until it's done.
$ git clone --depth=1 <url>
$ cd repo
$ git fetch --unshallow &
$ <do work>