When I am trying to push to my remote git repository, but it is taking forever and nothing happens. I waited for so long, but push is never getting finished. My OS is Ubuntu
I had the same problem. If you are using Bitbucket.org, I don't know why, but disabling IPV6 connection fixed the problem.
Try using the --verbose
option to see what actually happens. Even if you did small changes, some internal things might cause git to push a lot more data.
Have a look at git gc. It cleans up your local repository and might speed up things, depending on you issue. Backup strongly advised.
Ensure you're using the right protocol.
Depending on how you have your local configurations set up, you might need to use https
to connect. To do so, switch the protocol for the remote repository from the git@github.com:[user]/[repo]
protocol to the https://github.com/[user]/[repo].git
protocol.
Also, it's worth trying vice versa, if you're unable to use the https
protocol. On older configurations, the older git@github
user authentication will often allow you to connect as a fall back.
Every time I reinstall or upgrade Ubuntu (all 3-4 times), I had to go to the DNS settings of my internet connection (both Ethernet and Wifi), remove Automatic
and add 8.8.8.8
and 1.1.1.1
. After a reset git push
and all other git-origin-accessing commands go down from 1 minute to a few seconds.
One possibility might be that you have large binary file(s) commited in the latest commit. git is not good at working with binary file. If commiting binary files was a mistake, you can refer to following answer for getting rid of binary file in commit.
https://stackoverflow.com/a/58987943/8694152
Please check the permission rights on the remote dir. In my case, after setting the correct permissions by chown -R user.group /dir
, the commit is correctly finished:
$ git push --verbose
Pushing to ssh://user@domain.zone:port/dir
user@domain.zone's password:
Counting objects: ...
...
Total 123 (delta 21), reused 16 (delta 12)
To ssh://domain.zone:port/dir
* [new branch] master -> master
updating local tracking ref 'refs/remotes/origin/master'