# Searching all git objects

6 messages from 2008-06-25 to 2008-06-26. Participants: Sam G., Shawn O. Pearce, Tarmigan, Junio C Hamano.
Thread: https://gitlist.dev/t/14155

## Sam G., 2008-06-25 23:06

Subject: Searching all git objects
Message-ID: <E99352BE-5C43-437E-A5E6-622BEEA03DFA@comcast.net>
URL: https://gitlist.dev/e/E99352BE-5C43-437E-A5E6-622BEEA03DFA%40comcast.net

```
Hi all,

We recently had a developer make a large commit (mostly centered  
around one file) which she believed she properly pushed to a remote  
repository last week, but looking at both her repository and the  
remote repository, that commit is now nowhere to be found. If somehow  
the master branch she was working on in her repository has lost the  
reference to the commit through perhaps some errant rebasing, then  
perhaps an object containing the commit (or an object containing the  
file in that commit) still exists somewhere inside her .git/objects  
directory? We haven't done any git-gc recently. If so, how can I  
search through every single git object in her objects directory,  
searching for perhaps a specific part of the commit string, a line in  
the code or the filename of the file which was changed? Any help with  
this would be greatly appreciated. Thanks!

-Sam

```

## Shawn O. Pearce, 2008-06-25 23:17

Subject: Re: Searching all git objects
Message-ID: <20080625231742.GT11793@spearce.org>
URL: https://gitlist.dev/e/20080625231742.GT11793%40spearce.org
In-Reply-To: <E99352BE-5C43-437E-A5E6-622BEEA03DFA@comcast.net>

```
"Sam G." <ceptorial@comcast.net> wrote:
> We recently had a developer make a large commit (mostly centered  
> around one file) which she believed she properly pushed to a remote  
> repository last week, but looking at both her repository and the  
> remote repository, that commit is now nowhere to be found. If somehow  
> the master branch she was working on in her repository has lost the  
> reference to the commit through perhaps some errant rebasing, then  
> perhaps an object containing the commit (or an object containing the  
> file in that commit) still exists somewhere inside her .git/objects  
> directory? We haven't done any git-gc recently. If so, how can I  
> search through every single git object in her objects directory,  
> searching for perhaps a specific part of the commit string, a line in  
> the code or the filename of the file which was changed? Any help with  
> this would be greatly appreciated. Thanks!

Odds are it is in her HEAD reflog.  You can look for it with
`git log -g`.  If you know some part of the commit message you
may be able to filter it down with `git log -g --grep=X` or part
of the change with `git log -g -SX`.

A coworker just did something like that today and lost his change;
looking in the HEAD reflog and cherry-picking the commit recovered
it quite easily.

-- 
Shawn.

```

## Tarmigan, 2008-06-25 23:32

Subject: Re: Searching all git objects
Message-ID: <905315640806251632m416a2406x301b857ec7faf09d@mail.gmail.com>
URL: https://gitlist.dev/e/905315640806251632m416a2406x301b857ec7faf09d%40mail.gmail.com
In-Reply-To: <20080625231742.GT11793@spearce.org>

```
On Wed, Jun 25, 2008 at 4:17 PM, Shawn O. Pearce <spearce@spearce.org> wrote:
> "Sam G." <ceptorial@comcast.net> wrote:
>> We recently had a developer make a large commit (mostly centered
>> around one file) which she believed she properly pushed to a remote
>> repository last week, but looking at both her repository and the
>> remote repository, that commit is now nowhere to be found. If somehow
>> the master branch she was working on in her repository has lost the
>> reference to the commit through perhaps some errant rebasing, then
>> perhaps an object containing the commit (or an object containing the
>> file in that commit) still exists somewhere inside her .git/objects
>> directory? We haven't done any git-gc recently. If so, how can I
>> search through every single git object in her objects directory,
>> searching for perhaps a specific part of the commit string, a line in
>> the code or the filename of the file which was changed? Any help with
>> this would be greatly appreciated. Thanks!
>
> Odds are it is in her HEAD reflog.  You can look for it with
> `git log -g`.  If you know some part of the commit message you
> may be able to filter it down with `git log -g --grep=X` or part
> of the change with `git log -g -SX`.

If it helps, I like viewing the reflog with gitk.  Like this:
gitk $(git log -g --pretty=format:%H)

Is there a shorter way to do this with gitk?  It would be awesome to
have `gitk -g` .

-Tarmigan

```

## Sam G., 2008-06-26 00:49

Subject: Re: Searching all git objects
Message-ID: <321F18C8-351F-4E91-9F00-CFE2711B67D1@comcast.net>
URL: https://gitlist.dev/e/321F18C8-351F-4E91-9F00-CFE2711B67D1%40comcast.net
In-Reply-To: <905315640806251632m416a2406x301b857ec7faf09d@mail.gmail.com>

```
On Jun 25, 2008, at 4:32 PM, Tarmigan wrote:

> On Wed, Jun 25, 2008 at 4:17 PM, Shawn O. Pearce  
> <spearce@spearce.org> wrote:
>> "Sam G." <ceptorial@comcast.net> wrote:
>>> We recently had a developer make a large commit (mostly centered
>>> around one file) which she believed she properly pushed to a remote
>>> repository last week, but looking at both her repository and the
>>> remote repository, that commit is now nowhere to be found. If  
>>> somehow
>>> the master branch she was working on in her repository has lost the
>>> reference to the commit through perhaps some errant rebasing, then
>>> perhaps an object containing the commit (or an object containing the
>>> file in that commit) still exists somewhere inside her .git/objects
>>> directory? We haven't done any git-gc recently. If so, how can I
>>> search through every single git object in her objects directory,
>>> searching for perhaps a specific part of the commit string, a line  
>>> in
>>> the code or the filename of the file which was changed? Any help  
>>> with
>>> this would be greatly appreciated. Thanks!
>>
>> Odds are it is in her HEAD reflog.  You can look for it with
>> `git log -g`.  If you know some part of the commit message you
>> may be able to filter it down with `git log -g --grep=X` or part
>> of the change with `git log -g -SX`.
>
> If it helps, I like viewing the reflog with gitk.  Like this:
> gitk $(git log -g --pretty=format:%H)
>
> Is there a shorter way to do this with gitk?  It would be awesome to
> have `gitk -g` .
>
> -Tarmigan

Unfortunately I can't seem to find it in here. So at this point it  
seems about 99% likely that it was never committed. Does this command  
search across all branches or only the one you have checked out when  
you run the git log command? And, just in case, is there any way to  
search raw objects for text, either commit text, file name or content?  
Thanks very much!

-Sam

```

## Junio C Hamano, 2008-06-26 01:00

Subject: Re: Searching all git objects
Message-ID: <7v7icdvwml.fsf@gitster.siamese.dyndns.org>
URL: https://gitlist.dev/e/7v7icdvwml.fsf%40gitster.siamese.dyndns.org
In-Reply-To: <321F18C8-351F-4E91-9F00-CFE2711B67D1@comcast.net>

```
"Sam G." <ceptorial@comcast.net> writes:

> And, just in case, is there any way to
> search raw objects for text, either commit text, file name or content?
> Thanks very much!

Or run "git lost-found" and grep for blobs in .git/lost-found/other/*

```

## Sam G., 2008-06-26 22:23

Subject: Re: Searching all git objects
Message-ID: <4F53E903-38EF-464F-919D-42AD5A9F39B4@comcast.net>
URL: https://gitlist.dev/e/4F53E903-38EF-464F-919D-42AD5A9F39B4%40comcast.net
In-Reply-To: <7v7icdvwml.fsf@gitster.siamese.dyndns.org>

```
git-lost-found actually did it... she had git-stashed it a number of  
times throughout development, so through some grepping of the lost- 
found objects, we were able to find a very close version. What a  
relief! Thanks to everyone for your help!

-Sam


On Jun 25, 2008, at 6:00 PM, Junio C Hamano wrote:

> "Sam G." <ceptorial@comcast.net> writes:
>
>> And, just in case, is there any way to
>> search raw objects for text, either commit text, file name or  
>> content?
>> Thanks very much!
>
> Or run "git lost-found" and grep for blobs in .git/lost-found/other/*

```
