views:

44

answers:

2

Pretend I branched from my master branch to a topic branch, and then I did a few commits on my topic branch. Is there a command that tells me the commit hash on the master branch that my topic branch originated from?

Ideally, I wouldn't have to know how many commits I've made ( trying to avoid HEAD^5 ).

I've googled and SO'd around and can't seem to land on the answer. Thanks!

+2  A: 

You can use git reflog show --no-abbrev <branch name>. It will output all changes made to the branch, including it's creation, for example (I created branch xxx from master branch):

bdbf21b087de5aa2e78a7d793e035d8bd9ec9629 xxx@{0}: branch: Created from master

Note that this is not very reliable as reflog records can expire (90 days by default), and it seems like there is no 100% reliable way to do this.

max
+6  A: 

use git merge-base master your-branch to find the best common ancestor between to branches (usually the branching point)

knittl
beauty, this is what I was looking for. Thanks!
Bryce
@Bryce: do note that if you do some intermediate merges, this is going to give you the most recent common ancestor, not necessarily the first branching point.
Jefromi