GIT-MERGE-BASE(1) (NAME) git-merge-base - (SYNOPSIS) git merge-base [-a | --all] ... git merge-base [-a | --all] --octopus ... git merge-base --is-ancestor git merge-base --independent ... git merge-base --fork-point [] (DESCRIPTION) git merge-base () (three-way merge) . . (merge base). . (OPERATION MODES) . ( ) . . git-show- branch(1) --merge-base . --octopus (n-way merge). git show-branch --merge-base . --independent . . git show-branch --independent . --is-ancestor 0 1 . 1 . --fork-point ( ) ( ) . (reflog) ( ). (OPTIONS) -a, --all . (DISCUSSION) A B git merge-base A B A B . : o---o---o---B / ---o---1---o---o---o---A A B 1 . A B C git merge-base A B C A M B C . : o---o---o---o---C / / o---o---o---B / / ---2---1---o---o---o---A git merge-base A B C 1 . M B C : o---o---o---o---o / \ / o---o---o---o---M / / ---2---1---o---o---o---A git merge-base A M 1 . 2 A M 1 2 1 . 2 . git merge-base --octopus A B C 2 2 . (criss-cross merges) . : ---1---o---A \ / X / \ ---2---o---o---B 1 2 A B . ( ). --all . << >> (fast-forward-ness) A B ( ) A B A A B . . A=$(git rev-parse --verify A) if test "$A" = "$(git merge-base A B)" then ... A is an ancestor of B ... fi : if git merge-base --is-ancestor A B then ... A is an ancestor of B ... fi . FORK-POINT (DISCUSSION ON FORK-POINT MODE) topic git switch -c topic origin/master (remote-tracking branch) origin/master : o---B2 / ---o---o---B1--o---o---o---B (origin/master) \ B0 \ D0---D1---D (topic) origin/master B0 B1 B2 B topic origin/master B0 D0 D1 D . topic origin/master (rebase) . git merge-base origin/master topic B0 B0^..D B ( B0 B0 B1 ). git merge-base --fork-point origin/master topic . B B0 B1 B2 ( reflog ) topic B0 . $ fork_point=$(git merge-base --fork-point origin/master topic) B0 $ git rebase --onto origin/master $fork_point topic D0 D1 D B : o---B2 / ---o---o---B1--o---o---o---B (origin/master) \ \ B0 D0'--D1'--D' (topic - updated) \ D0---D1---D (topic - old) reflog git gc . B0 reflog origin/master --fork-point ( B0 --fork-point ). --fork-point . ( B0 origin/master B1 B2 B topic origin/master^ origin/master B1 B0 B1 git merge-base origin/master topic --fork-point origin/master ). (SEE ALSO) git-rev-list(1), git-show-branch(1), git-merge(1) (GIT) git(1) Git 2.55.0 2026-06-29 GIT-MERGE-BASE(1)