The commands for 'is this branch ahead/behind', 'what's the common ancestor', and 'what will merging this actually bring in' — gathered in one place instead of re-derived from log/diff each time.
Same tree? — git diff branchA branchB --quiet; echo $? (0 = identical content)
Two-dot (A..B) is a direct set difference; three-dot (A...B) is relative to the merge-base. Mixing them up is the #1 reason a comparison looks empty or absurdly large.