Thread (5 messages) flat view 5 messages, 5 authors, 2016-06-15

Re: git ready: daily git tips

From: Johannes Schindelin <hidden>
Date: 2016-06-15 22:46:08

Hi,

On Tue, 10 Feb 2009, Sitaram Chamarty wrote:
On 2009-02-09, Nicolas Pitre [off-list ref] wrote:
quoted
On Sun, 8 Feb 2009, Nick Quaranto wrote:
quoted
http://gitready.com
Well done.

One topic that IMHO you fail to cover, and which is being neglected 
almost everywhere else too, is the reflog.

The reflog is really your safety net when working with git.  It records 
everything you do. So even if you screw up a rebase, perform the wrong 
merge, or any other kind of undesired operation, then you may always go 
back to a previous state.  Either you use -g with 'git log' to see all 
those recorded states, or even 'git reflog' without any argument to get 
a condensed list for HEAD.

The <branch>@{<spec>} notation can be used anywhere a ref is normally 
required.  The special branch "HEAD" shows every state the HEAD pointer 
went through, including branch switches.  The <branch< part can be left 
out to mean "currently checked-out branch".

One thing that I use all the time after a 'git pull' is 'git log @{1}..' 
where "@{1}" means the first previous tip of the current branch, so 
effectively showing me the log of what the pull brought in my branch.
Also, the @{now} notation to get a relative timestamp of the
reflog is invaluable.  Seeing reflog lines annotated with
'14 minutes ago' or '17 hours ago' or perhaps '4 days ago',
really helps to focus on the commits you're looking for:

    git reflog show @{now}
    # (the 'show' is not optional in this syntax)
Yes, I often use "git log -g --date=relative" to get a better 
understanding of my recent actions in that particular repository.

Also do not forget to advertise the new @{-<n>} notation for the n-th last 
branch you were on (to be part of 1.6.2 AFAIU).  This comes in really 
handy when you juggle a dozen branches (and happen to commit to the wrong 
branch ;-)

Ciao,
Dscho
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help