Thread (1 message) 1 message, 1 author, 2016-06-15

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

From: Teemu Likonen <hidden>
Date: 2016-06-15 22:44:48

David Jeske wrote (2008-06-23 22:01 -0700):
On Mon, Jun 23, 2008 at 9:59 PM, Teemu Likonen [off-list ref]
wrote:
quoted
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 [off-list ref])
  Reflog message: Branch: renamed refs/heads/master to refs/heads/testbranch
  Author: Teemu Likonen [off-list ref]
  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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help