2 <html xmlns=
"http://www.w3.org/1999/xhtml" lang=
"en">
4 <meta charset=
"UTF-8"/>
5 <meta http-equiv=
"X-UA-Compatible" content=
"IE=edge"/>
6 <meta name=
"viewport" content=
"width=device-width, initial-scale=1.0"/>
7 <meta name=
"generator" content=
"Asciidoctor 2.0.20"/>
8 <title>git-mergetool(
1)
</title>
9 <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"/>
11 /*! Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */
12 /* Uncomment the following line when using as a custom stylesheet */
13 /* @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"; */
14 html{font-family:sans-serif;-webkit-text-size-adjust:
100%}
16 a:focus{outline:thin dotted}
17 a:active,a:hover{outline:
0}
18 h1{font-size:
2em;margin:
.67em
0}
19 b,strong{font-weight:bold}
21 abbr[title]{cursor:help;border-bottom:
1px dotted #dddddf;text-decoration:none}
22 dfn{font-style:italic}
24 mark{background:#ff0;color:#
000}
25 code,kbd,pre,samp{font-family:monospace;font-size:
1em}
26 pre{white-space:pre-wrap}
27 q{quotes:
"\201C" "\201D" "\2018" "\2019"}
29 sub,sup{font-size:
75%;line-height:
0;position:relative;vertical-align:baseline}
33 svg:not(:root){overflow:hidden}
35 audio,video{display:inline-block}
36 audio:not([controls]){display:none;height:
0}
37 fieldset{border:
1px solid silver;margin:
0 2px;padding:
.35em
.625em
.75em}
38 legend{border:
0;padding:
0}
39 button,input,select,textarea{font-family:inherit;font-size:
100%;margin:
0}
40 button,input{line-height:normal}
41 button,select{text-transform:none}
42 button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}
43 button[disabled],html input[disabled]{cursor:default}
44 input[type=checkbox],input[type=radio]{padding:
0}
45 button::-moz-focus-inner,input::-moz-focus-inner{border:
0;padding:
0}
46 textarea{overflow:auto;vertical-align:top}
47 table{border-collapse:collapse;border-spacing:
0}
48 *,::before,::after{box-sizing:border-box}
49 html,body{font-size:
100%}
50 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}
51 a:hover{cursor:pointer}
52 img,object,embed{max-width:
100%;height:auto}
53 object,embed{height:
100%}
54 img{-ms-interpolation-mode:bicubic}
55 .left{float:left!important}
56 .right{float:right!important}
57 .text-left{text-align:left!important}
58 .text-right{text-align:right!important}
59 .text-center{text-align:center!important}
60 .text-justify{text-align:justify!important}
62 img,object,svg{display:inline-block;vertical-align:middle}
63 textarea{height:auto;min-height:
50px}
65 .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}
66 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}
67 a{color:#
2156a5;text-decoration:underline;line-height:inherit}
68 a:hover,a:focus{color:#
1d4b8f}
70 p{line-height:
1.6;margin-bottom:
1.25em;text-rendering:optimizeLegibility}
71 p aside{font-size:
.875em;line-height:
1.35;font-style:italic}
72 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}
73 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}
75 h2{font-size:
1.6875em}
76 h3,#toctitle,.sidebarblock
>.content
>.title{font-size:
1.375em}
77 h4,h5{font-size:
1.125em}
79 hr{border:solid #dddddf;border-width:
1px
0 0;clear:both;margin:
1.25em
0 1.1875em}
80 em,i{font-style:italic;line-height:inherit}
81 strong,b{font-weight:bold;line-height:inherit}
82 small{font-size:
60%;line-height:inherit}
83 code{font-family:
"Droid Sans Mono",
"DejaVu Sans Mono",monospace;font-weight:
400;color:rgba(
0,
0,
0,
.9)}
84 ul,ol,dl{line-height:
1.6;margin-bottom:
1.25em;list-style-position:outside;font-family:inherit}
85 ul,ol{margin-left:
1.5em}
86 ul li ul,ul li ol{margin-left:
1.25em;margin-bottom:
0}
87 ul.circle{list-style-type:circle}
88 ul.disc{list-style-type:disc}
89 ul.square{list-style-type:square}
90 ul.circle ul:not([class]),ul.disc ul:not([class]),ul.square ul:not([class]){list-style:inherit}
91 ol li ul,ol li ol{margin-left:
1.25em;margin-bottom:
0}
92 dl dt{margin-bottom:
.3125em;font-weight:bold}
93 dl dd{margin-bottom:
1.25em}
94 blockquote{margin:
0 0 1.25em;padding:
.5625em
1.25em
0 1.1875em;border-left:
1px solid #ddd}
95 blockquote,blockquote p{line-height:
1.6;color:rgba(
0,
0,
0,
.85)}
96 @media screen and (min-width:
768px){h1,h2,h3,#toctitle,.sidebarblock
>.content
>.title,h4,h5,h6{line-height:
1.2}
98 h2{font-size:
2.3125em}
99 h3,#toctitle,.sidebarblock
>.content
>.title{font-size:
1.6875em}
100 h4{font-size:
1.4375em}}
101 table{background:#fff;margin-bottom:
1.25em;border:
1px solid #dedede;word-wrap:normal}
102 table thead,table tfoot{background:#f7f8f7}
103 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}
104 table tr th,table tr td{padding:
.5625em
.625em;font-size:inherit;color:rgba(
0,
0,
0,
.8)}
105 table tr.even,table tr.alt{background:#f8f8f7}
106 table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{line-height:
1.6}
107 h1,h2,h3,#toctitle,.sidebarblock
>.content
>.title,h4,h5,h6{line-height:
1.2;word-spacing:-
.05em}
108 h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock
>.content
>.title strong,h4 strong,h5 strong,h6 strong{font-weight:
400}
109 .center{margin-left:auto;margin-right:auto}
111 .clearfix::before,.clearfix::after,.float-group::before,.float-group::after{content:
" ";display:table}
112 .clearfix::after,.float-group::after{clear:both}
113 :not(pre).nobreak{word-wrap:normal}
114 :not(pre).nowrap{white-space:nowrap}
115 :not(pre).pre-wrap{white-space:pre-wrap}
116 :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}
117 pre{color:rgba(
0,
0,
0,
.9);font-family:
"Droid Sans Mono",
"DejaVu Sans Mono",monospace;line-height:
1.45;text-rendering:optimizeSpeed}
118 pre code,pre pre{color:inherit;font-size:inherit;line-height:inherit}
119 pre
>code{display:block}
120 pre.nowrap,pre.nowrap pre{white-space:pre;word-wrap:normal}
121 em em{font-style:normal}
122 strong strong{font-weight:
400}
123 .keyseq{color:rgba(
51,
51,
51,
.8)}
124 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}
125 .keyseq kbd:first-child{margin-left:
0}
126 .keyseq kbd:last-child{margin-right:
0}
127 .menuseq,.menuref{color:#
000}
128 .menuseq b:not(.caret),.menuref{font-weight:inherit}
129 .menuseq{word-spacing:-
.02em}
130 .menuseq b.caret{font-size:
1.25em;line-height:
.8}
131 .menuseq i.caret{font-weight:bold;text-align:center;width:
.45em}
132 b.button::before,b.button::after{position:relative;top:-
1px;font-weight:
400}
133 b.button::before{content:
"[";padding:
0 3px
0 2px}
134 b.button::after{content:
"]";padding:
0 2px
0 3px}
135 p a
>code:hover{color:rgba(
0,
0,
0,
.9)}
136 #header,#content,#footnotes,#footer{width:
100%;margin:
0 auto;max-width:
62.5em;*zoom:
1;position:relative;padding-left:
.9375em;padding-right:
.9375em}
137 #header::before,#header::after,#content::before,#content::after,#footnotes::before,#footnotes::after,#footer::before,#footer::after{content:
" ";display:table}
138 #header::after,#content::after,#footnotes::after,#footer::after{clear:both}
139 #content{margin-top:
1.25em}
140 #content::before{content:none}
141 #header
>h1:first-child{color:rgba(
0,
0,
0,
.85);margin-top:
2.25rem;margin-bottom:
0}
142 #header
>h1:first-child+#toc{margin-top:
8px;border-top:
1px solid #dddddf}
143 #header
>h1:only-child,body.toc2 #header
>h1:nth-last-child(
2){border-bottom:
1px solid #dddddf;padding-bottom:
8px}
144 #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}
145 #header .details span:first-child{margin-left:-
.125em}
146 #header .details span.email a{color:rgba(
0,
0,
0,
.85)}
147 #header .details br{display:none}
148 #header .details br+span::before{content:
"\00a0\2013\00a0"}
149 #header .details br+span.author::before{content:
"\00a0\22c5\00a0";color:rgba(
0,
0,
0,
.85)}
150 #header .details br+span#revremark::before{content:
"\00a0|\00a0"}
151 #header #revnumber{text-transform:capitalize}
152 #header #revnumber::after{content:
"\00a0"}
153 #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}
154 #toc{border-bottom:
1px solid #e7e7e9;padding-bottom:
.5em}
155 #toc
>ul{margin-left:
.125em}
156 #toc ul.sectlevel0
>li
>a{font-style:italic}
157 #toc ul.sectlevel0 ul.sectlevel1{margin:
.5em
0}
158 #toc ul{font-family:
"Open Sans",
"DejaVu Sans",sans-serif;list-style-type:none}
159 #toc li{line-height:
1.3334;margin-top:
.3334em}
160 #toc a{text-decoration:none}
161 #toc a:active{text-decoration:underline}
162 #toctitle{color:#
7a2518;font-size:
1.2em}
163 @media screen and (min-width:
768px){#toctitle{font-size:
1.375em}
164 body.toc2{padding-left:
15em;padding-right:
0}
165 #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}
166 #toc.toc2 #toctitle{margin-top:
0;margin-bottom:
.8rem;font-size:
1.2em}
167 #toc.toc2
>ul{font-size:
.9em;margin-bottom:
0}
168 #toc.toc2 ul ul{margin-left:
0;padding-left:
1em}
169 #toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:
0;margin-top:
.5em;margin-bottom:
.5em}
170 body.toc2.toc-right{padding-left:
0;padding-right:
15em}
171 body.toc2.toc-right #toc.toc2{border-right-width:
0;border-left:
1px solid #e7e7e9;left:auto;right:
0}}
172 @media screen and (min-width:
1280px){body.toc2{padding-left:
20em;padding-right:
0}
173 #toc.toc2{width:
20em}
174 #toc.toc2 #toctitle{font-size:
1.375em}
175 #toc.toc2
>ul{font-size:
.95em}
176 #toc.toc2 ul ul{padding-left:
1.25em}
177 body.toc2.toc-right{padding-left:
0;padding-right:
20em}}
178 #content #toc{border:
1px solid #e0e0dc;margin-bottom:
1.25em;padding:
1.25em;background:#f8f8f7;border-radius:
4px}
179 #content #toc
>:first-child{margin-top:
0}
180 #content #toc
>:last-child{margin-bottom:
0}
181 #footer{max-width:none;background:rgba(
0,
0,
0,
.8);padding:
1.25em}
182 #footer-text{color:hsla(
0,
0%,
100%,
.8);line-height:
1.44}
183 #content{margin-bottom:
.625em}
184 .sect1{padding-bottom:
.625em}
185 @media screen and (min-width:
768px){#content{margin-bottom:
1.25em}
186 .sect1{padding-bottom:
1.25em}}
187 .sect1:last-child{padding-bottom:
0}
188 .sect1+.sect1{border-top:
1px solid #e7e7e9}
189 #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}
190 #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}
191 #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}
192 #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}
193 #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}
194 details,.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:
1.25em}
195 details{margin-left:
1.25rem}
196 details
>summary{cursor:pointer;display:block;position:relative;line-height:
1.6;margin-bottom:
.625rem;outline:none;-webkit-tap-highlight-color:transparent}
197 details
>summary::-webkit-details-marker{display:none}
198 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%)}
199 details[open]
>summary::before{border:solid transparent;border-top:solid;border-width:
.5em
.3em
0;transform:translateY(
15%)}
200 details
>summary::after{content:
"";width:
1.25rem;height:
1em;position:absolute;top:
.3em;left:-
1.25rem}
201 .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}
202 table.tableblock.fit-content
>caption.title{white-space:nowrap;width:
0}
203 .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)}
204 .admonitionblock
>table{border-collapse:separate;border:
0;background:none;width:
100%}
205 .admonitionblock
>table td.icon{text-align:center;width:
80px}
206 .admonitionblock
>table td.icon img{max-width:none}
207 .admonitionblock
>table td.icon .title{font-weight:bold;font-family:
"Open Sans",
"DejaVu Sans",sans-serif;text-transform:uppercase}
208 .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}
209 .admonitionblock
>table td.content
>:last-child
>:last-child{margin-bottom:
0}
210 .exampleblock
>.content{border:
1px solid #e6e6e6;margin-bottom:
1.25em;padding:
1.25em;background:#fff;border-radius:
4px}
211 .sidebarblock{border:
1px solid #dbdbd6;margin-bottom:
1.25em;padding:
1.25em;background:#f3f3f2;border-radius:
4px}
212 .sidebarblock
>.content
>.title{color:#
7a2518;margin-top:
0;text-align:center}
213 .exampleblock
>.content
>:first-child,.sidebarblock
>.content
>:first-child{margin-top:
0}
214 .exampleblock
>.content
>:last-child,.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,.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}
215 .literalblock pre,.listingblock
>.content
>pre{border-radius:
4px;overflow-x:auto;padding:
1em;font-size:
.8125em}
216 @media screen and (min-width:
768px){.literalblock pre,.listingblock
>.content
>pre{font-size:
.90625em}}
217 @media screen and (min-width:
1280px){.literalblock pre,.listingblock
>.content
>pre{font-size:
1em}}
218 .literalblock pre,.listingblock
>.content
>pre:not(.highlight),.listingblock
>.content
>pre[class=highlight],.listingblock
>.content
>pre[class^=
"highlight "]{background:#f7f7f8}
219 .literalblock.output pre{color:#f7f7f8;background:rgba(
0,
0,
0,
.9)}
220 .listingblock
>.content{position:relative}
221 .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}
222 .listingblock:hover code[data-lang]::before{display:block}
223 .listingblock.terminal pre .command::before{content:attr(data-prompt);padding-right:
.5em;color:inherit;opacity:
.5}
224 .listingblock.terminal pre .command:not([data-prompt])::before{content:
"$"}
225 .listingblock pre.highlightjs{padding:
0}
226 .listingblock pre.highlightjs
>code{padding:
1em;border-radius:
4px}
227 .listingblock pre.prettyprint{border-width:
0}
228 .prettyprint{background:#f7f7f8}
229 pre.prettyprint .linenums{line-height:
1.45;margin-left:
2em}
230 pre.prettyprint li{background:none;list-style-type:inherit;padding-left:
0}
231 pre.prettyprint li code[data-lang]::before{opacity:
1}
232 pre.prettyprint li:not(:first-child) code[data-lang]::before{display:none}
233 table.linenotable{border-collapse:separate;border:
0;margin-bottom:
0;background:none}
234 table.linenotable td[class]{color:inherit;vertical-align:top;padding:
0;line-height:inherit;white-space:normal}
235 table.linenotable td.code{padding-left:
.75em}
236 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}
237 pre.pygments span.linenos{display:inline-block;margin-right:
.75em}
238 .quoteblock{margin:
0 1em
1.25em
1.5em;display:table}
239 .quoteblock:not(.excerpt)
>.title{margin-left:-
1.5em;margin-bottom:
.75em}
240 .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}
241 .quoteblock blockquote{margin:
0;padding:
0;border:
0}
242 .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)}
243 .quoteblock blockquote
>.paragraph:last-child p{margin-bottom:
0}
244 .quoteblock .attribution{margin-top:
.75em;margin-right:
.5ex;text-align:right}
245 .verseblock{margin:
0 1em
1.25em}
246 .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}
247 .verseblock pre strong{font-weight:
400}
248 .verseblock .attribution{margin-top:
1.25rem;margin-left:
.5ex}
249 .quoteblock .attribution,.verseblock .attribution{font-size:
.9375em;line-height:
1.45;font-style:italic}
250 .quoteblock .attribution br,.verseblock .attribution br{display:none}
251 .quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-
.025em;color:rgba(
0,
0,
0,
.6)}
252 .quoteblock.abstract blockquote::before,.quoteblock.excerpt blockquote::before,.quoteblock .quoteblock blockquote::before{display:none}
253 .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}
254 .quoteblock.abstract{margin:
0 1em
1.25em;display:block}
255 .quoteblock.abstract
>.title{margin:
0 0 .375em;font-size:
1.15em;text-align:center}
256 .quoteblock.excerpt
>blockquote,.quoteblock .quoteblock{padding:
0 0 .25em
1em;border-left:
.25em solid #dddddf}
257 .quoteblock.excerpt,.quoteblock .quoteblock{margin-left:
0}
258 .quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{color:inherit;font-size:
1.0625rem}
259 .quoteblock.excerpt .attribution,.quoteblock .quoteblock .attribution{color:inherit;font-size:
.85rem;text-align:left;margin-right:
0}
260 p.tableblock:last-child{margin-bottom:
0}
261 td.tableblock
>.content{margin-bottom:
1.25em;word-wrap:anywhere}
262 td.tableblock
>.content
>:last-child{margin-bottom:-
1.25em}
263 table.tableblock,th.tableblock,td.tableblock{border:
0 solid #dedede}
264 table.grid-all
>*
>tr
>*{border-width:
1px}
265 table.grid-cols
>*
>tr
>*{border-width:
0 1px}
266 table.grid-rows
>*
>tr
>*{border-width:
1px
0}
267 table.frame-all{border-width:
1px}
268 table.frame-ends{border-width:
1px
0}
269 table.frame-sides{border-width:
0 1px}
270 table.frame-none
>colgroup+*
>:first-child
>*,table.frame-sides
>colgroup+*
>:first-child
>*{border-top-width:
0}
271 table.frame-none
>:last-child
>:last-child
>*,table.frame-sides
>:last-child
>:last-child
>*{border-bottom-width:
0}
272 table.frame-none
>*
>tr
>:first-child,table.frame-ends
>*
>tr
>:first-child{border-left-width:
0}
273 table.frame-none
>*
>tr
>:last-child,table.frame-ends
>*
>tr
>:last-child{border-right-width:
0}
274 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}
275 th.halign-left,td.halign-left{text-align:left}
276 th.halign-right,td.halign-right{text-align:right}
277 th.halign-center,td.halign-center{text-align:center}
278 th.valign-top,td.valign-top{vertical-align:top}
279 th.valign-bottom,td.valign-bottom{vertical-align:bottom}
280 th.valign-middle,td.valign-middle{vertical-align:middle}
281 table thead th,table tfoot th{font-weight:bold}
282 tbody tr th{background:#f7f8f7}
283 tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(
0,
0,
0,
.8);font-weight:bold}
284 p.tableblock
>code:only-child{background:none;padding:
0}
285 p.tableblock{font-size:
1em}
286 ol{margin-left:
1.75em}
287 ul li ol{margin-left:
1.5em}
288 dl dd{margin-left:
1.125em}
289 dl dd:last-child,dl dd:last-child
>:last-child{margin-bottom:
0}
290 li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:
.625em}
291 ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none}
292 ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:
.625em}
293 ul.unstyled,ol.unstyled{margin-left:
0}
294 li
>p:empty:only-child::before{content:
"";display:inline-block}
295 ul.checklist
>li
>p:first-child{margin-left:-
1em}
296 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}
297 ul.checklist
>li
>p:first-child
>input[type=checkbox]:first-child{margin-right:
.25em}
298 ul.inline{display:flex;flex-flow:row wrap;list-style:none;margin:
0 0 .625em -
1.25em}
299 ul.inline
>li{margin-left:
1.25em}
300 .unstyled dl dt{font-weight:
400;font-style:normal}
301 ol.arabic{list-style-type:decimal}
302 ol.decimal{list-style-type:decimal-leading-zero}
303 ol.loweralpha{list-style-type:lower-alpha}
304 ol.upperalpha{list-style-type:upper-alpha}
305 ol.lowerroman{list-style-type:lower-roman}
306 ol.upperroman{list-style-type:upper-roman}
307 ol.lowergreek{list-style-type:lower-greek}
308 .hdlist
>table,.colist
>table{border:
0;background:none}
309 .hdlist
>table
>tbody
>tr,.colist
>table
>tbody
>tr{background:none}
310 td.hdlist1,td.hdlist2{vertical-align:top;padding:
0 .625em}
311 td.hdlist1{font-weight:bold;padding-bottom:
1.25em}
312 td.hdlist2{word-wrap:anywhere}
313 .literalblock+.colist,.listingblock+.colist{margin-top:-
.5em}
314 .colist td:not([class]):first-child{padding:
.4em
.75em
0;line-height:
1;vertical-align:top}
315 .colist td:not([class]):first-child img{max-width:none}
316 .colist td:not([class]):last-child{padding:
.25em
0}
317 .thumb,.th{line-height:
0;display:inline-block;border:
4px solid #fff;box-shadow:
0 0 0 1px #ddd}
318 .imageblock.left{margin:
.25em
.625em
1.25em
0}
319 .imageblock.right{margin:
.25em
0 1.25em
.625em}
320 .imageblock
>.title{margin-bottom:
0}
321 .imageblock.thumb,.imageblock.th{border-width:
6px}
322 .imageblock.thumb
>.title,.imageblock.th
>.title{padding:
0 .125em}
323 .image.left,.image.right{margin-top:
.25em;margin-bottom:
.25em;display:inline-block;line-height:
0}
324 .image.left{margin-right:
.625em}
325 .image.right{margin-left:
.625em}
326 a.image{text-decoration:none;display:inline-block}
327 a.image object{pointer-events:none}
328 sup.footnote,sup.footnoteref{font-size:
.875em;position:static;vertical-align:super}
329 sup.footnote a,sup.footnoteref a{text-decoration:none}
330 sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline}
331 #footnotes{padding-top:
.75em;padding-bottom:
.75em;margin-bottom:
.625em}
332 #footnotes hr{width:
20%;min-width:
6.25em;margin:-
.25em
0 .75em;border-width:
1px
0 0}
333 #footnotes .footnote{padding:
0 .375em
0 .225em;line-height:
1.3334;font-size:
.875em;margin-left:
1.2em;margin-bottom:
.2em}
334 #footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none;margin-left:-
1.05em}
335 #footnotes .footnote:last-of-type{margin-bottom:
0}
336 #content #footnotes{margin-top:-
.625em;margin-bottom:
0;padding:
.75em
0}
337 div.unbreakable{page-break-inside:avoid}
338 .big{font-size:larger}
339 .small{font-size:smaller}
340 .underline{text-decoration:underline}
341 .overline{text-decoration:overline}
342 .line-through{text-decoration:line-through}
344 .aqua-background{background:#
00fafa}
346 .black-background{background:#
000}
348 .blue-background{background:#
0000fa}
349 .fuchsia{color:#bf00bf}
350 .fuchsia-background{background:#fa00fa}
352 .gray-background{background:#
7d7d7d}
353 .green{color:#
006000}
354 .green-background{background:#
007d00}
356 .lime-background{background:#
00fa00}
357 .maroon{color:#
600000}
358 .maroon-background{background:#
7d0000}
360 .navy-background{background:#
00007d}
361 .olive{color:#
606000}
362 .olive-background{background:#
7d7d00}
363 .purple{color:#
600060}
364 .purple-background{background:#
7d007d}
366 .red-background{background:#fa0000}
367 .silver{color:#
909090}
368 .silver-background{background:#bcbcbc}
370 .teal-background{background:#
007d7d}
371 .white{color:#bfbfbf}
372 .white-background{background:#fafafa}
373 .yellow{color:#bfbf00}
374 .yellow-background{background:#fafa00}
375 span.icon
>.fa{cursor:default}
376 a span.icon
>.fa{cursor:inherit}
377 .admonitionblock td.icon [class^=
"fa icon-"]{font-size:
2.5em;text-shadow:
1px
1px
2px rgba(
0,
0,
0,
.5);cursor:default}
378 .admonitionblock td.icon .icon-note::before{content:
"\f05a";color:#
19407c}
379 .admonitionblock td.icon .icon-tip::before{content:
"\f0eb";text-shadow:
1px
1px
2px rgba(
155,
155,
0,
.8);color:#
111}
380 .admonitionblock td.icon .icon-warning::before{content:
"\f071";color:#bf6900}
381 .admonitionblock td.icon .icon-caution::before{content:
"\f06d";color:#bf3400}
382 .admonitionblock td.icon .icon-important::before{content:
"\f06a";color:#bf0000}
383 .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}
384 .conum[data-value] *{color:#fff!important}
385 .conum[data-value]+b{display:none}
386 .conum[data-value]::after{content:attr(data-value)}
387 pre .conum[data-value]{position:relative;top:-
.125em}
388 b.conum *{color:inherit!important}
389 .conum:not([data-value]):empty{display:none}
390 dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}
391 h1,h2,p,td.content,span.alt,summary{letter-spacing:-
.01em}
392 p strong,td.content strong,div.footnote strong{letter-spacing:-
.005em}
393 p,blockquote,dt,td.content,td.hdlist1,span.alt,summary{font-size:
1.0625rem}
394 p{margin-bottom:
1.25rem}
395 .sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:
1em}
396 .exampleblock
>.content{background:#fffef7;border-color:#e0e0dc;box-shadow:
0 1px
4px #e0e0dc}
397 .print-only{display:none!important}
398 @page{margin:
1.25cm
.75cm}
399 @media print{*{box-shadow:none!important;text-shadow:none!important}
401 a{color:inherit!important;text-decoration:underline!important}
402 a.bare,a[href^=
"#"],a[href^=
"mailto:"]{text-decoration:none!important}
403 a[href^=
"http:"]:not(.bare)::after,a[href^=
"https:"]:not(.bare)::after{content:
"(" attr(href)
")";display:inline-block;font-size:
.875em;padding-left:
.25em}
404 abbr[title]{border-bottom:
1px dotted}
405 abbr[title]::after{content:
" (" attr(title)
")"}
406 pre,blockquote,tr,img,object,svg{page-break-inside:avoid}
407 thead{display:table-header-group}
409 p,blockquote,dt,td.content{font-size:
1em;orphans:
3;widows:
3}
410 h2,h3,#toctitle,.sidebarblock
>.content
>.title{page-break-after:avoid}
411 #header,#content,#footnotes,#footer{max-width:none}
412 #toc,.sidebarblock,.exampleblock
>.content{background:none!important}
413 #toc{border-bottom:
1px solid #dddddf!important;padding-bottom:
0!important}
414 body.book #header{text-align:center}
415 body.book #header
>h1:first-child{border:
0!important;margin:
2.5em
0 1em}
416 body.book #header .details{border:
0!important;display:block;padding:
0!important}
417 body.book #header .details span:first-child{margin-left:
0!important}
418 body.book #header .details br{display:block}
419 body.book #header .details br+span::before{content:none!important}
420 body.book #toc{border:
0!important;text-align:left!important;padding:
0!important;margin:
0!important}
421 body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1
>h2{page-break-before:always}
422 .listingblock code[data-lang]::before{display:block}
423 #footer{padding:
0 .9375em}
424 .hide-on-print{display:none!important}
425 .print-only{display:block!important}
426 .hide-for-print{display:none!important}
427 .show-for-print{display:inherit!important}}
428 @media amzn-kf8,print{#header
>h1:first-child{margin-top:
1.25rem}
429 .sect1{padding:
0!important}
430 .sect1+.sect1{border:
0}
431 #footer{background:none}
432 #footer-text{color:rgba(
0,
0,
0,
.6);font-size:
.9em}}
433 @media amzn-kf8{#header,#content,#footnotes,#footer{padding:
0}}
441 <body class=
"manpage">
443 <h1>git-mergetool(
1) Manual Page
</h1>
444 <h2 id=
"_name">NAME
</h2>
445 <div class=
"sectionbody">
446 <p>git-mergetool - Run merge conflict resolution tools to resolve merge conflicts
</p>
451 <h2 id=
"_synopsis">SYNOPSIS
</h2>
452 <div class=
"sectionbody">
453 <div class=
"verseblock">
454 <pre class=
"content"><em>git mergetool
</em> [--tool=
<tool
>] [-y | --[no-]prompt] [
<file
>…​]
</pre>
459 <h2 id=
"_description">DESCRIPTION
</h2>
460 <div class=
"sectionbody">
461 <div class=
"paragraph">
462 <p>Use
<code>git
</code> <code>mergetool
</code> to run one of several merge utilities to resolve
463 merge conflicts. It is typically run after
<em>git merge
</em>.
</p>
465 <div class=
"paragraph">
466 <p>If one or more
<file
> parameters are given, the merge tool program will
467 be run to resolve differences in each file (skipping those without
468 conflicts). Specifying a directory will include all unresolved files in
469 that path. If no
<file
> names are specified,
<em>git mergetool
</em> will run
470 the merge tool program on every file with merge conflicts.
</p>
475 <h2 id=
"_options">OPTIONS
</h2>
476 <div class=
"sectionbody">
479 <dt class=
"hdlist1">-t
<tool
></dt>
480 <dt class=
"hdlist1">--tool=
<tool
></dt>
482 <p>Use the merge resolution program specified by
<tool
>.
483 Valid values include emerge, gvimdiff, kdiff3,
484 meld, vimdiff, and tortoisemerge. Run
<code>git
</code> <code>mergetool
</code> <code>--tool-help
</code>
485 for the list of valid
<tool
> settings.
</p>
486 <div class=
"paragraph">
487 <p>If a merge resolution program is not specified,
<em>git mergetool
</em>
488 will use the configuration variable
<code>merge.tool
</code>. If the
489 configuration variable
<code>merge.tool
</code> is not set,
<em>git mergetool
</em>
490 will pick a suitable default.
</p>
492 <div class=
"paragraph">
493 <p>You can explicitly provide a full path to the tool by setting the
494 configuration variable
<code>mergetool.
</code><em><tool
></em><code>.path
</code>. For example, you
495 can configure the absolute path to kdiff3 by setting
496 <code>mergetool.kdiff3.path
</code>. Otherwise,
<em>git mergetool
</em> assumes the
497 tool is available in PATH.
</p>
499 <div class=
"paragraph">
500 <p>Instead of running one of the known merge tool programs,
501 <em>git mergetool
</em> can be customized to run an alternative program
502 by specifying the command line to invoke in a configuration
503 variable
<code>mergetool.
</code><em><tool
></em><code>.cmd
</code>.
</p>
505 <div class=
"paragraph">
506 <p>When
<em>git mergetool
</em> is invoked with this tool (either through the
507 <code>-t
</code> or
<code>--tool
</code> option or the
<code>merge.tool
</code> configuration
508 variable), the configured command line will be invoked with
<code>$BASE
</code>
509 set to the name of a temporary file containing the common base for
510 the merge, if available;
<code>$LOCAL
</code> set to the name of a temporary
511 file containing the contents of the file on the current branch;
512 <code>$REMOTE
</code> set to the name of a temporary file containing the
513 contents of the file to be merged, and
<code>$MERGED
</code> set to the name
514 of the file to which the merge tool should write the result of the
515 merge resolution.
</p>
517 <div class=
"paragraph">
518 <p>If the custom merge tool correctly indicates the success of a
519 merge resolution with its exit code, then the configuration
520 variable
<code>mergetool.
</code><em><tool
></em><code>.trustExitCode
</code> can be set to
<code>true
</code>.
521 Otherwise,
<em>git mergetool
</em> will prompt the user to indicate the
522 success of the resolution after the custom tool has exited.
</p>
525 <dt class=
"hdlist1">--tool-help
</dt>
527 <p>Print a list of merge tools that may be used with
<code>--tool
</code>.
</p>
529 <dt class=
"hdlist1">-y
</dt>
530 <dt class=
"hdlist1">--no-prompt
</dt>
532 <p>Don
’t prompt before each invocation of the merge resolution
534 This is the default if the merge resolution program is
535 explicitly specified with the
<code>--tool
</code> option or with the
536 <code>merge.tool
</code> configuration variable.
</p>
538 <dt class=
"hdlist1">--prompt
</dt>
540 <p>Prompt before each invocation of the merge resolution program
541 to give the user a chance to skip the path.
</p>
543 <dt class=
"hdlist1">-g
</dt>
544 <dt class=
"hdlist1">--gui
</dt>
546 <p>When
<em>git-mergetool
</em> is invoked with the
<code>-g
</code> or
<code>--gui
</code> option,
547 the default merge tool will be read from the configured
548 <code>merge.guitool
</code> variable instead of
<code>merge.tool
</code>. If
549 <code>merge.guitool
</code> is not set, we will fallback to the tool
550 configured under
<code>merge.tool
</code>. This may be autoselected using
551 the configuration variable
<code>mergetool.guiDefault
</code>.
</p>
553 <dt class=
"hdlist1">--no-gui
</dt>
555 <p>This overrides a previous
<code>-g
</code> or
<code>--gui
</code> setting or
556 <code>mergetool.guiDefault
</code> configuration and reads the default merge
557 tool from the configured
<code>merge.tool
</code> variable.
</p>
559 <dt class=
"hdlist1">-O
<orderfile
></dt>
561 <p>Process files in the order specified in the
562 <orderfile
>, which has one shell glob pattern per line.
563 This overrides the
<code>diff.orderFile
</code> configuration variable
564 (see
<a href=
"git-config.html">git-config(
1)
</a>). To cancel
<code>diff.orderFile
</code>,
565 use
<code>-O/dev/null
</code>.
</p>
572 <h2 id=
"_configuration">CONFIGURATION
</h2>
573 <div class=
"sectionbody">
574 <div class=
"paragraph">
575 <p>Everything below this line in this section is selectively included
576 from the
<a href=
"git-config.html">git-config(
1)
</a> documentation. The content is the same
577 as what
’s found there:
</p>
581 <dt class=
"hdlist1">mergetool.
<tool
>.path
</dt>
583 <p>Override the path for the given tool. This is useful in case
584 your tool is not in the PATH.
</p>
586 <dt class=
"hdlist1">mergetool.
<tool
>.cmd
</dt>
588 <p>Specify the command to invoke the specified merge tool. The
589 specified command is evaluated in shell with the following
590 variables available:
<em>BASE
</em> is the name of a temporary file
591 containing the common base of the files to be merged, if available;
592 <em>LOCAL
</em> is the name of a temporary file containing the contents of
593 the file on the current branch;
<em>REMOTE
</em> is the name of a temporary
594 file containing the contents of the file from the branch being
595 merged;
<em>MERGED
</em> contains the name of the file to which the merge
596 tool should write the results of a successful merge.
</p>
598 <dt class=
"hdlist1">mergetool.
<tool
>.hideResolved
</dt>
600 <p>Allows the user to override the global
<code>mergetool.hideResolved
</code> value
601 for a specific tool. See
<code>mergetool.hideResolved
</code> for the full
604 <dt class=
"hdlist1">mergetool.
<tool
>.trustExitCode
</dt>
606 <p>For a custom merge command, specify whether the exit code of
607 the merge command can be used to determine whether the merge was
608 successful. If this is not set to true then the merge target file
609 timestamp is checked, and the merge is assumed to have been successful
610 if the file has been updated; otherwise, the user is prompted to
611 indicate the success of the merge.
</p>
613 <dt class=
"hdlist1">mergetool.meld.hasOutput
</dt>
615 <p>Older versions of
<code>meld
</code> do not support the
<code>--output
</code> option.
616 Git will attempt to detect whether
<code>meld
</code> supports
<code>--output
</code>
617 by inspecting the output of
<code>meld
</code> <code>--help
</code>. Configuring
618 <code>mergetool.meld.hasOutput
</code> will make Git skip these checks and
619 use the configured value instead. Setting
<code>mergetool.meld.hasOutput
</code>
620 to
<code>true
</code> tells Git to unconditionally use the
<code>--output
</code> option,
621 and
<code>false
</code> avoids using
<code>--output
</code>.
</p>
623 <dt class=
"hdlist1">mergetool.meld.useAutoMerge
</dt>
625 <p>When the
<code>--auto-merge
</code> is given, meld will merge all non-conflicting
626 parts automatically, highlight the conflicting parts, and wait for
627 user decision. Setting
<code>mergetool.meld.useAutoMerge
</code> to
<code>true
</code> tells
628 Git to unconditionally use the
<code>--auto-merge
</code> option with
<code>meld
</code>.
629 Setting this value to
<code>auto
</code> makes git detect whether
<code>--auto-merge
</code>
630 is supported and will only use
<code>--auto-merge
</code> when available. A
631 value of
<code>false
</code> avoids using
<code>--auto-merge
</code> altogether, and is the
634 <dt class=
"hdlist1">mergetool.
<vimdiff variant
>.layout
</dt>
636 <p>Configure the split window layout for vimdiff
’s
<em><variant
></em>, which is any of
<code>vimdiff
</code>,
637 <code>nvimdiff
</code>,
<code>gvimdiff
</code>.
638 Upon launching
<code>git
</code> <code>mergetool
</code> with
<code>--tool=
</code><em><variant
></em> (or without
<code>--tool
</code>
639 if
<code>merge.tool
</code> is configured as
<em><variant
></em>), Git will consult
640 <code>mergetool.
</code><em><variant
></em><code>.layout
</code> to determine the tool
’s layout. If the
641 variant-specific configuration is not available,
<code>vimdiff
</code>'s is used as
642 fallback. If that too is not available, a default layout with
4 windows
643 will be used. To configure the layout, see the
<code>BACKEND
</code> <code>SPECIFIC
</code> <code>HINTS
</code>
646 <dt class=
"hdlist1">mergetool.hideResolved
</dt>
648 <p>During a merge, Git will automatically resolve as many conflicts as
649 possible and write the
<em>MERGED
</em> file containing conflict markers around
650 any conflicts that it cannot resolve;
<em>LOCAL
</em> and
<em>REMOTE
</em> normally
651 represent the versions of the file from before Git
’s conflict
652 resolution. This flag causes
<em>LOCAL
</em> and
<em>REMOTE
</em> to be overwritten so
653 that only the unresolved conflicts are presented to the merge tool. Can
654 be configured per-tool via the
<code>mergetool.
</code><em><tool
></em><code>.hideResolved
</code>
655 configuration variable. Defaults to
<code>false
</code>.
</p>
657 <dt class=
"hdlist1">mergetool.keepBackup
</dt>
659 <p>After performing a merge, the original file with conflict markers
660 can be saved as a file with a .
<code>orig
</code> extension. If this variable
661 is set to
<code>false
</code> then this file is not preserved. Defaults to
662 <code>true
</code> (i.e. keep the backup files).
</p>
664 <dt class=
"hdlist1">mergetool.keepTemporaries
</dt>
666 <p>When invoking a custom merge tool, Git uses a set of temporary
667 files to pass to the tool. If the tool returns an error and this
668 variable is set to
<code>true
</code>, then these temporary files will be
669 preserved; otherwise, they will be removed after the tool has
670 exited. Defaults to
<code>false
</code>.
</p>
672 <dt class=
"hdlist1">mergetool.writeToTemp
</dt>
674 <p>Git writes temporary
<em>BASE
</em>,
<em>LOCAL
</em>, and
<em>REMOTE
</em> versions of
675 conflicting files in the worktree by default. Git will attempt
676 to use a temporary directory for these files when set
<code>true
</code>.
677 Defaults to
<code>false
</code>.
</p>
679 <dt class=
"hdlist1">mergetool.prompt
</dt>
681 <p>Prompt before each invocation of the merge resolution program.
</p>
683 <dt class=
"hdlist1">mergetool.guiDefault
</dt>
685 <p>Set
<code>true
</code> to use the
<code>merge.guitool
</code> by default (equivalent to
686 specifying the
<code>--gui
</code> argument), or
<code>auto
</code> to select
<code>merge.guitool
</code>
687 or
<code>merge.tool
</code> depending on the presence of a
<code>DISPLAY
</code> environment
688 variable value. The default is
<code>false
</code>, where the
<code>--gui
</code> argument
689 must be provided explicitly for the
<code>merge.guitool
</code> to be used.
</p>
696 <h2 id=
"_temporary_files">TEMPORARY FILES
</h2>
697 <div class=
"sectionbody">
698 <div class=
"paragraph">
699 <p><code>git
</code> <code>mergetool
</code> creates *.
<code>orig
</code> backup files while resolving merges.
700 These are safe to remove once a file has been merged and its
701 <code>git
</code> <code>mergetool
</code> session has completed.
</p>
703 <div class=
"paragraph">
704 <p>Setting the
<code>mergetool.keepBackup
</code> configuration variable to
<code>false
</code>
705 causes
<code>git
</code> <code>mergetool
</code> to automatically remove the backup files as files
706 are successfully merged.
</p>
711 <h2 id=
"_backend_specific_hints">BACKEND SPECIFIC HINTS
</h2>
712 <div class=
"sectionbody">
714 <h3 id=
"_vimdiff">vimdiff
</h3>
716 <h4 id=
"_description_2">Description
</h4>
717 <div class=
"paragraph">
718 <p>When specifying
<code>--tool=vimdiff
</code> in
<code>git
</code> <code>mergetool
</code> Git will open Vim with a
4
719 windows layout distributed in the following way:
</p>
721 <div class=
"literalblock">
722 <div class=
"content">
723 <pre>------------------------------------------
725 | LOCAL | BASE | REMOTE |
727 ------------------------------------------
731 ------------------------------------------
</pre>
734 <div class=
"paragraph">
735 <p><code>LOCAL
</code>,
<code>BASE
</code> and
<code>REMOTE
</code> are read-only buffers showing the contents of the
736 conflicting file in specific commits (
"commit you are merging into",
"common
737 ancestor commit" and
"commit you are merging from" respectively)
</p>
739 <div class=
"paragraph">
740 <p><code>MERGED
</code> is a writable buffer where you have to resolve the conflicts (using the
741 other read-only buffers as a reference). Once you are done, save and exit Vim as
742 usual (
<code>:wq
</code>) or, if you want to abort, exit using
<code>:cq
</code>.
</p>
746 <h4 id=
"_layout_configuration">Layout configuration
</h4>
747 <div class=
"paragraph">
748 <p>You can change the windows layout used by Vim by setting configuration variable
749 <code>mergetool.vimdiff.layout
</code> which accepts a string where the following separators
750 have special meaning:
</p>
755 <p><code>+
</code> is used to
"open a new tab"</p>
758 <p><code>,
</code> is used to
"open a new vertical split"</p>
761 <p><code>/
</code> is used to
"open a new horizontal split"</p>
764 <p><code>@
</code> is used to indicate the file containing the final version after
765 solving the conflicts. If not present,
<code>MERGED
</code> will be used by default.
</p>
769 <div class=
"paragraph">
770 <p>The precedence of the operators is as follows (you can use parentheses to change
773 <div class=
"literalblock">
774 <div class=
"content">
775 <pre>`@`
> `+`
> `/`
> `,`
</pre>
778 <div class=
"paragraph">
779 <p>Let
’s see some examples to understand how it works:
</p>
784 <p><code>layout
</code> <code>=
</code> "(<code>LOCAL,BASE,REMOTE</code>)<code>/MERGED</code>"</p>
785 <div class=
"openblock">
786 <div class=
"content">
787 <div class=
"paragraph">
788 <p>This is exactly the same as the default layout we have already seen.
</p>
790 <div class=
"paragraph">
791 <p>Note that
<code>/
</code> has precedence over
<code>,
</code> and thus the parenthesis are not
792 needed in this case. The next layout definition is equivalent:
</p>
794 <div class=
"literalblock">
795 <div class=
"content">
796 <pre>layout =
"LOCAL,BASE,REMOTE / MERGED"</pre>
803 <p><code>layout
</code> <code>=
</code> "LOCAL,MERGED,REMOTE"</p>
804 <div class=
"openblock">
805 <div class=
"content">
806 <div class=
"paragraph">
807 <p>If, for some reason, we are not interested in the
<code>BASE
</code> buffer.
</p>
809 <div class=
"literalblock">
810 <div class=
"content">
811 <pre>------------------------------------------
814 | LOCAL | MERGED | REMOTE |
817 ------------------------------------------
</pre>
824 <p><code>layout
</code> <code>=
</code> "MERGED"</p>
825 <div class=
"openblock">
826 <div class=
"content">
827 <div class=
"paragraph">
828 <p>Only the
<code>MERGED
</code> buffer will be shown. Note, however, that all the other
829 ones are still loaded in vim, and you can access them with the
"buffers"
832 <div class=
"literalblock">
833 <div class=
"content">
834 <pre>------------------------------------------
840 ------------------------------------------
</pre>
847 <p><code>layout
</code> <code>=
</code> "@LOCAL,REMOTE"</p>
848 <div class=
"openblock">
849 <div class=
"content">
850 <div class=
"paragraph">
851 <p>When
<code>MERGED
</code> is not present in the layout, you must
"mark" one of the
852 buffers with an asterisk. That will become the buffer you need to edit and
853 save after resolving the conflicts.
</p>
855 <div class=
"literalblock">
856 <div class=
"content">
857 <pre>------------------------------------------
865 ------------------------------------------
</pre>
872 <p><code>layout
</code> <code>=
</code> "LOCAL,BASE,REMOTE <code>/</code> <code>MERGED</code> <code>+</code> <code>BASE,LOCAL</code> <code>+</code> <code>BASE,REMOTE</code>"</p>
873 <div class=
"openblock">
874 <div class=
"content">
875 <div class=
"paragraph">
876 <p>Three tabs will open: the first one is a copy of the default layout, while
877 the other two only show the differences between (
<code>BASE
</code> and
<code>LOCAL
</code>) and
878 (
<code>BASE
</code> and
<code>REMOTE
</code>) respectively.
</p>
880 <div class=
"literalblock">
881 <div class=
"content">
882 <pre>------------------------------------------
883 |
<TAB #
1> | TAB #
2 | TAB #
3 | |
884 ------------------------------------------
886 | LOCAL | BASE | REMOTE |
888 ------------------------------------------
892 ------------------------------------------
</pre>
895 <div class=
"literalblock">
896 <div class=
"content">
897 <pre>------------------------------------------
898 | TAB #
1 |
<TAB #
2> | TAB #
3 | |
899 ------------------------------------------
907 ------------------------------------------
</pre>
910 <div class=
"literalblock">
911 <div class=
"content">
912 <pre>------------------------------------------
913 | TAB #
1 | TAB #
2 |
<TAB #
3> | |
914 ------------------------------------------
922 ------------------------------------------
</pre>
929 <p><code>layout
</code> <code>=
</code> "LOCAL,BASE,REMOTE <code>/</code> <code>MERGED</code> <code>+</code> <code>BASE,LOCAL</code> <code>+</code> <code>BASE,REMOTE</code> <code>+</code> (<code>LOCAL/BASE/REMOTE</code>)<code>,MERGED</code>"</p>
930 <div class=
"openblock">
931 <div class=
"content">
932 <div class=
"paragraph">
933 <p>Same as the previous example, but adds a fourth tab with the same
934 information as the first tab, with a different layout.
</p>
936 <div class=
"literalblock">
937 <div class=
"content">
938 <pre>---------------------------------------------
939 | TAB #
1 | TAB #
2 | TAB #
3 |
<TAB #
4> |
940 ---------------------------------------------
942 |---------------------| |
944 |---------------------| |
946 ---------------------------------------------
</pre>
949 <div class=
"paragraph">
950 <p>Note how in the third tab definition we need to use parentheses to make
<code>,
</code>
951 have precedence over
<code>/
</code>.
</p>
960 <h4 id=
"_variants">Variants
</h4>
961 <div class=
"paragraph">
962 <p>Instead of
<code>--tool=vimdiff
</code>, you can also use one of these other variants:
</p>
967 <p><code>--tool=gvimdiff
</code>, to open gVim instead of Vim.
</p>
970 <p><code>--tool=nvimdiff
</code>, to open Neovim instead of Vim.
</p>
974 <div class=
"paragraph">
975 <p>When using these variants, in order to specify a custom layout you will have to
976 set configuration variables
<code>mergetool.gvimdiff.layout
</code> and
977 <code>mergetool.nvimdiff.layout
</code> instead of
<code>mergetool.vimdiff.layout
</code> (though the
978 latter will be used as fallback if the variant-specific one is not set).
</p>
980 <div class=
"paragraph">
981 <p>In addition, for backwards compatibility with previous Git versions, you can
982 also append
<code>1</code>,
<code>2</code> or
<code>3</code> to either
<code>vimdiff
</code> or any of the variants (ex:
983 <code>vimdiff3
</code>,
<code>nvimdiff1
</code>, etc
…​) to use a predefined layout.
984 In other words, using
<code>--tool=
</code>[
<code>g,n,
</code>]
<code>vimdiffx
</code> is the same as using
985 <code>--tool=
</code>[
<code>g,n,
</code>]
<code>vimdiff
</code> and setting configuration variable
986 <code>mergetool.
</code>[
<code>g,n,
</code>]
<code>vimdiff.layout
</code> to
…​</p>
991 <p><code>x=
1</code>:
"@LOCAL, <code>REMOTE</code>"</p>
994 <p><code>x=
2</code>:
"LOCAL, <code>MERGED,</code> <code>REMOTE</code>"</p>
997 <p><code>x=
3</code>:
"MERGED"</p>
1001 <div class=
"paragraph">
1002 <p>Example: using
<code>--tool=gvimdiff2
</code> will open
<code>gvim
</code> with three columns (LOCAL,
1003 MERGED and REMOTE).
</p>
1010 <h2 id=
"_git">GIT
</h2>
1011 <div class=
"sectionbody">
1012 <div class=
"paragraph">
1013 <p>Part of the
<a href=
"git.html">git(
1)
</a> suite
</p>
1019 <div id=
"footer-text">
1020 Last updated
2023-
10-
23 14:
43:
46 -
0700