Re: Find the starting point of a local branch
From: Woody Wu <hidden>
Date: 2016-06-15 22:55:35
On Sun, Dec 23, 2012 at 11:09:58PM -0500, Seth Robertson wrote:
In message <20121224035825.GA17203@zuhnb712>, Woody Wu writes:
How can I find out what's the staring reference point (a commit number
or tag name) of a locally created branch? I can use gitk to find out it
but this method is slow, I think there might be a command line to do it
quickly.
The answer is more complex than you probably suspected.
Technically, `git log --oneline mybranch | tail -n 1` will tell you
the starting point of any branch. But...I'm sure that isn't what you
want to know.
You want to know "what commit was I at when I typed `git branch
mybranch`"? Yes, this is exactly I want to know.
The problem is git doesn't record this information and doesn't have the slightest clue. But, you say, I can use `gitk` and see it. See? Right there. That isn't (necessarily) the "starting point" of the branch, it is the place where your branch diverged from some other branch. Git is actually quite able to tell you when the last time your branch diverged from some other branch. `git merge-base mybranch master` will tell you this, and is probably the answer you were looking for.
This is not working to me since I have more than one local branch that diverged from the master, and in fact, the branch I have in question was diverged from another local branch. With the method of 'git merge-base', I have to remember a branch tree in my brain. But thanks anyway, I see you guys's discussions and it's a little hard to understand to me at the moment. Currently, I still have to use gitk with narrowed outputs.
Note that this is the *last* divergence. If your branch diverged and merged previously that will not be reported. Even worse, if you did a fast-forward merge (I recommend against them in general) then it is impossible to discover about what the independent pre-merge history was really like. -Seth Robertson
-- woody I can't go back to yesterday - because I was a different person then.