[Solved-1 Solution] How to fix GIT error: object file is empty?



Error Description:

    • When we try to commit changes, we get this error:
    error: object file .git/objects/31/65329bb680e30595f242b7c4d8406ca63eeab0 is empty
    fatal: loose object 3165329bb680e30595f242b7c4d8406ca63eeab0 (stored in .git/objects/31/65329bb680e30595f242b7c4d8406ca63eeab0) is corrupt
    
    click below button to copy the code. By Git tutorial team

    Solution 1:

    Step 1: Make a backup of .git (in fact I do this in between every step that changes something, but with a new copy-to name, e.g. .git-old-1, .git-old-2, etc.):

    cp -a .git .git-old
    
    click below button to copy the code. By Git tutorial team

    Step 2: Run git fsck --full

    nathanvan@nathanvan-N61Jq:~/workspace/mcmc-chapter$ git fsck --full
    error: object file .git/objects/8b/61d0135d3195966b443f6c73fb68466264c68e is empty
    fatal: loose object 8b61d0135d3195966b443f6c73fb68466264c68e (stored in .git/objects/8b/61d0135d3195966b443f6c73fb68466264c68e) is corrupt
    
    click below button to copy the code. By Git tutorial team

    Step 3: Remove the empty file.

    nathanvan@nathanvan-N61Jq:~/workspace/mcmc-chapter$ rm .git/objects/8b/61d0135d3195966b443f6c73fb68466264c68e 
    rm: remove write-protected regular empty file `.git/objects/8b/61d0135d3195966b443f6c73fb68466264c68e'? y
    
    click below button to copy the code. By Git tutorial team

    Step 3: Run git fsck again. Continue deleting the empty files. We can also cd into the .gitdirectory and run find . -type f -empty -delete -print to remove all empty files. Eventually git will start to tell it was actually doing something with the object directories:

    nathanvan@nathanvan-N61Jq:~/workspace/mcmc-chapter$ git fsck --full
    Checking object directories: 100% (256/256), done.
    error: object file .git/objects/e0/cbccee33aea970f4887194047141f79a363636 is empty
    fatal: loose object e0cbccee33aea970f4887194047141f79a363636 (stored in .git/objects/e0/cbccee33aea970f4887194047141f79a363636) is corrupt
    
    click below button to copy the code. By Git tutorial team

    Step 4: After deleting all of the empty files, we eventually come to git fsck actually running:

    nathanvan@nathanvan-N61Jq:~/workspace/mcmc-chapter$ git fsck --full
    Checking object directories: 100% (256/256), done.
    error: HEAD: invalid sha1 pointer af9fc0c5939eee40f6be2ed66381d74ec2be895f
    error: refs/heads/master does not point to a valid object!
    error: refs/heads/master.u1conflict does not point to a valid object!
    error: 0e31469d372551bb2f51a186fa32795e39f94d5c: invalid sha1 pointer in cache-tree
    dangling blob 03511c9868b5dbac4ef1343956776ac508c7c2a2
    missing blob 8b61d0135d3195966b443f6c73fb68466264c68e
    missing blob e89896b1282fbae6cf046bf21b62dd275aaa32f4
    dangling blob dd09f7f1f033632b7ef90876d6802f5b5fede79a
    missing blob caab8e3d18f2b8c8947f79af7885cdeeeae192fd
    missing blob e4cf65ddf80338d50ecd4abcf1caf1de3127c229
    click below button to copy the code. By Git tutorial team

    Step 5: Try git reflog. Fail because the HEAD is broken.

    nathanvan@nathanvan-N61Jq:~/workspace/mcmc-chapter$ git reflog
    fatal: bad object HEAD
    
    click below button to copy the code. By Git tutorial team

    Step 6: Google. Find thisManually get the last two lines of the reflog:

    nathanvan@nathanvan-N61Jq:~/workspace/mcmc-chapter$ tail -n 2 .git/logs/refs/heads/master
    f2d4c4868ec7719317a8fce9dc18c4f2e00ede04 9f0abf890b113a287e10d56b66dbab66adc1662d Nathan VanHoudnos <[email protected]> 1347306977 -0400  commit: up to p. 24, including correcting spelling of my name
    9f0abf890b113a287e10d56b66dbab66adc1662d af9fc0c5939eee40f6be2ed66381d74ec2be895f Nathan VanHoudnos <[email protected]> 1347358589 -0400  commit: fixed up to page 28
    
    click below button to copy the code. By Git tutorial team

    Step 7: Note that from Step 6 we learned that the HEAD is currently pointing to the very last commit. So let's try to just look at the parent commit:

    nathanvan@nathanvan-N61Jq:~/workspace/mcmc-chapter$ git show 9f0abf890b113a287e10d56b66dbab66adc1662d
    commit 9f0abf890b113a287e10d56b66dbab66adc1662d
    Author: Nathan VanHoudnos <nathanvan@XXXXXX>
    Date:   Mon Sep 10 15:56:17 2012 -0400
    
        up to p. 24, including correcting spelling of my name
    
    diff --git a/tex/MCMC-in-IRT.tex b/tex/MCMC-in-IRT.tex
    index 86e67a1..b860686 100644
    --- a/tex/MCMC-in-IRT.tex
    +++ b/tex/MCMC-in-IRT.tex
    
    click below button to copy the code. By Git tutorial team

      Step 8: So now we need to point HEAD to 9f0abf890b113a287e10d56b66dbab66adc1662d.

      nathanvan@nathanvan-N61Jq:~/workspace/mcmc-chapter$ git update-ref HEAD 9f0abf890b113a287e10d56b66dbab66adc1662d
      
      click below button to copy the code. By Git tutorial team
      • Which didn't complain

      Step 9: See what fsck says:

      nathanvan@nathanvan-N61Jq:~/workspace/mcmc-chapter$ git fsck --full
      Checking object directories: 100% (256/256), done.
      error: refs/heads/master.u1conflict does not point to a valid object!
      error: 0e31469d372551bb2f51a186fa32795e39f94d5c: invalid sha1 pointer in cache-tree
      dangling blob 03511c9868b5dbac4ef1343956776ac508c7c2a2
      missing blob 8b61d0135d3195966b443f6c73fb68466264c68e
      missing blob e89896b1282fbae6cf046bf21b62dd275aaa32f4
      dangling blob dd09f7f1f033632b7ef90876d6802f5b5fede79a
      missing blob caab8e3d18f2b8c8947f79af7885cdeeeae192fd
      missing blob e4cf65ddf80338d50ecd4abcf1caf1de3127c229
      
      click below button to copy the code. By Git tutorial team

      Step 10: The invalid sha1 pointer in cache-tree seemed like it was from a (now outdated) index file .So we kill it and reset the repo.

      nathanvan@nathanvan-N61Jq:~/workspace/mcmc-chapter$ rm .git/index
      nathanvan@nathanvan-N61Jq:~/workspace/mcmc-chapter$ git reset
      Unstaged changes after reset:
      M   tex/MCMC-in-IRT.tex
      M   tex/recipe-example/build-example-plots.R
      M   tex/recipe-example/build-failure-plots.R
      
      click below button to copy the code. By Git tutorial team

      Step 11: Looking at the fsck again...

      nathanvan@nathanvan-N61Jq:~/workspace/mcmc-chapter$ git fsck --full
      Checking object directories: 100% (256/256), done.
      error: refs/heads/master.u1conflict does not point to a valid object!
      dangling blob 03511c9868b5dbac4ef1343956776ac508c7c2a2
      dangling blob dd09f7f1f033632b7ef90876d6802f5b5fede79a
      click below button to copy the code. By Git tutorial team

      The dangling blobs are not errors

      Step 12: Catching up with the local edits:

      nathanvan@nathanvan-N61Jq:~/workspace/mcmc-chapter$ git status
      # On branch master
      # Changes not staged for commit:
      #   (use "git add <file>..." to update what will be committed)
      #   (use "git checkout -- <file>..." to discard changes in working directory)
      #
      #   modified:   tex/MCMC-in-IRT.tex
      #   modified:   tex/recipe-example/build-example-plots.R
      #   modified:   tex/recipe-example/build-failure-plots.R
      #
      < ... snip ... >
      no changes added to commit (use "git add" and/or "git commit -a")
      
      
      nathanvan@nathanvan-N61Jq:~/workspace/mcmc-chapter$ git commit -a -m "recovering from the git fiasco"
      [master 7922876] recovering from the git fiasco
       3 files changed, 12 insertions(+), 94 deletions(-)
      
      nathanvan@nathanvan-N61Jq:~/workspace/mcmc-chapter$ git add tex/sept2012_code/example-code-testing.R
      nathanvan@nathanvan-N61Jq:~/workspace/mcmc-chapter$ git commit -a -m "adding in the example code"
      [master 385c023] adding in the example code
       1 file changed, 331 insertions(+)
       create mode 100644 tex/sept2012_code/example-code-testing.R
      
      click below button to copy the code. By Git tutorial team

      Related Searches to How to fix GIT error: object file is empty ?