By far the easiest way i've seen to do it (and works on windows as well) is git bundle:
git bundle create /some/bundle/path.bundle --all
See this answer for more details: How can I copy my git repository from my windows machine to a linux machine via usb drive?How can I copy my git repository from my windows machine to a linux machine via usb drive?