Re: previous references
- From
- Daniele Segato <daniele.bilug@gmail.com>
- Date
- Oct 5, 2009, 21:11 UTC
- Message-ID
- <1254777067.26111.105.camel@localhost>
- In-Reply-To
- <200910041127.29588.johan@herland.net>
Il giorno dom, 04/10/2009 alle 11.27 +0200, Johan Herland ha scritto:
Show 9 quoted lines
> On Sunday 04 October 2009, Octavian Râşniţă wrote: > > Are the following commands specifying the same reference? > > > > prompt> git log -1 HEAD^^^ ... log entry ... > > prompt> git log -1 HEAD^~2 ... log entry ... > > prompt> git log -1 HEAD~1^^ ... log entry ... > > prompt> git log -1 HEAD~3 ... log entry ... > > Yes
the ~ is used to select the first parent of a commit and their grand-parents
HEAD~ means the parent of the current head HEAD~2 means the grand-parent HEAD~3 the grand-grand-parent..
the ^ is used to select a direct parent of a commit HEAD^ is the same as HEAD~ HEAD^^ is the same as HEAD~2 (parent of the parent) HEAD^2 is NOT the same of HEAD~2, it means the "second parent" of HEAD: this make sense only if HEAD has at least two parents (because it is a merge commit) if it hasn't you'll get:
fatal: ambiguous argument 'HEAD^2': unknown revision or path not in the working tree. Use '--' to separate paths from revisions
you can read the same here: http://progit.org/book/ch6-1.html
regards, Daniele