Re: How to recovery a corrupted git repo

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Axel Freyn <axel-freyn@xxxxxx> writes:

> 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.

There's also the brute-force approach

rsync $good_repo/.git/objects/ $bad_repo/.git/objects/
cd $bad_repo
git gc

Notice the absence of --delete in the rsync command: I'm just adding
new files in the $bad_repo, not deleting any (since files with
identical names must have identical content).

This will result in a lot of duplicates (objects found in several
packs), but "git gc" should be able to remove them.

(the notice about doing backups before also applies to my
proposal ;-) )

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]