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

Re: why is git destructive by default? (i suggest it not be!)

From
TLTeemu Likonen <tlikonen@iki.fi>
Date
Jun 24, 2008, 05:43 UTC
Message-ID
<20080624054313.GB3125@mithlond.arda.local>
In-Reply-To
<e80d075a0806232201o3933d154he2b570986604c30a@mail.gmail.com>
David Jeske wrote (2008-06-23 22:01 -0700):
Show 12 quoted lines
> On Mon, Jun 23, 2008 at 9:59 PM, Teemu Likonen <tlikonen@iki.fi>
> wrote:
> 
> > I'm also quite new and I actually feel safe using git, and it's
> > because of reflog. No matter what I do (except manual reflog expire)
> > I can see where I was before with command
> >
> >  git log --walk-reflogs
> 
> 
> Perhaps I'm misunderstanding how to read it, but how do you tell where
> a branch was from the reflog if you inadvertantly moved it?

Perhaps I'm misunderstanding what you mean but I try to explain. In git branches are nothing but named pointers to certain commit. If you "move a branch" you actually rename the pointer, nothing more. With command

  git log --walk-reflogs --all

you can see everything in your reflog. When branches are moved (i.e., renamed) in "git log --walk-reflogs" output it shows like this:

  commit 269f10bca2273c1cf77831d5e23c6e0361217697
  Reflog: refs/heads/master@{2008-06-24 08:15:56 +0300} (Teemu Likonen <tlikonen@iki.fi>)
  Reflog message: Branch: renamed refs/heads/master to refs/heads/testbranch
  Author: Teemu Likonen <tlikonen@iki.fi>
  Date:   2008-03-25 19:10:40 +0200
  
  [commit message]

See the "Reflog message" field above. It tells what happened. The "Reflog" field tells when it happened. If I later remove this "testbranch" I can browse the reflog and create this branch (i.e. a pointer) again with command "git branch testbranch 269f10bca". The 269f10bca comes from the commit ID of the above log item.

Previous: Teemu Likonen
Message 2 of 2 in “Re: why is git destructive by default? (i suggest it not be!)”
  1. Teemu LikonenJun 24, 2008
  2. Teemu LikonenJun 24, 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.