diff options
author | Junio C Hamano <gitster@pobox.com> | 2012-09-12 15:56:53 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2012-09-12 15:56:53 -0700 |
commit | 693e70961ac5a79a46303795f3ca6a0bfd62f375 (patch) | |
tree | 70fc25a554a7d96d42e8d233d57316d63f603c47 /git-merge-base.txt | |
parent | eccdd4a4b39010678cef09a1c28c964396d2cc84 (diff) | |
download | git-htmldocs-693e70961ac5a79a46303795f3ca6a0bfd62f375.tar.gz |
Autogenerated HTML docs for v1.7.12-395-g6b149
Diffstat (limited to 'git-merge-base.txt')
-rw-r--r-- | git-merge-base.txt | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/git-merge-base.txt b/git-merge-base.txt index b295bf833..87842e33f 100644 --- a/git-merge-base.txt +++ b/git-merge-base.txt @@ -11,6 +11,7 @@ SYNOPSIS [verse] 'git merge-base' [-a|--all] <commit> <commit>... 'git merge-base' [-a|--all] --octopus <commit>... +'git merge-base' --is-ancestor <commit> <commit> 'git merge-base' --independent <commit>... DESCRIPTION @@ -50,6 +51,12 @@ from linkgit:git-show-branch[1] when used with the `--merge-base` option. from any other. This mimics the behavior of 'git show-branch --independent'. +--is-ancestor:: + Check if the first <commit> is an ancestor of the second <commit>, + and exit with status 0 if true, or with status 1 if not. + Errors are signaled by a non-zero status that is not 1. + + OPTIONS ------- -a:: @@ -110,6 +117,27 @@ both '1' and '2' are merge-bases of A and B. Neither one is better than the other (both are 'best' merge bases). When the `--all` option is not given, it is unspecified which best one is output. +A common idiom to check "fast-forward-ness" between two commits A +and B is (or at least used to be) to compute the merge base between +A and B, and check if it is the same as A, in which case, A is an +ancestor of B. You will see this idiom used often in older scripts. + + A=$(git rev-parse --verify A) + if test "$A" = "$(git merge-base A B)" + then + ... A is an ancestor of B ... + fi + +In modern git, you can say this in a more direct way: + + if git merge-base --is-ancestor A B + then + ... A is an ancestor of B ... + fi + +instead. + + See also -------- linkgit:git-rev-list[1], |