Assuming I have branches master (m), and a side branch (b), with a history tree like below: m0 --- m1 -- m2 -- m3 -- m4 --- master (m) \ / \ b1 ------ b2 b3 -- b4 -- branch (b) (HEAD) | (tag:POINT_BEFORE_REBASE) The history of branch b is can be described as: 1. branch b is forked at point of m1 2. branch b is merged to master into m3, 3. branch b then is rebased (fast-forward) from b2 to m4 4. then branch b started its new life as b3 b4 after rebase With the following command: I can find b3 and b4 since last fork-point git log --oneline $(git merge-base --fork-point master)..b But how to find out commits b1 b2, given the fact that b2 is the point before rebase? I understand it can be achieved via: git log --oneline m2..b2 That's because I know b2 is the point before rebase, and m2 is another child of the subsequent merge commit m3 I wonder how to do this with an simple (enough) command without me looking through the history and find b2 and m2 manually? Thanks! -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html