Windows NT DGPENSV2LPKMN 10.0 build 14393 (Windows Server 2016) AMD64
Apache/2.4.46 (Win64) OpenSSL/1.1.1h PHP/7.3.25
: 172.16.0.66 | : 172.16.0.254
Cant Read [ /etc/named.conf ]
7.3.25
SYSTEM
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
BLACK DEFEND!
README
+ Create Folder
+ Create File
[ A ]
[ C ]
[ D ]
C: /
laragon /
bin /
git /
mingw64 /
share /
doc /
git-doc /
[ HOME SHELL ]
Name
Size
Permission
Action
howto
[ DIR ]
drwxrwxrwx
technical
[ DIR ]
drwxrwxrwx
MyFirstContribution.html
101.54
KB
-rw-rw-rw-
MyFirstObjectWalk.html
72.23
KB
-rw-rw-rw-
SubmittingPatches.html
63.36
KB
-rw-rw-rw-
ToolsForGit.html
32.1
KB
-rw-rw-rw-
docbook-xsl.css
4.45
KB
-rw-rw-rw-
everyday.html
29.84
KB
-rw-rw-rw-
git-add.html
50.6
KB
-rw-rw-rw-
git-am.html
42.42
KB
-rw-rw-rw-
git-annotate.html
40.26
KB
-rw-rw-rw-
git-apply.html
44.28
KB
-rw-rw-rw-
git-archive.html
41.15
KB
-rw-rw-rw-
git-bash.html
34.89
KB
-rw-rw-rw-
git-bisect-lk2009.html
92.39
KB
-rw-rw-rw-
git-bisect.html
52.17
KB
-rw-rw-rw-
git-blame.html
51.15
KB
-rw-rw-rw-
git-branch.html
51.74
KB
-rw-rw-rw-
git-bugreport.html
32.14
KB
-rw-rw-rw-
git-bundle.html
45.7
KB
-rw-rw-rw-
git-cat-file.html
47.64
KB
-rw-rw-rw-
git-check-attr.html
34.93
KB
-rw-rw-rw-
git-check-ignore.html
35.68
KB
-rw-rw-rw-
git-check-mailmap.html
31.67
KB
-rw-rw-rw-
git-check-ref-format.html
36.54
KB
-rw-rw-rw-
git-checkout-index.html
37.72
KB
-rw-rw-rw-
git-checkout.html
59.77
KB
-rw-rw-rw-
git-cherry-pick.html
42.18
KB
-rw-rw-rw-
git-cherry.html
35.1
KB
-rw-rw-rw-
git-citool.html
30.53
KB
-rw-rw-rw-
git-clean.html
35.76
KB
-rw-rw-rw-
git-clone.html
52.58
KB
-rw-rw-rw-
git-column.html
32.85
KB
-rw-rw-rw-
git-commit-graph.html
36.99
KB
-rw-rw-rw-
git-commit-tree.html
39.13
KB
-rw-rw-rw-
git-commit.html
65.26
KB
-rw-rw-rw-
git-config.html
367.82
KB
-rw-rw-rw-
git-count-objects.html
31.79
KB
-rw-rw-rw-
git-credential-cache--daemon.h...
31.06
KB
-rw-rw-rw-
git-credential-cache.html
32.78
KB
-rw-rw-rw-
git-credential-store.html
34.74
KB
-rw-rw-rw-
git-credential.html
37.47
KB
-rw-rw-rw-
git-daemon.html
46.12
KB
-rw-rw-rw-
git-describe.html
40.33
KB
-rw-rw-rw-
git-diff-files.html
86.05
KB
-rw-rw-rw-
git-diff-index.html
91.17
KB
-rw-rw-rw-
git-diff-tree.html
117.23
KB
-rw-rw-rw-
git-diff.html
95.61
KB
-rw-rw-rw-
git-difftool.html
37.25
KB
-rw-rw-rw-
git-fast-export.html
43.41
KB
-rw-rw-rw-
git-fast-import.html
111.36
KB
-rw-rw-rw-
git-fetch-pack.html
35.51
KB
-rw-rw-rw-
git-fetch.html
75.8
KB
-rw-rw-rw-
git-filter-branch.html
65.54
KB
-rw-rw-rw-
git-fmt-merge-msg.html
33.93
KB
-rw-rw-rw-
git-for-each-ref.html
50.37
KB
-rw-rw-rw-
git-for-each-repo.html
32.12
KB
-rw-rw-rw-
git-format-patch.html
88
KB
-rw-rw-rw-
git-fsck-objects.html
30.29
KB
-rw-rw-rw-
git-fsck.html
41.54
KB
-rw-rw-rw-
git-fsmonitor--daemon.html
32.83
KB
-rw-rw-rw-
git-gc.html
45.33
KB
-rw-rw-rw-
git-get-tar-commit-id.html
30.72
KB
-rw-rw-rw-
git-grep.html
46.16
KB
-rw-rw-rw-
git-gui.html
34.8
KB
-rw-rw-rw-
git-hash-object.html
32.4
KB
-rw-rw-rw-
git-help.html
39.51
KB
-rw-rw-rw-
git-hook.html
31.37
KB
-rw-rw-rw-
git-http-backend.html
43.25
KB
-rw-rw-rw-
git-http-fetch.html
32.29
KB
-rw-rw-rw-
git-http-push.html
34.02
KB
-rw-rw-rw-
git-imap-send.html
37.59
KB
-rw-rw-rw-
git-index-pack.html
36.71
KB
-rw-rw-rw-
git-init-db.html
30.34
KB
-rw-rw-rw-
git-init.html
38.32
KB
-rw-rw-rw-
git-instaweb.html
33.23
KB
-rw-rw-rw-
git-interpret-trailers.html
50.23
KB
-rw-rw-rw-
git-log.html
169.99
KB
-rw-rw-rw-
git-ls-files.html
41.98
KB
-rw-rw-rw-
git-ls-remote.html
35.17
KB
-rw-rw-rw-
git-ls-tree.html
37.84
KB
-rw-rw-rw-
git-mailinfo.html
35.02
KB
-rw-rw-rw-
git-mailsplit.html
31.95
KB
-rw-rw-rw-
git-maintenance.html
52.57
KB
-rw-rw-rw-
git-merge-base.html
40.83
KB
-rw-rw-rw-
git-merge-file.html
34.2
KB
-rw-rw-rw-
git-merge-index.html
33.18
KB
-rw-rw-rw-
git-merge-one-file.html
30.3
KB
-rw-rw-rw-
git-merge-tree.html
30.72
KB
-rw-rw-rw-
git-merge.html
78.28
KB
-rw-rw-rw-
git-mergetool--lib.html
31.87
KB
-rw-rw-rw-
git-mergetool.html
50.4
KB
-rw-rw-rw-
git-mktag.html
32.6
KB
-rw-rw-rw-
git-mktree.html
31.25
KB
-rw-rw-rw-
git-multi-pack-index.html
35.81
KB
-rw-rw-rw-
git-mv.html
32.81
KB
-rw-rw-rw-
git-name-rev.html
34.27
KB
-rw-rw-rw-
git-notes.html
49.29
KB
-rw-rw-rw-
git-p4.html
67.74
KB
-rw-rw-rw-
git-pack-objects.html
53.28
KB
-rw-rw-rw-
git-pack-redundant.html
31.61
KB
-rw-rw-rw-
git-pack-refs.html
32.54
KB
-rw-rw-rw-
git-patch-id.html
32.58
KB
-rw-rw-rw-
git-prune-packed.html
31.36
KB
-rw-rw-rw-
git-prune.html
33.06
KB
-rw-rw-rw-
git-pull.html
85.03
KB
-rw-rw-rw-
git-push.html
76.99
KB
-rw-rw-rw-
git-quiltimport.html
32.19
KB
-rw-rw-rw-
git-range-diff.html
43.82
KB
-rw-rw-rw-
git-read-tree.html
50.85
KB
-rw-rw-rw-
git-rebase.html
103.48
KB
-rw-rw-rw-
git-receive-pack.html
42.71
KB
-rw-rw-rw-
git-reflog.html
36.09
KB
-rw-rw-rw-
git-remote-ext.html
35.34
KB
-rw-rw-rw-
git-remote-fd.html
32.28
KB
-rw-rw-rw-
git-remote-helpers.html
29.82
KB
-rw-rw-rw-
git-remote.html
42.5
KB
-rw-rw-rw-
git-repack.html
41.93
KB
-rw-rw-rw-
git-replace.html
37.28
KB
-rw-rw-rw-
git-request-pull.html
33.02
KB
-rw-rw-rw-
git-rerere.html
39.71
KB
-rw-rw-rw-
git-reset.html
56.54
KB
-rw-rw-rw-
git-restore.html
39.97
KB
-rw-rw-rw-
git-rev-list.html
118.22
KB
-rw-rw-rw-
git-rev-parse.html
72.3
KB
-rw-rw-rw-
git-revert.html
37.42
KB
-rw-rw-rw-
git-rm.html
39.86
KB
-rw-rw-rw-
git-send-email.html
57.84
KB
-rw-rw-rw-
git-send-pack.html
36.87
KB
-rw-rw-rw-
git-sh-i18n--envsubst.html
31.05
KB
-rw-rw-rw-
git-sh-i18n.html
31.39
KB
-rw-rw-rw-
git-sh-setup.html
33.75
KB
-rw-rw-rw-
git-shell.html
34.17
KB
-rw-rw-rw-
git-shortlog.html
71.45
KB
-rw-rw-rw-
git-show-branch.html
38.33
KB
-rw-rw-rw-
git-show-index.html
32.2
KB
-rw-rw-rw-
git-show-ref.html
37.47
KB
-rw-rw-rw-
git-show.html
112.74
KB
-rw-rw-rw-
git-sparse-checkout.html
54.09
KB
-rw-rw-rw-
git-stage.html
30.24
KB
-rw-rw-rw-
git-stash.html
48.68
KB
-rw-rw-rw-
git-status.html
53.31
KB
-rw-rw-rw-
git-stripspace.html
32.76
KB
-rw-rw-rw-
git-submodule.html
55.69
KB
-rw-rw-rw-
git-subtree.html
47.96
KB
-rw-rw-rw-
git-svn.html
89.33
KB
-rw-rw-rw-
git-switch.html
41.98
KB
-rw-rw-rw-
git-symbolic-ref.html
32.69
KB
-rw-rw-rw-
git-tag.html
49.74
KB
-rw-rw-rw-
git-tools.html
30.05
KB
-rw-rw-rw-
git-unpack-file.html
30.51
KB
-rw-rw-rw-
git-unpack-objects.html
31.57
KB
-rw-rw-rw-
git-update-index.html
60.6
KB
-rw-rw-rw-
git-update-ref.html
38.35
KB
-rw-rw-rw-
git-update-server-info.html
30.84
KB
-rw-rw-rw-
git-upload-archive.html
32.58
KB
-rw-rw-rw-
git-upload-pack.html
32.47
KB
-rw-rw-rw-
git-var.html
32.49
KB
-rw-rw-rw-
git-verify-commit.html
30.76
KB
-rw-rw-rw-
git-verify-pack.html
31.71
KB
-rw-rw-rw-
git-verify-tag.html
30.75
KB
-rw-rw-rw-
git-version.html
30.66
KB
-rw-rw-rw-
git-web--browse.html
35.06
KB
-rw-rw-rw-
git-whatchanged.html
31.39
KB
-rw-rw-rw-
git-worktree.html
56.98
KB
-rw-rw-rw-
git-write-tree.html
31.25
KB
-rw-rw-rw-
git.html
106.92
KB
-rw-rw-rw-
gitattributes.html
92.19
KB
-rw-rw-rw-
gitcli.html
42
KB
-rw-rw-rw-
gitcore-tutorial.html
111
KB
-rw-rw-rw-
gitcredentials.html
43.44
KB
-rw-rw-rw-
gitcvs-migration.html
39.85
KB
-rw-rw-rw-
gitdiffcore.html
46.2
KB
-rw-rw-rw-
giteveryday.html
50.37
KB
-rw-rw-rw-
gitfaq.html
56.09
KB
-rw-rw-rw-
gitglossary.html
67.99
KB
-rw-rw-rw-
githooks.html
65.99
KB
-rw-rw-rw-
gitignore.html
40.59
KB
-rw-rw-rw-
gitk.html
40.38
KB
-rw-rw-rw-
gitmailmap.html
35.57
KB
-rw-rw-rw-
gitmodules.html
36.43
KB
-rw-rw-rw-
gitnamespaces.html
34.91
KB
-rw-rw-rw-
gitremote-helpers.html
58.26
KB
-rw-rw-rw-
gitrepository-layout.html
50.05
KB
-rw-rw-rw-
gitrevisions.html
51.97
KB
-rw-rw-rw-
gitsubmodules.html
44.09
KB
-rw-rw-rw-
gittutorial-2.html
46.96
KB
-rw-rw-rw-
gittutorial.html
57.55
KB
-rw-rw-rw-
gitweb.conf.html
80.7
KB
-rw-rw-rw-
gitweb.html
63.57
KB
-rw-rw-rw-
gitworkflows.html
52.47
KB
-rw-rw-rw-
howto-index.html
35.7
KB
-rw-rw-rw-
index.html
106.92
KB
-rw-rw-rw-
user-manual.html
261.1
KB
-rw-rw-rw-
Delete
Unzip
Zip
${this.title}
Close
Code Editor : git-merge-base.html
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" lang="en"> <head> <meta charset="UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <meta name="generator" content="Asciidoctor 2.0.17"/> <title>git-merge-base(1)</title> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700"/> <style> /*! Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */ /* Uncomment the following line when using as a custom stylesheet */ /* @import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700"; */ html{font-family:sans-serif;-webkit-text-size-adjust:100%} a{background:none} a:focus{outline:thin dotted} a:active,a:hover{outline:0} h1{font-size:2em;margin:.67em 0} b,strong{font-weight:bold} abbr{font-size:.9em} abbr[title]{cursor:help;border-bottom:1px dotted #dddddf;text-decoration:none} dfn{font-style:italic} hr{height:0} mark{background:#ff0;color:#000} code,kbd,pre,samp{font-family:monospace;font-size:1em} pre{white-space:pre-wrap} q{quotes:"\201C" "\201D" "\2018" "\2019"} small{font-size:80%} sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline} sup{top:-.5em} sub{bottom:-.25em} img{border:0} svg:not(:root){overflow:hidden} figure{margin:0} audio,video{display:inline-block} audio:not([controls]){display:none;height:0} fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em} legend{border:0;padding:0} button,input,select,textarea{font-family:inherit;font-size:100%;margin:0} button,input{line-height:normal} button,select{text-transform:none} button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer} button[disabled],html input[disabled]{cursor:default} input[type=checkbox],input[type=radio]{padding:0} button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0} textarea{overflow:auto;vertical-align:top} table{border-collapse:collapse;border-spacing:0} *,::before,::after{box-sizing:border-box} html,body{font-size:100%} body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;line-height:1;position:relative;cursor:auto;-moz-tab-size:4;-o-tab-size:4;tab-size:4;word-wrap:anywhere;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased} a:hover{cursor:pointer} img,object,embed{max-width:100%;height:auto} object,embed{height:100%} img{-ms-interpolation-mode:bicubic} .left{float:left!important} .right{float:right!important} .text-left{text-align:left!important} .text-right{text-align:right!important} .text-center{text-align:center!important} .text-justify{text-align:justify!important} .hide{display:none} img,object,svg{display:inline-block;vertical-align:middle} textarea{height:auto;min-height:50px} select{width:100%} .subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em} div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0} a{color:#2156a5;text-decoration:underline;line-height:inherit} a:hover,a:focus{color:#1d4b8f} a img{border:0} p{line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility} p aside{font-size:.875em;line-height:1.35;font-style:italic} h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em} h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0} h1{font-size:2.125em} h2{font-size:1.6875em} h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em} h4,h5{font-size:1.125em} h6{font-size:1em} hr{border:solid #dddddf;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em} em,i{font-style:italic;line-height:inherit} strong,b{font-weight:bold;line-height:inherit} small{font-size:60%;line-height:inherit} code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)} ul,ol,dl{line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit} ul,ol{margin-left:1.5em} ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0} ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit} ul.square{list-style-type:square} ul.circle{list-style-type:circle} ul.disc{list-style-type:disc} ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0} dl dt{margin-bottom:.3125em;font-weight:bold} dl dd{margin-bottom:1.25em} blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd} blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)} @media screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2} h1{font-size:2.75em} h2{font-size:2.3125em} h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em} h4{font-size:1.4375em}} table{background:#fff;margin-bottom:1.25em;border:1px solid #dedede;word-wrap:normal} table thead,table tfoot{background:#f7f8f7} table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left} table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)} table tr.even,table tr.alt{background:#f8f8f7} table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{line-height:1.6} h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em} h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400} .center{margin-left:auto;margin-right:auto} .stretch{width:100%} .clearfix::before,.clearfix::after,.float-group::before,.float-group::after{content:" ";display:table} .clearfix::after,.float-group::after{clear:both} :not(pre).nobreak{word-wrap:normal} :not(pre).nowrap{white-space:nowrap} :not(pre).pre-wrap{white-space:pre-wrap} :not(pre):not([class^=L])>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background:#f7f7f8;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed} pre{color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;line-height:1.45;text-rendering:optimizeSpeed} pre code,pre pre{color:inherit;font-size:inherit;line-height:inherit} pre>code{display:block} pre.nowrap,pre.nowrap pre{white-space:pre;word-wrap:normal} em em{font-style:normal} strong strong{font-weight:400} .keyseq{color:rgba(51,51,51,.8)} kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background:#f7f7f7;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 0 rgba(0,0,0,.2),inset 0 0 0 .1em #fff;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap} .keyseq kbd:first-child{margin-left:0} .keyseq kbd:last-child{margin-right:0} .menuseq,.menuref{color:#000} .menuseq b:not(.caret),.menuref{font-weight:inherit} .menuseq{word-spacing:-.02em} .menuseq b.caret{font-size:1.25em;line-height:.8} .menuseq i.caret{font-weight:bold;text-align:center;width:.45em} b.button::before,b.button::after{position:relative;top:-1px;font-weight:400} b.button::before{content:"[";padding:0 3px 0 2px} b.button::after{content:"]";padding:0 2px 0 3px} p a>code:hover{color:rgba(0,0,0,.9)} #header,#content,#footnotes,#footer{width:100%;margin:0 auto;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em} #header::before,#header::after,#content::before,#content::after,#footnotes::before,#footnotes::after,#footer::before,#footer::after{content:" ";display:table} #header::after,#content::after,#footnotes::after,#footer::after{clear:both} #content{margin-top:1.25em} #content::before{content:none} #header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0} #header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #dddddf} #header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #dddddf;padding-bottom:8px} #header .details{border-bottom:1px solid #dddddf;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:flex;flex-flow:row wrap} #header .details span:first-child{margin-left:-.125em} #header .details span.email a{color:rgba(0,0,0,.85)} #header .details br{display:none} #header .details br+span::before{content:"\00a0\2013\00a0"} #header .details br+span.author::before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)} #header .details br+span#revremark::before{content:"\00a0|\00a0"} #header #revnumber{text-transform:capitalize} #header #revnumber::after{content:"\00a0"} #content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #dddddf;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem} #toc{border-bottom:1px solid #e7e7e9;padding-bottom:.5em} #toc>ul{margin-left:.125em} #toc ul.sectlevel0>li>a{font-style:italic} #toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0} #toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none} #toc li{line-height:1.3334;margin-top:.3334em} #toc a{text-decoration:none} #toc a:active{text-decoration:underline} #toctitle{color:#7a2518;font-size:1.2em} @media screen and (min-width:768px){#toctitle{font-size:1.375em} body.toc2{padding-left:15em;padding-right:0} #toc.toc2{margin-top:0!important;background:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #e7e7e9;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto} #toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em} #toc.toc2>ul{font-size:.9em;margin-bottom:0} #toc.toc2 ul ul{margin-left:0;padding-left:1em} #toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em} body.toc2.toc-right{padding-left:0;padding-right:15em} body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #e7e7e9;left:auto;right:0}} @media screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0} #toc.toc2{width:20em} #toc.toc2 #toctitle{font-size:1.375em} #toc.toc2>ul{font-size:.95em} #toc.toc2 ul ul{padding-left:1.25em} body.toc2.toc-right{padding-left:0;padding-right:20em}} #content #toc{border:1px solid #e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;border-radius:4px} #content #toc>:first-child{margin-top:0} #content #toc>:last-child{margin-bottom:0} #footer{max-width:none;background:rgba(0,0,0,.8);padding:1.25em} #footer-text{color:hsla(0,0%,100%,.8);line-height:1.44} #content{margin-bottom:.625em} .sect1{padding-bottom:.625em} @media screen and (min-width:768px){#content{margin-bottom:1.25em} .sect1{padding-bottom:1.25em}} .sect1:last-child{padding-bottom:0} .sect1+.sect1{border-top:1px solid #e7e7e9} #content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400} #content h1>a.anchor::before,h2>a.anchor::before,h3>a.anchor::before,#toctitle>a.anchor::before,.sidebarblock>.content>.title>a.anchor::before,h4>a.anchor::before,h5>a.anchor::before,h6>a.anchor::before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em} #content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible} #content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none} #content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221} details,.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em} details{margin-left:1.25rem} details>summary{cursor:pointer;display:block;position:relative;line-height:1.6;margin-bottom:.625rem;outline:none;-webkit-tap-highlight-color:transparent} details>summary::-webkit-details-marker{display:none} details>summary::before{content:"";border:solid transparent;border-left:solid;border-width:.3em 0 .3em .5em;position:absolute;top:.5em;left:-1.25rem;transform:translateX(15%)} details[open]>summary::before{border:solid transparent;border-top:solid;border-width:.5em .3em 0;transform:translateY(15%)} details>summary::after{content:"";width:1.25rem;height:1em;position:absolute;top:.3em;left:-1.25rem} .admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic} table.tableblock.fit-content>caption.title{white-space:nowrap;width:0} .paragraph.lead>p,#preamble>.sectionbody>[class=paragraph]:first-of-type p{font-size:1.21875em;line-height:1.6;color:rgba(0,0,0,.85)} .admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%} .admonitionblock>table td.icon{text-align:center;width:80px} .admonitionblock>table td.icon img{max-width:none} .admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase} .admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #dddddf;color:rgba(0,0,0,.6);word-wrap:anywhere} .admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0} .exampleblock>.content{border:1px solid #e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;border-radius:4px} .exampleblock>.content>:first-child{margin-top:0} .exampleblock>.content>:last-child{margin-bottom:0} .sidebarblock{border:1px solid #dbdbd6;margin-bottom:1.25em;padding:1.25em;background:#f3f3f2;border-radius:4px} .sidebarblock>:first-child{margin-top:0} .sidebarblock>:last-child{margin-bottom:0} .sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center} .exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0} .literalblock pre,.listingblock>.content>pre{border-radius:4px;overflow-x:auto;padding:1em;font-size:.8125em} @media screen and (min-width:768px){.literalblock pre,.listingblock>.content>pre{font-size:.90625em}} @media screen and (min-width:1280px){.literalblock pre,.listingblock>.content>pre{font-size:1em}} .literalblock pre,.listingblock>.content>pre:not(.highlight),.listingblock>.content>pre[class=highlight],.listingblock>.content>pre[class^="highlight "]{background:#f7f7f8} .literalblock.output pre{color:#f7f7f8;background:rgba(0,0,0,.9)} .listingblock>.content{position:relative} .listingblock code[data-lang]::before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:inherit;opacity:.5} .listingblock:hover code[data-lang]::before{display:block} .listingblock.terminal pre .command::before{content:attr(data-prompt);padding-right:.5em;color:inherit;opacity:.5} .listingblock.terminal pre .command:not([data-prompt])::before{content:"$"} .listingblock pre.highlightjs{padding:0} .listingblock pre.highlightjs>code{padding:1em;border-radius:4px} .listingblock pre.prettyprint{border-width:0} .prettyprint{background:#f7f7f8} pre.prettyprint .linenums{line-height:1.45;margin-left:2em} pre.prettyprint li{background:none;list-style-type:inherit;padding-left:0} pre.prettyprint li code[data-lang]::before{opacity:1} pre.prettyprint li:not(:first-child) code[data-lang]::before{display:none} table.linenotable{border-collapse:separate;border:0;margin-bottom:0;background:none} table.linenotable td[class]{color:inherit;vertical-align:top;padding:0;line-height:inherit;white-space:normal} table.linenotable td.code{padding-left:.75em} table.linenotable td.linenos,pre.pygments .linenos{border-right:1px solid;opacity:.35;padding-right:.5em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none} pre.pygments span.linenos{display:inline-block;margin-right:.75em} .quoteblock{margin:0 1em 1.25em 1.5em;display:table} .quoteblock:not(.excerpt)>.title{margin-left:-1.5em;margin-bottom:.75em} .quoteblock blockquote,.quoteblock p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify} .quoteblock blockquote{margin:0;padding:0;border:0} .quoteblock blockquote::before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)} .quoteblock blockquote>.paragraph:last-child p{margin-bottom:0} .quoteblock .attribution{margin-top:.75em;margin-right:.5ex;text-align:right} .verseblock{margin:0 1em 1.25em} .verseblock pre{font-family:"Open Sans","DejaVu Sans",sans-serif;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility} .verseblock pre strong{font-weight:400} .verseblock .attribution{margin-top:1.25rem;margin-left:.5ex} .quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic} .quoteblock .attribution br,.verseblock .attribution br{display:none} .quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:rgba(0,0,0,.6)} .quoteblock.abstract blockquote::before,.quoteblock.excerpt blockquote::before,.quoteblock .quoteblock blockquote::before{display:none} .quoteblock.abstract blockquote,.quoteblock.abstract p,.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{line-height:1.6;word-spacing:0} .quoteblock.abstract{margin:0 1em 1.25em;display:block} .quoteblock.abstract>.title{margin:0 0 .375em;font-size:1.15em;text-align:center} .quoteblock.excerpt>blockquote,.quoteblock .quoteblock{padding:0 0 .25em 1em;border-left:.25em solid #dddddf} .quoteblock.excerpt,.quoteblock .quoteblock{margin-left:0} .quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{color:inherit;font-size:1.0625rem} .quoteblock.excerpt .attribution,.quoteblock .quoteblock .attribution{color:inherit;font-size:.85rem;text-align:left;margin-right:0} p.tableblock:last-child{margin-bottom:0} td.tableblock>.content{margin-bottom:1.25em;word-wrap:anywhere} td.tableblock>.content>:last-child{margin-bottom:-1.25em} table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede} table.grid-all>*>tr>*{border-width:1px} table.grid-cols>*>tr>*{border-width:0 1px} table.grid-rows>*>tr>*{border-width:1px 0} table.frame-all{border-width:1px} table.frame-ends{border-width:1px 0} table.frame-sides{border-width:0 1px} table.frame-none>colgroup+*>:first-child>*,table.frame-sides>colgroup+*>:first-child>*{border-top-width:0} table.frame-none>:last-child>:last-child>*,table.frame-sides>:last-child>:last-child>*{border-bottom-width:0} table.frame-none>*>tr>:first-child,table.frame-ends>*>tr>:first-child{border-left-width:0} table.frame-none>*>tr>:last-child,table.frame-ends>*>tr>:last-child{border-right-width:0} table.stripes-all>*>tr,table.stripes-odd>*>tr:nth-of-type(odd),table.stripes-even>*>tr:nth-of-type(even),table.stripes-hover>*>tr:hover{background:#f8f8f7} th.halign-left,td.halign-left{text-align:left} th.halign-right,td.halign-right{text-align:right} th.halign-center,td.halign-center{text-align:center} th.valign-top,td.valign-top{vertical-align:top} th.valign-bottom,td.valign-bottom{vertical-align:bottom} th.valign-middle,td.valign-middle{vertical-align:middle} table thead th,table tfoot th{font-weight:bold} tbody tr th{background:#f7f8f7} tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold} p.tableblock>code:only-child{background:none;padding:0} p.tableblock{font-size:1em} ol{margin-left:1.75em} ul li ol{margin-left:1.5em} dl dd{margin-left:1.125em} dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0} li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em} ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none} ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:.625em} ul.unstyled,ol.unstyled{margin-left:0} li>p:empty:only-child::before{content:"";display:inline-block} ul.checklist>li>p:first-child{margin-left:-1em} ul.checklist>li>p:first-child>.fa-square-o:first-child,ul.checklist>li>p:first-child>.fa-check-square-o:first-child{width:1.25em;font-size:.8em;position:relative;bottom:.125em} ul.checklist>li>p:first-child>input[type=checkbox]:first-child{margin-right:.25em} ul.inline{display:flex;flex-flow:row wrap;list-style:none;margin:0 0 .625em -1.25em} ul.inline>li{margin-left:1.25em} .unstyled dl dt{font-weight:400;font-style:normal} ol.arabic{list-style-type:decimal} ol.decimal{list-style-type:decimal-leading-zero} ol.loweralpha{list-style-type:lower-alpha} ol.upperalpha{list-style-type:upper-alpha} ol.lowerroman{list-style-type:lower-roman} ol.upperroman{list-style-type:upper-roman} ol.lowergreek{list-style-type:lower-greek} .hdlist>table,.colist>table{border:0;background:none} .hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none} td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em} td.hdlist1{font-weight:bold;padding-bottom:1.25em} td.hdlist2{word-wrap:anywhere} .literalblock+.colist,.listingblock+.colist{margin-top:-.5em} .colist td:not([class]):first-child{padding:.4em .75em 0;line-height:1;vertical-align:top} .colist td:not([class]):first-child img{max-width:none} .colist td:not([class]):last-child{padding:.25em 0} .thumb,.th{line-height:0;display:inline-block;border:4px solid #fff;box-shadow:0 0 0 1px #ddd} .imageblock.left{margin:.25em .625em 1.25em 0} .imageblock.right{margin:.25em 0 1.25em .625em} .imageblock>.title{margin-bottom:0} .imageblock.thumb,.imageblock.th{border-width:6px} .imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em} .image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0} .image.left{margin-right:.625em} .image.right{margin-left:.625em} a.image{text-decoration:none;display:inline-block} a.image object{pointer-events:none} sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super} sup.footnote a,sup.footnoteref a{text-decoration:none} sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline} #footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em} #footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em;border-width:1px 0 0} #footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;margin-bottom:.2em} #footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none;margin-left:-1.05em} #footnotes .footnote:last-of-type{margin-bottom:0} #content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0} div.unbreakable{page-break-inside:avoid} .big{font-size:larger} .small{font-size:smaller} .underline{text-decoration:underline} .overline{text-decoration:overline} .line-through{text-decoration:line-through} .aqua{color:#00bfbf} .aqua-background{background:#00fafa} .black{color:#000} .black-background{background:#000} .blue{color:#0000bf} .blue-background{background:#0000fa} .fuchsia{color:#bf00bf} .fuchsia-background{background:#fa00fa} .gray{color:#606060} .gray-background{background:#7d7d7d} .green{color:#006000} .green-background{background:#007d00} .lime{color:#00bf00} .lime-background{background:#00fa00} .maroon{color:#600000} .maroon-background{background:#7d0000} .navy{color:#000060} .navy-background{background:#00007d} .olive{color:#606000} .olive-background{background:#7d7d00} .purple{color:#600060} .purple-background{background:#7d007d} .red{color:#bf0000} .red-background{background:#fa0000} .silver{color:#909090} .silver-background{background:#bcbcbc} .teal{color:#006060} .teal-background{background:#007d7d} .white{color:#bfbfbf} .white-background{background:#fafafa} .yellow{color:#bfbf00} .yellow-background{background:#fafa00} span.icon>.fa{cursor:default} a span.icon>.fa{cursor:inherit} .admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default} .admonitionblock td.icon .icon-note::before{content:"\f05a";color:#19407c} .admonitionblock td.icon .icon-tip::before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111} .admonitionblock td.icon .icon-warning::before{content:"\f071";color:#bf6900} .admonitionblock td.icon .icon-caution::before{content:"\f06d";color:#bf3400} .admonitionblock td.icon .icon-important::before{content:"\f06a";color:#bf0000} .conum[data-value]{display:inline-block;color:#fff!important;background:rgba(0,0,0,.8);border-radius:50%;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold} .conum[data-value] *{color:#fff!important} .conum[data-value]+b{display:none} .conum[data-value]::after{content:attr(data-value)} pre .conum[data-value]{position:relative;top:-.125em} b.conum *{color:inherit!important} .conum:not([data-value]):empty{display:none} dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility} h1,h2,p,td.content,span.alt,summary{letter-spacing:-.01em} p strong,td.content strong,div.footnote strong{letter-spacing:-.005em} p,blockquote,dt,td.content,span.alt,summary{font-size:1.0625rem} p{margin-bottom:1.25rem} .sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em} .exampleblock>.content{background:#fffef7;border-color:#e0e0dc;box-shadow:0 1px 4px #e0e0dc} .print-only{display:none!important} @page{margin:1.25cm .75cm} @media print{*{box-shadow:none!important;text-shadow:none!important} html{font-size:80%} a{color:inherit!important;text-decoration:underline!important} a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important} a[href^="http:"]:not(.bare)::after,a[href^="https:"]:not(.bare)::after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em} abbr[title]{border-bottom:1px dotted} abbr[title]::after{content:" (" attr(title) ")"} pre,blockquote,tr,img,object,svg{page-break-inside:avoid} thead{display:table-header-group} svg{max-width:100%} p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3} h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid} #header,#content,#footnotes,#footer{max-width:none} #toc,.sidebarblock,.exampleblock>.content{background:none!important} #toc{border-bottom:1px solid #dddddf!important;padding-bottom:0!important} body.book #header{text-align:center} body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em} body.book #header .details{border:0!important;display:block;padding:0!important} body.book #header .details span:first-child{margin-left:0!important} body.book #header .details br{display:block} body.book #header .details br+span::before{content:none!important} body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important} body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always} .listingblock code[data-lang]::before{display:block} #footer{padding:0 .9375em} .hide-on-print{display:none!important} .print-only{display:block!important} .hide-for-print{display:none!important} .show-for-print{display:inherit!important}} @media amzn-kf8,print{#header>h1:first-child{margin-top:1.25rem} .sect1{padding:0!important} .sect1+.sect1{border:0} #footer{background:none} #footer-text{color:rgba(0,0,0,.6);font-size:.9em}} @media amzn-kf8{#header,#content,#footnotes,#footer{padding:0}} </style> </head> <body class="manpage"> <div id="header"> <h1>git-merge-base(1) Manual Page</h1> <h2 id="_name">NAME</h2> <div class="sectionbody"> <p>git-merge-base - Find as good common ancestors as possible for a merge</p> </div> </div> <div id="content"> <div class="sect1"> <h2 id="_synopsis">SYNOPSIS</h2> <div class="sectionbody"> <div class="verseblock"> <pre class="content"><em>git merge-base</em> [-a|--all] <commit> <commit>…​ <em>git merge-base</em> [-a|--all] --octopus <commit>…​ <em>git merge-base</em> --is-ancestor <commit> <commit> <em>git merge-base</em> --independent <commit>…​ <em>git merge-base</em> --fork-point <ref> [<commit>]</pre> </div> </div> </div> <div class="sect1"> <h2 id="_description">DESCRIPTION</h2> <div class="sectionbody"> <div class="paragraph"> <p><em>git merge-base</em> finds best common ancestor(s) between two commits to use in a three-way merge. One common ancestor is <em>better</em> than another common ancestor if the latter is an ancestor of the former. A common ancestor that does not have any better common ancestor is a <em>best common ancestor</em>, i.e. a <em>merge base</em>. Note that there can be more than one merge base for a pair of commits.</p> </div> </div> </div> <div class="sect1"> <h2 id="_operation_modes">OPERATION MODES</h2> <div class="sectionbody"> <div class="paragraph"> <p>As the most common special case, specifying only two commits on the command line means computing the merge base between the given two commits.</p> </div> <div class="paragraph"> <p>More generally, among the two commits to compute the merge base from, one is specified by the first commit argument on the command line; the other commit is a (possibly hypothetical) commit that is a merge across all the remaining commits on the command line.</p> </div> <div class="paragraph"> <p>As a consequence, the <em>merge base</em> is not necessarily contained in each of the commit arguments if more than two commits are specified. This is different from <a href="git-show-branch.html">git-show-branch(1)</a> when used with the <code>--merge-base</code> option.</p> </div> <div class="dlist"> <dl> <dt class="hdlist1">--octopus</dt> <dd> <p>Compute the best common ancestors of all supplied commits, in preparation for an n-way merge. This mimics the behavior of <em>git show-branch --merge-base</em>.</p> </dd> <dt class="hdlist1">--independent</dt> <dd> <p>Instead of printing merge bases, print a minimal subset of the supplied commits with the same ancestors. In other words, among the commits given, list those which cannot be reached from any other. This mimics the behavior of <em>git show-branch --independent</em>.</p> </dd> <dt class="hdlist1">--is-ancestor</dt> <dd> <p>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.</p> </dd> <dt class="hdlist1">--fork-point</dt> <dd> <p>Find the point at which a branch (or any history that leads to <commit>) forked from another branch (or any reference) <ref>. This does not just look for the common ancestor of the two commits, but also takes into account the reflog of <ref> to see if the history leading to <commit> forked from an earlier incarnation of the branch <ref> (see discussion on this mode below).</p> </dd> </dl> </div> </div> </div> <div class="sect1"> <h2 id="_options">OPTIONS</h2> <div class="sectionbody"> <div class="dlist"> <dl> <dt class="hdlist1">-a</dt> <dt class="hdlist1">--all</dt> <dd> <p>Output all merge bases for the commits, instead of just one.</p> </dd> </dl> </div> </div> </div> <div class="sect1"> <h2 id="_discussion">DISCUSSION</h2> <div class="sectionbody"> <div class="paragraph"> <p>Given two commits <em>A</em> and <em>B</em>, <code>git merge-base A B</code> will output a commit which is reachable from both <em>A</em> and <em>B</em> through the parent relationship.</p> </div> <div class="paragraph"> <p>For example, with this topology:</p> </div> <div class="literalblock"> <div class="content"> <pre> o---o---o---B / ---o---1---o---o---o---A</pre> </div> </div> <div class="paragraph"> <p>the merge base between <em>A</em> and <em>B</em> is <em>1</em>.</p> </div> <div class="paragraph"> <p>Given three commits <em>A</em>, <em>B</em> and <em>C</em>, <code>git merge-base A B C</code> will compute the merge base between <em>A</em> and a hypothetical commit <em>M</em>, which is a merge between <em>B</em> and <em>C</em>. For example, with this topology:</p> </div> <div class="literalblock"> <div class="content"> <pre> o---o---o---o---C / / o---o---o---B / / ---2---1---o---o---o---A</pre> </div> </div> <div class="paragraph"> <p>the result of <code>git merge-base A B C</code> is <em>1</em>. This is because the equivalent topology with a merge commit <em>M</em> between <em>B</em> and <em>C</em> is:</p> </div> <div class="literalblock"> <div class="content"> <pre> o---o---o---o---o / \ / o---o---o---o---M / / ---2---1---o---o---o---A</pre> </div> </div> <div class="paragraph"> <p>and the result of <code>git merge-base A M</code> is <em>1</em>. Commit <em>2</em> is also a common ancestor between <em>A</em> and <em>M</em>, but <em>1</em> is a better common ancestor, because <em>2</em> is an ancestor of <em>1</em>. Hence, <em>2</em> is not a merge base.</p> </div> <div class="paragraph"> <p>The result of <code>git merge-base --octopus A B C</code> is <em>2</em>, because <em>2</em> is the best common ancestor of all commits.</p> </div> <div class="paragraph"> <p>When the history involves criss-cross merges, there can be more than one <em>best</em> common ancestor for two commits. For example, with this topology:</p> </div> <div class="literalblock"> <div class="content"> <pre>---1---o---A \ / X / \ ---2---o---o---B</pre> </div> </div> <div class="paragraph"> <p>both <em>1</em> and <em>2</em> are merge-bases of A and B. Neither one is better than the other (both are <em>best</em> merge bases). When the <code>--all</code> option is not given, it is unspecified which best one is output.</p> </div> <div class="paragraph"> <p>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.</p> </div> <div class="literalblock"> <div class="content"> <pre>A=$(git rev-parse --verify A) if test "$A" = "$(git merge-base A B)" then ... A is an ancestor of B ... fi</pre> </div> </div> <div class="paragraph"> <p>In modern git, you can say this in a more direct way:</p> </div> <div class="literalblock"> <div class="content"> <pre>if git merge-base --is-ancestor A B then ... A is an ancestor of B ... fi</pre> </div> </div> <div class="paragraph"> <p>instead.</p> </div> </div> </div> <div class="sect1"> <h2 id="_discussion_on_fork_point_mode">Discussion on fork-point mode</h2> <div class="sectionbody"> <div class="paragraph"> <p>After working on the <code>topic</code> branch created with <code>git switch -c topic origin/master</code>, the history of remote-tracking branch <code>origin/master</code> may have been rewound and rebuilt, leading to a history of this shape:</p> </div> <div class="literalblock"> <div class="content"> <pre> o---B2 / ---o---o---B1--o---o---o---B (origin/master) \ B0 \ D0---D1---D (topic)</pre> </div> </div> <div class="paragraph"> <p>where <code>origin/master</code> used to point at commits B0, B1, B2 and now it points at B, and your <code>topic</code> branch was started on top of it back when <code>origin/master</code> was at B0, and you built three commits, D0, D1, and D, on top of it. Imagine that you now want to rebase the work you did on the topic on top of the updated origin/master.</p> </div> <div class="paragraph"> <p>In such a case, <code>git merge-base origin/master topic</code> would return the parent of B0 in the above picture, but B0^..D is <strong>not</strong> the range of commits you would want to replay on top of B (it includes B0, which is not what you wrote; it is a commit the other side discarded when it moved its tip from B0 to B1).</p> </div> <div class="paragraph"> <p><code>git merge-base --fork-point origin/master topic</code> is designed to help in such a case. It takes not only B but also B0, B1, and B2 (i.e. old tips of the remote-tracking branches your repository’s reflog knows about) into account to see on which commit your topic branch was built and finds B0, allowing you to replay only the commits on your topic, excluding the commits the other side later discarded.</p> </div> <div class="paragraph"> <p>Hence</p> </div> <div class="literalblock"> <div class="content"> <pre>$ fork_point=$(git merge-base --fork-point origin/master topic)</pre> </div> </div> <div class="paragraph"> <p>will find B0, and</p> </div> <div class="literalblock"> <div class="content"> <pre>$ git rebase --onto origin/master $fork_point topic</pre> </div> </div> <div class="paragraph"> <p>will replay D0, D1 and D on top of B to create a new history of this shape:</p> </div> <div class="literalblock"> <div class="content"> <pre> o---B2 / ---o---o---B1--o---o---o---B (origin/master) \ \ B0 D0'--D1'--D' (topic - updated) \ D0---D1---D (topic - old)</pre> </div> </div> <div class="paragraph"> <p>A caveat is that older reflog entries in your repository may be expired by <code>git gc</code>. If B0 no longer appears in the reflog of the remote-tracking branch <code>origin/master</code>, the <code>--fork-point</code> mode obviously cannot find it and fails, avoiding to give a random and useless result (such as the parent of B0, like the same command without the <code>--fork-point</code> option gives).</p> </div> <div class="paragraph"> <p>Also, the remote-tracking branch you use the <code>--fork-point</code> mode with must be the one your topic forked from its tip. If you forked from an older commit than the tip, this mode would not find the fork point (imagine in the above sample history B0 did not exist, origin/master started at B1, moved to B2 and then B, and you forked your topic at origin/master^ when origin/master was B1; the shape of the history would be the same as above, without B0, and the parent of B1 is what <code>git merge-base origin/master topic</code> correctly finds, but the <code>--fork-point</code> mode will not, because it is not one of the commits that used to be at the tip of origin/master).</p> </div> </div> </div> <div class="sect1"> <h2 id="_see_also">See also</h2> <div class="sectionbody"> <div class="paragraph"> <p><a href="git-rev-list.html">git-rev-list(1)</a>, <a href="git-show-branch.html">git-show-branch(1)</a>, <a href="git-merge.html">git-merge(1)</a></p> </div> </div> </div> <div class="sect1"> <h2 id="_git">GIT</h2> <div class="sectionbody"> <div class="paragraph"> <p>Part of the <a href="git.html">git(1)</a> suite</p> </div> </div> </div> </div> <div id="footer"> <div id="footer-text"> Last updated 2022-08-30 21:40:02 UTC </div> </div> </body> </html>
Close