Git hangs while writing objects

Git

Git Problem Overview


I'm trying to git push -u origin master And it just hangs at

Writing objects:  99% (219/220), 12.65 MiB | 97 KiB/s

The 12.65 part shifts around. When I exit the process and run it again, it resumes at 99% but never finishes, same as before.

It's never pushed successfully. This is the initial commit.

Git Solutions


Solution 1 - Git

I followed VonC's advice:

git config --global http.postBuffer 524288000

For future references, based on comments:

500 MB: 524288000 (as posted in the original answer)
1 GB: 1048576000
2 GB: 2097152000 (anything higher is rejected as 'out of range')

Solution 2 - Git

This was happening because of huge, unignored file in the repo directory. Whoops.

EDIT

The hang was because the file was taking a long time to upload. The file wasn't supposed to have been included in the push.

EDIT

While it's true that a huge file could be the reason behind this issue, if you can't ignore the file in question or just have to push it then follow this answer.

Solution 3 - Git

I had the same problem with (writing objects %16) stuck then fatal. I solved this by saving the current changes and clone a new repository, then copy the modified files into it.

Eg. Assume current repository is A, then all you need to do is:

  1. mv A B
  2. git clone A
  3. mv B/* A/
  4. rm -rf B

Then commit and push and it all worked fine. It recognized the moved files as modified :)

Solution 4 - Git

In my case, I was using a git folder with bad rights stored on the same drive as a repo, but it could be the same with ssh even if you use an authorized login user.

Check then if you have correct rights to write on the distant repo.

Example:

Init local and distant repo

git init /tmp/src
git init --bare /tmp/dst
cd /tmp/src

Adding remote repo to origin

src > git remote add dest /tmp/dst

Simulating problem

src > chmod -R 555 /tmp/dst

Adding fake file and pushing it

src > touch a && git add a && git commit -m 'demo'
src > git push --set-upstream dest master
src > git push
Counting objects: 3, done.
Writing objects: 99% (2/3), 202 bytes | 0 bytes/s.

Git hangs

Solution

src > chmod -R 775 /tmp/dst

Solution 5 - Git

In my situation it was the size of the file. By adding an .gitignore file with the required extensions I was able to ignore most of the unwanted files to be pushed.

Solution 6 - Git

In my case I was having slow internet upload speed and the file I wanted to push was big, the trick is to use git LFS (large file storage) that is much more patient to upload big files, you can find a git LFS tutorial here

Solution 7 - Git

In my case, I was trying to push without completing my company's rules. I learnt later that we should start our commit messages with "MOBIL-XXXX" where XXXX is the number developers are assigned in Jira (another tool we use to track development process) by analists.

Make sure to check if your company has a similar constraining rule.

Solution 8 - Git

I was having the same issue on Windows 10 machine, the writing objects was hanging, but in a little different situation.

The problem I was having was only when I was trying to add new files to the repository. If I update files which are already existing in the repository everyting was working fine and it doesn't really matter if the file size was big or not. Mostly I was trying to add new scripts.

I tried every other solution found in the internet but nothing worked in my case and the last thing which I tried actually worked. It seems that it was because of some Windows permissions for the specific drive and folder which prevents the app's from writing in those specific folders or update the files even when I am logged in with an admin account and was running the app as admin. So this command:

attrib -r +s D:\foldername 

fixed the issue for me.

Just posting it here, maybe someone have the same issue as mine.

Solution 9 - Git

git clean -f -n solves my issue. There are many untracked files not detected. But be careful because this will remove files in your directory

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionmattalxndrView Question on Stackoverflow
Solution 1 - GitHugo ForteView Answer on Stackoverflow
Solution 2 - GitmattalxndrView Answer on Stackoverflow
Solution 3 - GitMahaView Answer on Stackoverflow
Solution 4 - GitNaewisView Answer on Stackoverflow
Solution 5 - GitSkittyView Answer on Stackoverflow
Solution 6 - GitOscar LimaView Answer on Stackoverflow
Solution 7 - GitOnat KorucuView Answer on Stackoverflow
Solution 8 - GithardartcoreView Answer on Stackoverflow
Solution 9 - GitDarkMakukudoView Answer on Stackoverflow