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

Re: Searching all git objects

From
Shawn O. Pearce <spearce@spearce.org>
Date
Jun 25, 2008, 23:17 UTC
Message-ID
<20080625231742.GT11793@spearce.org>
In-Reply-To
<E99352BE-5C43-437E-A5E6-622BEEA03DFA@comcast.net>
"Sam G." <ceptorial@comcast.net> wrote:
Show 13 quoted lines
> 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.
Previous: Sam G.Next: Tarmigan
Message 2 of 6 in “Searching all git objects”
  1. Sam G.Jun 25, 2008
  2. Shawn O. PearceJun 25, 2008
  3. TarmiganJun 25, 2008
  4. Sam G.Jun 26, 2008
  5. Junio C HamanoJun 26, 2008
  6. Sam G.Jun 26, 2008

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.