git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: How to recovery a corrupted git repo

From
Ping Yin <pkufranky@gmail.com>
Date
Feb 21, 2011, 10:11 UTC
Message-ID
<AANLkTimAE4AOCYibrCRHaSJ-mHkrQm7yZbHNy3kWGj7-@mail.gmail.com>
In-Reply-To
<20110221100454.GM22168@axel>
Thanks, axel and Christian.

I am just look for a simpler method. since i have a full backup, finally , i do something like following

git clone --bare --reference bad-repo.git foo.com:good-repo.git repo.git
On Mon, Feb 21, 2011 at 6:04 PM, Axel Freyn <axel-freyn@gmx.de> wrote:
Show 42 quoted lines
> Hi,
> On Mon, Feb 21, 2011 at 03:50:09PM +0800, Ping Yin wrote:
>> I have a corrupted git repo, with "git fsck", it shows
>>
>> missing blob b71eb55f2dbc97dafd4a769fc61f346e69a5e0af
>> missing blob 282035f3ae964e1e288f352c370be8edd11d3078
>> missing tree 3c20f556eecc476e3542cc522d46a62a4461fec6
>> missing blob f321b578edeb452358497e832815d6cae6b36886
>> missing commit 6d23f5084c975be637f7d748db82116bf84d3872
>>
>> And i also have a good backup repo. How can i recover the corrupted
>> repo with the backup repo?
>>
>> I can do a rsync or fresh "git clone", however, is there any git
>> related commands to incrementally do this?
> I don't know whether there is a single git command to do it, but you can
> copy those 5 objects "by hand": in your backup, you should have a
> directory .git/objects, where you have the files
>   b7/1eb55f2dbc97dafd4a769fc61f346e69a5e0af
>   28/2035f3ae964e1e288f352c370be8edd11d3078
>   3c/20f556eecc476e3542cc522d46a62a4461fec6
>   f3/21b578edeb452358497e832815d6cae6b36886
>   6d/23f5084c975be637f7d748db82116bf84d3872
>
> It should be sufficient to just copy those files into the corrupted
> repo.
>
> However if you packed the git-files in the backup (e.g. by running "git
> gc"), those objects might be found in a pack in .git/objects/pack.
> The easiest ist probably to use git-unpack-objects to unpack the
> objects, and then copy the 5 missing objects.
>
> Axel
>
> PS: Well, I'm using git and I like it -- but I'm no specialist; so first
> do a backup, before you follow my proposal ;-)
>
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
Previous: Axel FreynNext: Matthieu Moy
Message 4 of 8 in “How to recovery a corrupted git repo”
  1. Ping YinFeb 21, 2011
  2. Christian CouderFeb 21, 2011
  3. Axel FreynFeb 21, 2011
  4. Ping YinFeb 21, 2011
  5. Matthieu MoyFeb 21, 2011
  6. Ping YinFeb 21, 2011
  7. Matthieu MoyFeb 21, 2011
  8. Ping YinFeb 22, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.