This is my first time to construct the git server. When I use TortoiseGit-1.8.1.0-32bit to handle the operation, everything is fine!
But if i use the git clone
command or git bash, the git clone process speed is so slow. I've attached two images showing the relative git clone
transfer speeds below.
Can anybody give me some suggestions?
Maybe you can fetch only the latest revision first and then fetch the rest:
$ git clone --depth=1 git@github.com:joe/hello-world.git
$ cd hello-world
$ git fetch --unshallow
Thanks this article!
There are two issues at play here:
- Your OpenSSL is not up to date
- The SSH protocol is slower than HTTPS (but not by much)
Part 1. OpenSSL
After following the directions from the article, http://darrell.mozingo.net/2011/09/29/painfully-slow-clone-speeds-with-msysgit-gitextensions/, I successfully boosted my network throughput for the git clone
operation from 1 MiB/s to 28 MiB/s. This result was achieved by upgrading OpenSSL from version 0.9.8e to version 1.0.1e.
Part 2. SSH protocol
The SSH protocol a little bit slower than the HTTPS protocol, but not enough to warrant the speed differences I mentioned in Part 1 or what you are seeing. Please read through this article for more information on the Git protocols: http://media.pragprog.com/titles/tsgit/chap-008-extract.html.
If you, like me, have configured TortoiseGit to use Putty's plink to connect (and use pageant, etc...), this might help you:
Try enabling in Putty (Default Settings) the following settings:
- SSH -> Auth: "Allow agent forwarding" (I believe this is the one that changes "everything")
- SSH -> "Enable Compression"
- Session -> Select "Default Settings" -> Save
For me, this resulted in going from 143.00 KiB/s to 4.50 MiB/s
Hope this helps.