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