All options above didn't solve the issue for me. I noticed that some helped and went past the initial limit, but still stopped halfway.
My issue was that, I was not able to fetch/clone/pull my repos due to some large files in the commit history that exceeded the 100mb mark. Also my slow internet made it impossible to fetch bad repos that still had those commit history to resolve the problem locally before pushing online.
Based on some of the comments that focused on the issue being a network/internet problem, I decided to focus on my SSH config and improve it for performance to see if it could help solve the problem. And Viola!!! Problem solved. I still maintained some of the configurations from previous suggestions, expecially the one related to the .git/config cache settings
[core]
packedGitLimit = 512m
packedGitWindowSize = 512m
[pack]
deltaCacheSize = 2047m
packSizeLimit = 2047m
windowMemory = 2047m
This is how I updated by SSH confi at .ssh/config :
To improve Git download speed Linux, you can modify the SSH client configuration to optimize the SSH connection. Here are a few configuration options you can consider:
Use a faster SSH algorithm: By default, OpenSSH prioritizes the ssh-rsa algorithm for SSH connections. However, the ecdsa-sha2-nistp256 algorithm is generally faster. You can add the following line to your ~/.ssh/config file to use it:
Host *
HostKeyAlgorithms ecdsa-sha2-nistp256,ssh-rsa
Enable connection multiplexing: SSH connection multiplexing allows reusing existing SSH connections, which can significantly reduce the overhead of establishing new connections. Add the following lines to your ~/.ssh/config file to enable connection multiplexing:
Host *
ControlMaster auto
ControlPath ~/.ssh/control:%h:%p:%r
ControlPersist yes
Increase SSH connection timeout: In case you have a slow or unstable network, increasing the SSH connection timeout can prevent premature connection terminations. Add the following line to your ~/.ssh/config file to increase the timeout to 60 seconds:
Host *
ServerAliveInterval 60
Use a faster cipher: You can try using a faster cipher algorithm to improve SSH performance. However, keep in mind that it may require the remote SSH server to support the chosen cipher. For example, to use the aes128-gcm@openssh.com cipher, add the following line to your ~/.ssh/config file:
Host *
Ciphers aes128-gcm@openssh.com
After making any changes to the SSH client configuration, save the file and try using Git again to see if there is an improvement in download speed.
After assessing all, I combined them and put this at the end of my .ssh/config file:
Host *
HostKeyAlgorithms ecdsa-sha2-nistp256,ssh-rsa
ControlMaster auto
ControlPath ~/.ssh/control:%h:%p:%r
ControlPersist yes
ServerAliveInterval 60
Ciphers aes128-gcm@openssh.com
Remember to exercise caution and be mindful of security implications when modifying SSH configuration options. Some options may require compatibility with the remote SSH server and its configuration.