Autogenerated HTML docs for v2.47.0-229-g8f8d6
[git-htmldocs.git] / git-push.html
blob840be9b57e48340b468edec8a2f57fe1a3f9ba53
1 <!DOCTYPE html>
2 <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
3 <head>
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-push(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"/>
10 <style>
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%}
15 a{background:none}
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}
20 abbr{font-size:.9em}
21 abbr[title]{cursor:help;border-bottom:1px dotted #dddddf;text-decoration:none}
22 dfn{font-style:italic}
23 hr{height:0}
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"}
28 small{font-size:80%}
29 sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
30 sup{top:-.5em}
31 sub{bottom:-.25em}
32 img{border:0}
33 svg:not(:root){overflow:hidden}
34 figure{margin:0}
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}
61 .hide{display:none}
62 img,object,svg{display:inline-block;vertical-align:middle}
63 textarea{height:auto;min-height:50px}
64 select{width:100%}
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}
69 a img{border:0}
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}
74 h1{font-size:2.125em}
75 h2{font-size:1.6875em}
76 h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
77 h4,h5{font-size:1.125em}
78 h6{font-size:1em}
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}
97 h1{font-size:2.75em}
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}
110 .stretch{width:100%}
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}
343 .aqua{color:#00bfbf}
344 .aqua-background{background:#00fafa}
345 .black{color:#000}
346 .black-background{background:#000}
347 .blue{color:#0000bf}
348 .blue-background{background:#0000fa}
349 .fuchsia{color:#bf00bf}
350 .fuchsia-background{background:#fa00fa}
351 .gray{color:#606060}
352 .gray-background{background:#7d7d7d}
353 .green{color:#006000}
354 .green-background{background:#007d00}
355 .lime{color:#00bf00}
356 .lime-background{background:#00fa00}
357 .maroon{color:#600000}
358 .maroon-background{background:#7d0000}
359 .navy{color:#000060}
360 .navy-background{background:#00007d}
361 .olive{color:#606000}
362 .olive-background{background:#7d7d00}
363 .purple{color:#600060}
364 .purple-background{background:#7d007d}
365 .red{color:#bf0000}
366 .red-background{background:#fa0000}
367 .silver{color:#909090}
368 .silver-background{background:#bcbcbc}
369 .teal{color:#006060}
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}
400 html{font-size:80%}
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}
408 svg{max-width:100%}
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}}
434 </style>
435 <style>
436 pre>code {
437 display: inline;
439 </style>
440 </head>
441 <body class="manpage">
442 <div id="header">
443 <h1>git-push(1) Manual Page</h1>
444 <h2 id="_name">NAME</h2>
445 <div class="sectionbody">
446 <p>git-push - Update remote refs along with associated objects</p>
447 </div>
448 </div>
449 <div id="content">
450 <div class="sect1">
451 <h2 id="_synopsis">SYNOPSIS</h2>
452 <div class="sectionbody">
453 <div class="verseblock">
454 <pre class="content"><em>git push</em> [--all | --branches | --mirror | --tags] [--follow-tags] [--atomic] [-n | --dry-run] [--receive-pack=&lt;git-receive-pack&gt;]
455 [--repo=&lt;repository&gt;] [-f | --force] [-d | --delete] [--prune] [-q | --quiet] [-v | --verbose]
456 [-u | --set-upstream] [-o &lt;string&gt; | --push-option=&lt;string&gt;]
457 [--[no-]signed|--signed=(true|false|if-asked)]
458 [--force-with-lease[=&lt;refname&gt;[:&lt;expect&gt;]] [--force-if-includes]]
459 [--no-verify] [&lt;repository&gt; [&lt;refspec&gt;&#8230;&#8203;]]</pre>
460 </div>
461 </div>
462 </div>
463 <div class="sect1">
464 <h2 id="_description">DESCRIPTION</h2>
465 <div class="sectionbody">
466 <div class="paragraph">
467 <p>Updates remote refs using local refs, while sending objects
468 necessary to complete the given refs.</p>
469 </div>
470 <div class="paragraph">
471 <p>You can make interesting things happen to a repository
472 every time you push into it, by setting up <em>hooks</em> there. See
473 documentation for <a href="git-receive-pack.html">git-receive-pack(1)</a>.</p>
474 </div>
475 <div class="paragraph">
476 <p>When the command line does not specify where to push with the
477 <em>&lt;repository&gt;</em> argument, <code>branch.</code>*.<code>remote</code> configuration for the
478 current branch is consulted to determine where to push. If the
479 configuration is missing, it defaults to <em>origin</em>.</p>
480 </div>
481 <div class="paragraph">
482 <p>When the command line does not specify what to push with <em>&lt;refspec&gt;</em>...
483 arguments or <code>--all</code>, <code>--mirror</code>, <code>--tags</code> options, the command finds
484 the default <em>&lt;refspec&gt;</em> by consulting <code>remote.</code>*.<code>push</code> configuration,
485 and if it is not found, honors <code>push.default</code> configuration to decide
486 what to push (See <a href="git-config.html">git-config(1)</a> for the meaning of <code>push.default</code>).</p>
487 </div>
488 <div class="paragraph">
489 <p>When neither the command-line nor the configuration specifies what to
490 push, the default behavior is used, which corresponds to the <code>simple</code>
491 value for <code>push.default</code>: the current branch is pushed to the
492 corresponding upstream branch, but as a safety measure, the push is
493 aborted if the upstream branch does not have the same name as the
494 local one.</p>
495 </div>
496 </div>
497 </div>
498 <div class="sect1">
499 <h2 id="_options">OPTIONS<a id="OPTIONS"></a></h2>
500 <div class="sectionbody">
501 <div class="dlist">
502 <dl>
503 <dt class="hdlist1">&lt;repository&gt;</dt>
504 <dd>
505 <p>The "remote" repository that is the destination of a push
506 operation. This parameter can be either a URL
507 (see the section <a href="#URLS">GIT URLS</a> below) or the name
508 of a remote (see the section <a href="#REMOTES">REMOTES</a> below).</p>
509 </dd>
510 <dt class="hdlist1">&lt;refspec&gt;&#8230;&#8203;</dt>
511 <dd>
512 <p>Specify what destination ref to update with what source object.
513 The format of a &lt;refspec&gt; parameter is an optional plus
514 <code>+</code>, followed by the source object &lt;src&gt;, followed
515 by a colon <code>:</code>, followed by the destination ref &lt;dst&gt;.</p>
516 <div class="paragraph">
517 <p>The &lt;src&gt; is often the name of the branch you would want to push, but
518 it can be any arbitrary "SHA-1 expression", such as <code>master~4</code> or
519 <code>HEAD</code> (see <a href="gitrevisions.html">gitrevisions(7)</a>).</p>
520 </div>
521 <div class="paragraph">
522 <p>The &lt;dst&gt; tells which ref on the remote side is updated with this
523 push. Arbitrary expressions cannot be used here, an actual ref must
524 be named.
525 If <code>git</code> <code>push</code> [<em>&lt;repository&gt;</em>] without any <em>&lt;refspec&gt;</em> argument is set to
526 update some ref at the destination with <em>&lt;src&gt;</em> with
527 <code>remote.</code><em>&lt;repository&gt;</em><code>.push</code> configuration variable, <code>:</code><em>&lt;dst&gt;</em> part can
528 be omitted&#8212;&#8203;such a push will update a ref that <em>&lt;src&gt;</em> normally updates
529 without any <em>&lt;refspec&gt;</em> on the command line. Otherwise, missing
530 <code>:</code><em>&lt;dst&gt;</em> means to update the same ref as the <em>&lt;src&gt;</em>.</p>
531 </div>
532 <div class="paragraph">
533 <p>If &lt;dst&gt; doesn&#8217;t start with <code>refs/</code> (e.g. <code>refs/heads/master</code>) we will
534 try to infer where in <code>refs/</code>* on the destination &lt;repository&gt; it
535 belongs based on the type of &lt;src&gt; being pushed and whether &lt;dst&gt;
536 is ambiguous.</p>
537 </div>
538 <div class="openblock">
539 <div class="content">
540 <div class="ulist">
541 <ul>
542 <li>
543 <p>If &lt;dst&gt; unambiguously refers to a ref on the &lt;repository&gt; remote,
544 then push to that ref.</p>
545 </li>
546 <li>
547 <p>If &lt;src&gt; resolves to a ref starting with refs/heads/ or refs/tags/,
548 then prepend that to &lt;dst&gt;.</p>
549 </li>
550 <li>
551 <p>Other ambiguity resolutions might be added in the future, but for
552 now any other cases will error out with an error indicating what we
553 tried, and depending on the <code>advice.pushUnqualifiedRefname</code>
554 configuration (see <a href="git-config.html">git-config(1)</a>) suggest what refs/
555 namespace you may have wanted to push to.</p>
556 </li>
557 </ul>
558 </div>
559 </div>
560 </div>
561 <div class="paragraph">
562 <p>The object referenced by &lt;src&gt; is used to update the &lt;dst&gt; reference
563 on the remote side. Whether this is allowed depends on where in
564 <code>refs/</code>* the &lt;dst&gt; reference lives as described in detail below, in
565 those sections "update" means any modifications except deletes, which
566 as noted after the next few sections are treated differently.</p>
567 </div>
568 <div class="paragraph">
569 <p>The <code>refs/heads/</code>* namespace will only accept commit objects, and
570 updates only if they can be fast-forwarded.</p>
571 </div>
572 <div class="paragraph">
573 <p>The <code>refs/tags/</code>* namespace will accept any kind of object (as
574 commits, trees and blobs can be tagged), and any updates to them will
575 be rejected.</p>
576 </div>
577 <div class="paragraph">
578 <p>It&#8217;s possible to push any type of object to any namespace outside of
579 <code>refs/</code>{tags,heads}/*. In the case of tags and commits, these will be
580 treated as if they were the commits inside <code>refs/heads/</code>* for the
581 purposes of whether the update is allowed.</p>
582 </div>
583 <div class="paragraph">
584 <p>I.e. a fast-forward of commits and tags outside <code>refs/</code>{tags,heads}/*
585 is allowed, even in cases where what&#8217;s being fast-forwarded is not a
586 commit, but a tag object which happens to point to a new commit which
587 is a fast-forward of the commit the last tag (or commit) it&#8217;s
588 replacing. Replacing a tag with an entirely different tag is also
589 allowed, if it points to the same commit, as well as pushing a peeled
590 tag, i.e. pushing the commit that existing tag object points to, or a
591 new tag object which an existing commit points to.</p>
592 </div>
593 <div class="paragraph">
594 <p>Tree and blob objects outside of <code>refs/</code>{tags,heads}/* will be treated
595 the same way as if they were inside <code>refs/tags/</code>*, any update of them
596 will be rejected.</p>
597 </div>
598 <div class="paragraph">
599 <p>All of the rules described above about what&#8217;s not allowed as an update
600 can be overridden by adding an the optional leading <code>+</code> to a refspec
601 (or using <code>--force</code> command line option). The only exception to this
602 is that no amount of forcing will make the <code>refs/heads/</code>* namespace
603 accept a non-commit object. Hooks and configuration can also override
604 or amend these rules, see e.g. <code>receive.denyNonFastForwards</code> in
605 <a href="git-config.html">git-config(1)</a> and <code>pre-receive</code> and <code>update</code> in
606 <a href="githooks.html">githooks(5)</a>.</p>
607 </div>
608 <div class="paragraph">
609 <p>Pushing an empty &lt;src&gt; allows you to delete the &lt;dst&gt; ref from the
610 remote repository. Deletions are always accepted without a leading <code>+</code>
611 in the refspec (or <code>--force</code>), except when forbidden by configuration
612 or hooks. See <code>receive.denyDeletes</code> in <a href="git-config.html">git-config(1)</a> and
613 <code>pre-receive</code> and <code>update</code> in <a href="githooks.html">githooks(5)</a>.</p>
614 </div>
615 <div class="paragraph">
616 <p>The special refspec <code>:</code> (or <code>+:</code> to allow non-fast-forward updates)
617 directs Git to push "matching" branches: for every branch that exists on
618 the local side, the remote side is updated if a branch of the same name
619 already exists on the remote side.</p>
620 </div>
621 <div class="paragraph">
622 <p><code>tag</code> <em>&lt;tag&gt;</em> means the same as <code>refs/tags/</code><em>&lt;tag&gt;</em><code>:refs/tags/</code><em>&lt;tag&gt;</em>.</p>
623 </div>
624 </dd>
625 <dt class="hdlist1">--all</dt>
626 <dt class="hdlist1">--branches</dt>
627 <dd>
628 <p>Push all branches (i.e. refs under <code>refs/heads/</code>); cannot be
629 used with other &lt;refspec&gt;.</p>
630 </dd>
631 <dt class="hdlist1">--prune</dt>
632 <dd>
633 <p>Remove remote branches that don&#8217;t have a local counterpart. For example
634 a remote branch <code>tmp</code> will be removed if a local branch with the same
635 name doesn&#8217;t exist any more. This also respects refspecs, e.g.
636 <code>git</code> <code>push</code> <code>--prune</code> <code>remote</code> <code>refs/heads/</code>*:refs/tmp/* would
637 make sure that remote <code>refs/tmp/foo</code> will be removed if <code>refs/heads/foo</code>
638 doesn&#8217;t exist.</p>
639 </dd>
640 <dt class="hdlist1">--mirror</dt>
641 <dd>
642 <p>Instead of naming each ref to push, specifies that all
643 refs under <code>refs/</code> (which includes but is not
644 limited to <code>refs/heads/</code>, <code>refs/remotes/</code>, and <code>refs/tags/</code>)
645 be mirrored to the remote repository. Newly created local
646 refs will be pushed to the remote end, locally updated refs
647 will be force updated on the remote end, and deleted refs
648 will be removed from the remote end. This is the default
649 if the configuration option <code>remote.</code><em>&lt;remote&gt;</em><code>.mirror</code> is
650 set.</p>
651 </dd>
652 <dt class="hdlist1">-n</dt>
653 <dt class="hdlist1">--dry-run</dt>
654 <dd>
655 <p>Do everything except actually send the updates.</p>
656 </dd>
657 <dt class="hdlist1">--porcelain</dt>
658 <dd>
659 <p>Produce machine-readable output. The output status line for each ref
660 will be tab-separated and sent to stdout instead of stderr. The full
661 symbolic names of the refs will be given.</p>
662 </dd>
663 <dt class="hdlist1">-d</dt>
664 <dt class="hdlist1">--delete</dt>
665 <dd>
666 <p>All listed refs are deleted from the remote repository. This is
667 the same as prefixing all refs with a colon.</p>
668 </dd>
669 <dt class="hdlist1">--tags</dt>
670 <dd>
671 <p>All refs under <code>refs/tags</code> are pushed, in
672 addition to refspecs explicitly listed on the command
673 line.</p>
674 </dd>
675 <dt class="hdlist1">--follow-tags</dt>
676 <dd>
677 <p>Push all the refs that would be pushed without this option,
678 and also push annotated tags in <code>refs/tags</code> that are missing
679 from the remote but are pointing at commit-ish that are
680 reachable from the refs being pushed. This can also be specified
681 with configuration variable <code>push.followTags</code>. For more
682 information, see <code>push.followTags</code> in <a href="git-config.html">git-config(1)</a>.</p>
683 </dd>
684 <dt class="hdlist1">--[no-]signed</dt>
685 <dt class="hdlist1">--signed=(true|false|if-asked)</dt>
686 <dd>
687 <p>GPG-sign the push request to update refs on the receiving
688 side, to allow it to be checked by the hooks and/or be
689 logged. If <code>false</code> or <code>--no-signed</code>, no signing will be
690 attempted. If <code>true</code> or <code>--signed</code>, the push will fail if the
691 server does not support signed pushes. If set to <code>if-asked</code>,
692 sign if and only if the server supports signed pushes. The push
693 will also fail if the actual call to <code>gpg</code> <code>--sign</code> fails. See
694 <a href="git-receive-pack.html">git-receive-pack(1)</a> for the details on the receiving end.</p>
695 </dd>
696 <dt class="hdlist1">--[no-]atomic</dt>
697 <dd>
698 <p>Use an atomic transaction on the remote side if available.
699 Either all refs are updated, or on error, no refs are updated.
700 If the server does not support atomic pushes the push will fail.</p>
701 </dd>
702 <dt class="hdlist1">-o &lt;option&gt;</dt>
703 <dt class="hdlist1">--push-option=&lt;option&gt;</dt>
704 <dd>
705 <p>Transmit the given string to the server, which passes them to
706 the pre-receive as well as the post-receive hook. The given string
707 must not contain a NUL or LF character.
708 When multiple <code>--push-option=</code><em>&lt;option&gt;</em> are given, they are
709 all sent to the other side in the order listed on the
710 command line.
711 When no <code>--push-option=</code><em>&lt;option&gt;</em> is given from the command
712 line, the values of configuration variable <code>push.pushOption</code>
713 are used instead.</p>
714 </dd>
715 <dt class="hdlist1">--receive-pack=&lt;git-receive-pack&gt;</dt>
716 <dt class="hdlist1">--exec=&lt;git-receive-pack&gt;</dt>
717 <dd>
718 <p>Path to the <em>git-receive-pack</em> program on the remote
719 end. Sometimes useful when pushing to a remote
720 repository over ssh, and you do not have the program in
721 a directory on the default $PATH.</p>
722 </dd>
723 <dt class="hdlist1">--[no-]force-with-lease</dt>
724 <dt class="hdlist1">--force-with-lease=&lt;refname&gt;</dt>
725 <dt class="hdlist1">--force-with-lease=&lt;refname&gt;:&lt;expect&gt;</dt>
726 <dd>
727 <p>Usually, "git push" refuses to update a remote ref that is
728 not an ancestor of the local ref used to overwrite it.</p>
729 <div class="paragraph">
730 <p>This option overrides this restriction if the current value of the
731 remote ref is the expected value. "git push" fails otherwise.</p>
732 </div>
733 <div class="paragraph">
734 <p>Imagine that you have to rebase what you have already published.
735 You will have to bypass the "must fast-forward" rule in order to
736 replace the history you originally published with the rebased history.
737 If somebody else built on top of your original history while you are
738 rebasing, the tip of the branch at the remote may advance with their
739 commit, and blindly pushing with <code>--force</code> will lose their work.</p>
740 </div>
741 <div class="paragraph">
742 <p>This option allows you to say that you expect the history you are
743 updating is what you rebased and want to replace. If the remote ref
744 still points at the commit you specified, you can be sure that no
745 other people did anything to the ref. It is like taking a "lease" on
746 the ref without explicitly locking it, and the remote ref is updated
747 only if the "lease" is still valid.</p>
748 </div>
749 <div class="paragraph">
750 <p><code>--force-with-lease</code> alone, without specifying the details, will protect
751 all remote refs that are going to be updated by requiring their
752 current value to be the same as the remote-tracking branch we have
753 for them.</p>
754 </div>
755 <div class="paragraph">
756 <p><code>--force-with-lease=</code><em>&lt;refname&gt;</em>, without specifying the expected value, will
757 protect the named ref (alone), if it is going to be updated, by
758 requiring its current value to be the same as the remote-tracking
759 branch we have for it.</p>
760 </div>
761 <div class="paragraph">
762 <p><code>--force-with-lease=</code><em>&lt;refname&gt;</em><code>:</code><em>&lt;expect&gt;</em> will protect the named ref (alone),
763 if it is going to be updated, by requiring its current value to be
764 the same as the specified value <em>&lt;expect&gt;</em> (which is allowed to be
765 different from the remote-tracking branch we have for the refname,
766 or we do not even have to have such a remote-tracking branch when
767 this form is used). If <em>&lt;expect&gt;</em> is the empty string, then the named ref
768 must not already exist.</p>
769 </div>
770 <div class="paragraph">
771 <p>Note that all forms other than <code>--force-with-lease=</code><em>&lt;refname&gt;</em><code>:</code><em>&lt;expect&gt;</em>
772 that specifies the expected current value of the ref explicitly are
773 still experimental and their semantics may change as we gain experience
774 with this feature.</p>
775 </div>
776 <div class="paragraph">
777 <p>"--no-force-with-lease" will cancel all the previous --force-with-lease on the
778 command line.</p>
779 </div>
780 <div class="paragraph">
781 <p>A general note on safety: supplying this option without an expected
782 value, i.e. as <code>--force-with-lease</code> or <code>--force-with-lease=</code><em>&lt;refname&gt;</em>
783 interacts very badly with anything that implicitly runs <code>git</code> <code>fetch</code> on
784 the remote to be pushed to in the background, e.g. <code>git</code> <code>fetch</code> <code>origin</code>
785 on your repository in a cronjob.</p>
786 </div>
787 <div class="paragraph">
788 <p>The protection it offers over <code>--force</code> is ensuring that subsequent
789 changes your work wasn&#8217;t based on aren&#8217;t clobbered, but this is
790 trivially defeated if some background process is updating refs in the
791 background. We don&#8217;t have anything except the remote tracking info to
792 go by as a heuristic for refs you&#8217;re expected to have seen &amp; are
793 willing to clobber.</p>
794 </div>
795 <div class="paragraph">
796 <p>If your editor or some other system is running <code>git</code> <code>fetch</code> in the
797 background for you a way to mitigate this is to simply set up another
798 remote:</p>
799 </div>
800 <div class="literalblock">
801 <div class="content">
802 <pre>git remote add origin-push $(git config remote.origin.url)
803 git fetch origin-push</pre>
804 </div>
805 </div>
806 <div class="paragraph">
807 <p>Now when the background process runs <code>git</code> <code>fetch</code> <code>origin</code> the references
808 on <code>origin-push</code> won&#8217;t be updated, and thus commands like:</p>
809 </div>
810 <div class="literalblock">
811 <div class="content">
812 <pre>git push --force-with-lease origin-push</pre>
813 </div>
814 </div>
815 <div class="paragraph">
816 <p>Will fail unless you manually run <code>git</code> <code>fetch</code> <code>origin-push</code>. This method
817 is of course entirely defeated by something that runs <code>git</code> <code>fetch</code>
818 <code>--all</code>, in that case you&#8217;d need to either disable it or do something
819 more tedious like:</p>
820 </div>
821 <div class="literalblock">
822 <div class="content">
823 <pre>git fetch # update 'master' from remote
824 git tag base master # mark our base point
825 git rebase -i master # rewrite some commits
826 git push --force-with-lease=master:base master:master</pre>
827 </div>
828 </div>
829 <div class="paragraph">
830 <p>I.e. create a <code>base</code> tag for versions of the upstream code that you&#8217;ve
831 seen and are willing to overwrite, then rewrite history, and finally
832 force push changes to <code>master</code> if the remote version is still at
833 <code>base</code>, regardless of what your local <code>remotes/origin/master</code> has been
834 updated to in the background.</p>
835 </div>
836 <div class="paragraph">
837 <p>Alternatively, specifying <code>--force-if-includes</code> as an ancillary option
838 along with <code>--force-with-lease</code>[<code>=</code><em>&lt;refname&gt;</em>] (i.e., without saying what
839 exact commit the ref on the remote side must be pointing at, or which
840 refs on the remote side are being protected) at the time of "push" will
841 verify if updates from the remote-tracking refs that may have been
842 implicitly updated in the background are integrated locally before
843 allowing a forced update.</p>
844 </div>
845 </dd>
846 <dt class="hdlist1">-f</dt>
847 <dt class="hdlist1">--force</dt>
848 <dd>
849 <p>Usually, the command refuses to update a remote ref that is
850 not an ancestor of the local ref used to overwrite it.
851 Also, when <code>--force-with-lease</code> option is used, the command refuses
852 to update a remote ref whose current value does not match
853 what is expected.</p>
854 <div class="paragraph">
855 <p>This flag disables these checks, and can cause the remote repository
856 to lose commits; use it with care.</p>
857 </div>
858 <div class="paragraph">
859 <p>Note that <code>--force</code> applies to all the refs that are pushed, hence
860 using it with <code>push.default</code> set to <code>matching</code> or with multiple push
861 destinations configured with <code>remote.</code>*.<code>push</code> may overwrite refs
862 other than the current branch (including local refs that are
863 strictly behind their remote counterpart). To force a push to only
864 one branch, use a <code>+</code> in front of the refspec to push (e.g <code>git</code> <code>push</code>
865 <code>origin</code> <code>+master</code> to force a push to the <code>master</code> branch). See the
866 <em>&lt;refspec&gt;</em>... section above for details.</p>
867 </div>
868 </dd>
869 <dt class="hdlist1">--[no-]force-if-includes</dt>
870 <dd>
871 <p>Force an update only if the tip of the remote-tracking ref
872 has been integrated locally.</p>
873 <div class="paragraph">
874 <p>This option enables a check that verifies if the tip of the
875 remote-tracking ref is reachable from one of the "reflog" entries of
876 the local branch based in it for a rewrite. The check ensures that any
877 updates from the remote have been incorporated locally by rejecting the
878 forced update if that is not the case.</p>
879 </div>
880 <div class="paragraph">
881 <p>If the option is passed without specifying <code>--force-with-lease</code>, or
882 specified along with <code>--force-with-lease=</code><em>&lt;refname&gt;</em><code>:</code><em>&lt;expect&gt;</em>, it is
883 a "no-op".</p>
884 </div>
885 <div class="paragraph">
886 <p>Specifying <code>--no-force-if-includes</code> disables this behavior.</p>
887 </div>
888 </dd>
889 <dt class="hdlist1">--repo=&lt;repository&gt;</dt>
890 <dd>
891 <p>This option is equivalent to the &lt;repository&gt; argument. If both
892 are specified, the command-line argument takes precedence.</p>
893 </dd>
894 <dt class="hdlist1">-u</dt>
895 <dt class="hdlist1">--set-upstream</dt>
896 <dd>
897 <p>For every branch that is up to date or successfully pushed, add
898 upstream (tracking) reference, used by argument-less
899 <a href="git-pull.html">git-pull(1)</a> and other commands. For more information,
900 see <code>branch.</code><em>&lt;name&gt;</em><code>.merge</code> in <a href="git-config.html">git-config(1)</a>.</p>
901 </dd>
902 <dt class="hdlist1">--[no-]thin</dt>
903 <dd>
904 <p>These options are passed to <a href="git-send-pack.html">git-send-pack(1)</a>. A thin transfer
905 significantly reduces the amount of sent data when the sender and
906 receiver share many of the same objects in common. The default is
907 <code>--thin</code>.</p>
908 </dd>
909 <dt class="hdlist1">-q</dt>
910 <dt class="hdlist1">--quiet</dt>
911 <dd>
912 <p>Suppress all output, including the listing of updated refs,
913 unless an error occurs. Progress is not reported to the standard
914 error stream.</p>
915 </dd>
916 <dt class="hdlist1">-v</dt>
917 <dt class="hdlist1">--verbose</dt>
918 <dd>
919 <p>Run verbosely.</p>
920 </dd>
921 <dt class="hdlist1">--progress</dt>
922 <dd>
923 <p>Progress status is reported on the standard error stream
924 by default when it is attached to a terminal, unless -q
925 is specified. This flag forces progress status even if the
926 standard error stream is not directed to a terminal.</p>
927 </dd>
928 <dt class="hdlist1">--no-recurse-submodules</dt>
929 <dt class="hdlist1">--recurse-submodules=check|on-demand|only|no</dt>
930 <dd>
931 <p>May be used to make sure all submodule commits used by the
932 revisions to be pushed are available on a remote-tracking branch.
933 If <em>check</em> is used Git will verify that all submodule commits that
934 changed in the revisions to be pushed are available on at least one
935 remote of the submodule. If any commits are missing the push will
936 be aborted and exit with non-zero status. If <em>on-demand</em> is used
937 all submodules that changed in the revisions to be pushed will be
938 pushed. If on-demand was not able to push all necessary revisions it will
939 also be aborted and exit with non-zero status. If <em>only</em> is used all
940 submodules will be pushed while the superproject is left
941 unpushed. A value of <em>no</em> or using <code>--no-recurse-submodules</code> can be used
942 to override the push.recurseSubmodules configuration variable when no
943 submodule recursion is required.</p>
944 <div class="paragraph">
945 <p>When using <em>on-demand</em> or <em>only</em>, if a submodule has a
946 "push.recurseSubmodules={on-demand,only}" or "submodule.recurse" configuration,
947 further recursion will occur. In this case, "only" is treated as "on-demand".</p>
948 </div>
949 </dd>
950 <dt class="hdlist1">--[no-]verify</dt>
951 <dd>
952 <p>Toggle the pre-push hook (see <a href="githooks.html">githooks(5)</a>). The
953 default is --verify, giving the hook a chance to prevent the
954 push. With --no-verify, the hook is bypassed completely.</p>
955 </dd>
956 <dt class="hdlist1">-4</dt>
957 <dt class="hdlist1">--ipv4</dt>
958 <dd>
959 <p>Use IPv4 addresses only, ignoring IPv6 addresses.</p>
960 </dd>
961 <dt class="hdlist1">-6</dt>
962 <dt class="hdlist1">--ipv6</dt>
963 <dd>
964 <p>Use IPv6 addresses only, ignoring IPv4 addresses.</p>
965 </dd>
966 </dl>
967 </div>
968 </div>
969 </div>
970 <div class="sect1">
971 <h2 id="_git_urls">GIT URLS<a id="URLS"></a></h2>
972 <div class="sectionbody">
973 <div class="paragraph">
974 <p>In general, URLs contain information about the transport protocol, the
975 address of the remote server, and the path to the repository.
976 Depending on the transport protocol, some of this information may be
977 absent.</p>
978 </div>
979 <div class="paragraph">
980 <p>Git supports ssh, git, http, and https protocols (in addition, ftp
981 and ftps can be used for fetching, but this is inefficient and
982 deprecated; do not use them).</p>
983 </div>
984 <div class="paragraph">
985 <p>The native transport (i.e. <code>git://</code> URL) does no authentication and
986 should be used with caution on unsecured networks.</p>
987 </div>
988 <div class="paragraph">
989 <p>The following syntaxes may be used with them:</p>
990 </div>
991 <div class="ulist">
992 <ul>
993 <li>
994 <p><code>ssh://</code>[<em>&lt;user&gt;</em><code>@</code>]<em>&lt;host&gt;</em>[<code>:</code><em>&lt;port&gt;</em>]<code>/</code><em>&lt;path-to-git-repo&gt;</em></p>
995 </li>
996 <li>
997 <p><code>git://</code><em>&lt;host&gt;</em>[<code>:</code><em>&lt;port&gt;</em>]<code>/</code><em>&lt;path-to-git-repo&gt;</em></p>
998 </li>
999 <li>
1000 <p><code>http</code>[<code>s</code>]<code>://</code><em>&lt;host&gt;</em>[<code>:</code><em>&lt;port&gt;</em>]<code>/</code><em>&lt;path-to-git-repo&gt;</em></p>
1001 </li>
1002 <li>
1003 <p><code>ftp</code>[<code>s</code>]<code>://</code><em>&lt;host&gt;</em>[<code>:</code><em>&lt;port&gt;</em>]<code>/</code><em>&lt;path-to-git-repo&gt;</em></p>
1004 </li>
1005 </ul>
1006 </div>
1007 <div class="paragraph">
1008 <p>An alternative scp-like syntax may also be used with the ssh protocol:</p>
1009 </div>
1010 <div class="ulist">
1011 <ul>
1012 <li>
1013 <p>[<em>&lt;user&gt;</em><code>@</code>]<em>&lt;host&gt;</em><code>:/</code><em>&lt;path-to-git-repo&gt;</em></p>
1014 </li>
1015 </ul>
1016 </div>
1017 <div class="paragraph">
1018 <p>This syntax is only recognized if there are no slashes before the
1019 first colon. This helps differentiate a local path that contains a
1020 colon. For example the local path <code>foo:bar</code> could be specified as an
1021 absolute path or .<code>/foo:bar</code> to avoid being misinterpreted as an ssh
1022 url.</p>
1023 </div>
1024 <div class="paragraph">
1025 <p>The ssh and git protocols additionally support <code>~</code><em>&lt;username&gt;</em> expansion:</p>
1026 </div>
1027 <div class="ulist">
1028 <ul>
1029 <li>
1030 <p><code>ssh://</code>[<em>&lt;user&gt;</em><code>@</code>]<em>&lt;host&gt;</em>[<code>:</code><em>&lt;port&gt;</em>]<code>/~</code><em>&lt;user&gt;</em><code>/</code><em>&lt;path-to-git-repo&gt;</em></p>
1031 </li>
1032 <li>
1033 <p><code>git://</code><em>&lt;host&gt;</em>[<code>:</code><em>&lt;port&gt;</em>]<code>/~</code><em>&lt;user&gt;</em><code>/</code><em>&lt;path-to-git-repo&gt;</em></p>
1034 </li>
1035 <li>
1036 <p>[<em>&lt;user&gt;</em><code>@</code>]<em>&lt;host&gt;</em><code>:~</code><em>&lt;user&gt;</em><code>/</code><em>&lt;path-to-git-repo&gt;</em></p>
1037 </li>
1038 </ul>
1039 </div>
1040 <div class="paragraph">
1041 <p>For local repositories, also supported by Git natively, the following
1042 syntaxes may be used:</p>
1043 </div>
1044 <div class="ulist">
1045 <ul>
1046 <li>
1047 <p><code>/path/to/repo.git/</code></p>
1048 </li>
1049 <li>
1050 <p><code>file:///path/to/repo.git/</code></p>
1051 </li>
1052 </ul>
1053 </div>
1054 <div class="paragraph">
1055 <p>These two syntaxes are mostly equivalent, except when cloning, when
1056 the former implies <code>--local</code> option. See <a href="git-clone.html">git-clone(1)</a> for
1057 details.</p>
1058 </div>
1059 <div class="paragraph">
1060 <p><code>git</code> <code>clone</code>, <code>git</code> <code>fetch</code> and <code>git</code> <code>pull</code>, but not <code>git</code> <code>push</code>, will also
1061 accept a suitable bundle file. See <a href="git-bundle.html">git-bundle(1)</a>.</p>
1062 </div>
1063 <div class="paragraph">
1064 <p>When Git doesn&#8217;t know how to handle a certain transport protocol, it
1065 attempts to use the <code>remote-</code><em>&lt;transport&gt;</em> remote helper, if one
1066 exists. To explicitly request a remote helper, the following syntax
1067 may be used:</p>
1068 </div>
1069 <div class="ulist">
1070 <ul>
1071 <li>
1072 <p><em>&lt;transport&gt;</em><code>::</code><em>&lt;address&gt;</em></p>
1073 </li>
1074 </ul>
1075 </div>
1076 <div class="paragraph">
1077 <p>where <em>&lt;address&gt;</em> may be a path, a server and path, or an arbitrary
1078 URL-like string recognized by the specific remote helper being
1079 invoked. See <a href="gitremote-helpers.html">gitremote-helpers(7)</a> for details.</p>
1080 </div>
1081 <div class="paragraph">
1082 <p>If there are a large number of similarly-named remote repositories and
1083 you want to use a different format for them (such that the URLs you
1084 use will be rewritten into URLs that work), you can create a
1085 configuration section of the form:</p>
1086 </div>
1087 <div class="verseblock">
1088 <pre class="content"> [url "<em>&lt;actual-url-base&gt;</em>"]
1089 insteadOf = <em>&lt;other-url-base&gt;</em></pre>
1090 </div>
1091 <div class="paragraph">
1092 <p>For example, with this:</p>
1093 </div>
1094 <div class="listingblock">
1095 <div class="content">
1096 <pre> [url "git://git.host.xz/"]
1097 insteadOf = host.xz:/path/to/
1098 insteadOf = work:</pre>
1099 </div>
1100 </div>
1101 <div class="paragraph">
1102 <p>a URL like "work:repo.git" or like "host.xz:/path/to/repo.git" will be
1103 rewritten in any context that takes a URL to be "git://git.host.xz/repo.git".</p>
1104 </div>
1105 <div class="paragraph">
1106 <p>If you want to rewrite URLs for push only, you can create a
1107 configuration section of the form:</p>
1108 </div>
1109 <div class="verseblock">
1110 <pre class="content"> [url "<em>&lt;actual-url-base&gt;</em>"]
1111 pushInsteadOf = <em>&lt;other-url-base&gt;</em></pre>
1112 </div>
1113 <div class="paragraph">
1114 <p>For example, with this:</p>
1115 </div>
1116 <div class="listingblock">
1117 <div class="content">
1118 <pre> [url "ssh://example.org/"]
1119 pushInsteadOf = git://example.org/</pre>
1120 </div>
1121 </div>
1122 <div class="paragraph">
1123 <p>a URL like "git://example.org/path/to/repo.git" will be rewritten to
1124 "ssh://example.org/path/to/repo.git" for pushes, but pulls will still
1125 use the original URL.</p>
1126 </div>
1127 </div>
1128 </div>
1129 <div class="sect1">
1130 <h2 id="_remotes">REMOTES<a id="REMOTES"></a></h2>
1131 <div class="sectionbody">
1132 <div class="paragraph">
1133 <p>The name of one of the following can be used instead
1134 of a URL as <em>&lt;repository&gt;</em> argument:</p>
1135 </div>
1136 <div class="ulist">
1137 <ul>
1138 <li>
1139 <p>a remote in the Git configuration file: <code>$GIT_DIR/config</code>,</p>
1140 </li>
1141 <li>
1142 <p>a file in the <code>$GIT_DIR/remotes</code> directory, or</p>
1143 </li>
1144 <li>
1145 <p>a file in the <code>$GIT_DIR/branches</code> directory.</p>
1146 </li>
1147 </ul>
1148 </div>
1149 <div class="paragraph">
1150 <p>All of these also allow you to omit the refspec from the command line
1151 because they each contain a refspec which git will use by default.</p>
1152 </div>
1153 <div class="sect2">
1154 <h3 id="_named_remote_in_configuration_file">Named remote in configuration file</h3>
1155 <div class="paragraph">
1156 <p>You can choose to provide the name of a remote which you had previously
1157 configured using <a href="git-remote.html">git-remote(1)</a>, <a href="git-config.html">git-config(1)</a>
1158 or even by a manual edit to the <code>$GIT_DIR/config</code> file. The URL of
1159 this remote will be used to access the repository. The refspec
1160 of this remote will be used by default when you do
1161 not provide a refspec on the command line. The entry in the
1162 config file would appear like this:</p>
1163 </div>
1164 <div class="listingblock">
1165 <div class="content">
1166 <pre> [remote "&lt;name&gt;"]
1167 url = &lt;URL&gt;
1168 pushurl = &lt;pushurl&gt;
1169 push = &lt;refspec&gt;
1170 fetch = &lt;refspec&gt;</pre>
1171 </div>
1172 </div>
1173 <div class="paragraph">
1174 <p>The <em>&lt;pushurl&gt;</em> is used for pushes only. It is optional and defaults
1175 to <em>&lt;URL&gt;</em>. Pushing to a remote affects all defined pushurls or all
1176 defined urls if no pushurls are defined. Fetch, however, will only
1177 fetch from the first defined url if multiple urls are defined.</p>
1178 </div>
1179 </div>
1180 <div class="sect2">
1181 <h3 id="_named_file_in_git_dirremotes">Named file in <code>$GIT_DIR/remotes</code></h3>
1182 <div class="paragraph">
1183 <p>You can choose to provide the name of a
1184 file in <code>$GIT_DIR/remotes</code>. The URL
1185 in this file will be used to access the repository. The refspec
1186 in this file will be used as default when you do not
1187 provide a refspec on the command line. This file should have the
1188 following format:</p>
1189 </div>
1190 <div class="listingblock">
1191 <div class="content">
1192 <pre> URL: one of the above URL formats
1193 Push: &lt;refspec&gt;
1194 Pull: &lt;refspec&gt;</pre>
1195 </div>
1196 </div>
1197 <div class="paragraph">
1198 <p><code>Push:</code> lines are used by <em>git push</em> and
1199 <code>Pull:</code> lines are used by <em>git pull</em> and <em>git fetch</em>.
1200 Multiple <code>Push:</code> and <code>Pull:</code> lines may
1201 be specified for additional branch mappings.</p>
1202 </div>
1203 </div>
1204 <div class="sect2">
1205 <h3 id="_named_file_in_git_dirbranches">Named file in <code>$GIT_DIR/branches</code></h3>
1206 <div class="paragraph">
1207 <p>You can choose to provide the name of a
1208 file in <code>$GIT_DIR/branches</code>.
1209 The URL in this file will be used to access the repository.
1210 This file should have the following format:</p>
1211 </div>
1212 <div class="listingblock">
1213 <div class="content">
1214 <pre> &lt;URL&gt;#&lt;head&gt;</pre>
1215 </div>
1216 </div>
1217 <div class="paragraph">
1218 <p><em>&lt;URL&gt;</em> is required; #<em>&lt;head&gt;</em> is optional.</p>
1219 </div>
1220 <div class="paragraph">
1221 <p>Depending on the operation, git will use one of the following
1222 refspecs, if you don&#8217;t provide one on the command line.
1223 <em>&lt;branch&gt;</em> is the name of this file in <code>$GIT_DIR/branches</code> and
1224 <em>&lt;head&gt;</em> defaults to <code>master</code>.</p>
1225 </div>
1226 <div class="paragraph">
1227 <p>git fetch uses:</p>
1228 </div>
1229 <div class="listingblock">
1230 <div class="content">
1231 <pre> refs/heads/&lt;head&gt;:refs/heads/&lt;branch&gt;</pre>
1232 </div>
1233 </div>
1234 <div class="paragraph">
1235 <p>git push uses:</p>
1236 </div>
1237 <div class="listingblock">
1238 <div class="content">
1239 <pre> HEAD:refs/heads/&lt;head&gt;</pre>
1240 </div>
1241 </div>
1242 </div>
1243 </div>
1244 </div>
1245 <div class="sect1">
1246 <h2 id="_output">OUTPUT</h2>
1247 <div class="sectionbody">
1248 <div class="paragraph">
1249 <p>The output of "git push" depends on the transport method used; this
1250 section describes the output when pushing over the Git protocol (either
1251 locally or via ssh).</p>
1252 </div>
1253 <div class="paragraph">
1254 <p>The status of the push is output in tabular form, with each line
1255 representing the status of a single ref. Each line is of the form:</p>
1256 </div>
1257 <div class="listingblock">
1258 <div class="content">
1259 <pre> &lt;flag&gt; &lt;summary&gt; &lt;from&gt; -&gt; &lt;to&gt; (&lt;reason&gt;)</pre>
1260 </div>
1261 </div>
1262 <div class="paragraph">
1263 <p>If --porcelain is used, then each line of the output is of the form:</p>
1264 </div>
1265 <div class="listingblock">
1266 <div class="content">
1267 <pre> &lt;flag&gt; \t &lt;from&gt;:&lt;to&gt; \t &lt;summary&gt; (&lt;reason&gt;)</pre>
1268 </div>
1269 </div>
1270 <div class="paragraph">
1271 <p>The status of up-to-date refs is shown only if --porcelain or --verbose
1272 option is used.</p>
1273 </div>
1274 <div class="dlist">
1275 <dl>
1276 <dt class="hdlist1">flag</dt>
1277 <dd>
1278 <p>A single character indicating the status of the ref:</p>
1279 <div class="dlist">
1280 <dl>
1281 <dt class="hdlist1">(space)</dt>
1282 <dd>
1283 <p>for a successfully pushed fast-forward;</p>
1284 </dd>
1285 <dt class="hdlist1"><code>+</code></dt>
1286 <dd>
1287 <p>for a successful forced update;</p>
1288 </dd>
1289 <dt class="hdlist1"><code>-</code></dt>
1290 <dd>
1291 <p>for a successfully deleted ref;</p>
1292 </dd>
1293 <dt class="hdlist1">*</dt>
1294 <dd>
1295 <p>for a successfully pushed new ref;</p>
1296 </dd>
1297 <dt class="hdlist1">!</dt>
1298 <dd>
1299 <p>for a ref that was rejected or failed to push; and</p>
1300 </dd>
1301 <dt class="hdlist1"><code>=</code></dt>
1302 <dd>
1303 <p>for a ref that was up to date and did not need pushing.</p>
1304 </dd>
1305 </dl>
1306 </div>
1307 </dd>
1308 <dt class="hdlist1">summary</dt>
1309 <dd>
1310 <p>For a successfully pushed ref, the summary shows the old and new
1311 values of the ref in a form suitable for using as an argument to
1312 <code>git</code> <code>log</code> (this is <em>&lt;old&gt;</em><code>..</code><em>&lt;new&gt;</em> in most cases, and
1313 <em>&lt;old&gt;</em><code>...</code><em>&lt;new&gt;</em> for forced non-fast-forward updates).</p>
1314 <div class="paragraph">
1315 <p>For a failed update, more details are given:</p>
1316 </div>
1317 <div class="openblock">
1318 <div class="content">
1319 <div class="dlist">
1320 <dl>
1321 <dt class="hdlist1">rejected</dt>
1322 <dd>
1323 <p>Git did not try to send the ref at all, typically because it
1324 is not a fast-forward and you did not force the update.</p>
1325 </dd>
1326 <dt class="hdlist1">remote rejected</dt>
1327 <dd>
1328 <p>The remote end refused the update. Usually caused by a hook
1329 on the remote side, or because the remote repository has one
1330 of the following safety options in effect:
1331 <code>receive.denyCurrentBranch</code> (for pushes to the checked out
1332 branch), <code>receive.denyNonFastForwards</code> (for forced
1333 non-fast-forward updates), <code>receive.denyDeletes</code> or
1334 <code>receive.denyDeleteCurrent</code>. See <a href="git-config.html">git-config(1)</a>.</p>
1335 </dd>
1336 <dt class="hdlist1">remote failure</dt>
1337 <dd>
1338 <p>The remote end did not report the successful update of the ref,
1339 perhaps because of a temporary error on the remote side, a
1340 break in the network connection, or other transient error.</p>
1341 </dd>
1342 </dl>
1343 </div>
1344 </div>
1345 </div>
1346 </dd>
1347 <dt class="hdlist1">from</dt>
1348 <dd>
1349 <p>The name of the local ref being pushed, minus its
1350 <code>refs/</code><em>&lt;type&gt;</em><code>/</code> prefix. In the case of deletion, the
1351 name of the local ref is omitted.</p>
1352 </dd>
1353 <dt class="hdlist1">to</dt>
1354 <dd>
1355 <p>The name of the remote ref being updated, minus its
1356 <code>refs/</code><em>&lt;type&gt;</em><code>/</code> prefix.</p>
1357 </dd>
1358 <dt class="hdlist1">reason</dt>
1359 <dd>
1360 <p>A human-readable explanation. In the case of successfully pushed
1361 refs, no explanation is needed. For a failed ref, the reason for
1362 failure is described.</p>
1363 </dd>
1364 </dl>
1365 </div>
1366 </div>
1367 </div>
1368 <div class="sect1">
1369 <h2 id="_note_about_fast_forwards">NOTE ABOUT FAST-FORWARDS</h2>
1370 <div class="sectionbody">
1371 <div class="paragraph">
1372 <p>When an update changes a branch (or more in general, a ref) that used to
1373 point at commit A to point at another commit B, it is called a
1374 fast-forward update if and only if B is a descendant of A.</p>
1375 </div>
1376 <div class="paragraph">
1377 <p>In a fast-forward update from A to B, the set of commits that the original
1378 commit A built on top of is a subset of the commits the new commit B
1379 builds on top of. Hence, it does not lose any history.</p>
1380 </div>
1381 <div class="paragraph">
1382 <p>In contrast, a non-fast-forward update will lose history. For example,
1383 suppose you and somebody else started at the same commit X, and you built
1384 a history leading to commit B while the other person built a history
1385 leading to commit A. The history looks like this:</p>
1386 </div>
1387 <div class="listingblock">
1388 <div class="content">
1389 <pre> B
1391 ---X---A</pre>
1392 </div>
1393 </div>
1394 <div class="paragraph">
1395 <p>Further suppose that the other person already pushed changes leading to A
1396 back to the original repository from which you two obtained the original
1397 commit X.</p>
1398 </div>
1399 <div class="paragraph">
1400 <p>The push done by the other person updated the branch that used to point at
1401 commit X to point at commit A. It is a fast-forward.</p>
1402 </div>
1403 <div class="paragraph">
1404 <p>But if you try to push, you will attempt to update the branch (that
1405 now points at A) with commit B. This does <em>not</em> fast-forward. If you did
1406 so, the changes introduced by commit A will be lost, because everybody
1407 will now start building on top of B.</p>
1408 </div>
1409 <div class="paragraph">
1410 <p>The command by default does not allow an update that is not a fast-forward
1411 to prevent such loss of history.</p>
1412 </div>
1413 <div class="paragraph">
1414 <p>If you do not want to lose your work (history from X to B) or the work by
1415 the other person (history from X to A), you would need to first fetch the
1416 history from the repository, create a history that contains changes done
1417 by both parties, and push the result back.</p>
1418 </div>
1419 <div class="paragraph">
1420 <p>You can perform "git pull", resolve potential conflicts, and "git push"
1421 the result. A "git pull" will create a merge commit C between commits A
1422 and B.</p>
1423 </div>
1424 <div class="listingblock">
1425 <div class="content">
1426 <pre> B---C
1428 ---X---A</pre>
1429 </div>
1430 </div>
1431 <div class="paragraph">
1432 <p>Updating A with the resulting merge commit will fast-forward and your
1433 push will be accepted.</p>
1434 </div>
1435 <div class="paragraph">
1436 <p>Alternatively, you can rebase your change between X and B on top of A,
1437 with "git pull --rebase", and push the result back. The rebase will
1438 create a new commit D that builds the change between X and B on top of
1439 A.</p>
1440 </div>
1441 <div class="listingblock">
1442 <div class="content">
1443 <pre> B D
1445 ---X---A</pre>
1446 </div>
1447 </div>
1448 <div class="paragraph">
1449 <p>Again, updating A with this commit will fast-forward and your push will be
1450 accepted.</p>
1451 </div>
1452 <div class="paragraph">
1453 <p>There is another common situation where you may encounter non-fast-forward
1454 rejection when you try to push, and it is possible even when you are
1455 pushing into a repository nobody else pushes into. After you push commit
1456 A yourself (in the first picture in this section), replace it with "git
1457 commit --amend" to produce commit B, and you try to push it out, because
1458 forgot that you have pushed A out already. In such a case, and only if
1459 you are certain that nobody in the meantime fetched your earlier commit A
1460 (and started building on top of it), you can run "git push --force" to
1461 overwrite it. In other words, "git push --force" is a method reserved for
1462 a case where you do mean to lose history.</p>
1463 </div>
1464 </div>
1465 </div>
1466 <div class="sect1">
1467 <h2 id="_examples">EXAMPLES</h2>
1468 <div class="sectionbody">
1469 <div class="dlist">
1470 <dl>
1471 <dt class="hdlist1"><code>git</code> <code>push</code></dt>
1472 <dd>
1473 <p>Works like <code>git</code> <code>push</code> <em>&lt;remote&gt;</em>, where &lt;remote&gt; is the
1474 current branch&#8217;s remote (or <code>origin</code>, if no remote is
1475 configured for the current branch).</p>
1476 </dd>
1477 <dt class="hdlist1"><code>git</code> <code>push</code> <code>origin</code></dt>
1478 <dd>
1479 <p>Without additional configuration, pushes the current branch to
1480 the configured upstream (<code>branch.</code><em>&lt;name&gt;</em><code>.merge</code> configuration
1481 variable) if it has the same name as the current branch, and
1482 errors out without pushing otherwise.</p>
1483 <div class="paragraph">
1484 <p>The default behavior of this command when no &lt;refspec&gt; is given can be
1485 configured by setting the <code>push</code> option of the remote, or the <code>push.default</code>
1486 configuration variable.</p>
1487 </div>
1488 <div class="paragraph">
1489 <p>For example, to default to pushing only the current branch to <code>origin</code>
1490 use <code>git</code> <code>config</code> <code>remote.origin.push</code> <code>HEAD</code>. Any valid &lt;refspec&gt; (like
1491 the ones in the examples below) can be configured as the default for
1492 <code>git</code> <code>push</code> <code>origin</code>.</p>
1493 </div>
1494 </dd>
1495 <dt class="hdlist1"><code>git</code> <code>push</code> <code>origin</code> <code>:</code></dt>
1496 <dd>
1497 <p>Push "matching" branches to <code>origin</code>. See
1498 &lt;refspec&gt; in the <a href="#OPTIONS">OPTIONS</a> section above for a
1499 description of "matching" branches.</p>
1500 </dd>
1501 <dt class="hdlist1"><code>git</code> <code>push</code> <code>origin</code> <code>master</code></dt>
1502 <dd>
1503 <p>Find a ref that matches <code>master</code> in the source repository
1504 (most likely, it would find <code>refs/heads/master</code>), and update
1505 the same ref (e.g. <code>refs/heads/master</code>) in <code>origin</code> repository
1506 with it. If <code>master</code> did not exist remotely, it would be
1507 created.</p>
1508 </dd>
1509 <dt class="hdlist1"><code>git</code> <code>push</code> <code>origin</code> <code>HEAD</code></dt>
1510 <dd>
1511 <p>A handy way to push the current branch to the same name on the
1512 remote.</p>
1513 </dd>
1514 <dt class="hdlist1"><code>git</code> <code>push</code> <code>mothership</code> <code>master:satellite/master</code> <code>dev:satellite/dev</code></dt>
1515 <dd>
1516 <p>Use the source ref that matches <code>master</code> (e.g. <code>refs/heads/master</code>)
1517 to update the ref that matches <code>satellite/master</code> (most probably
1518 <code>refs/remotes/satellite/master</code>) in the <code>mothership</code> repository;
1519 do the same for <code>dev</code> and <code>satellite/dev</code>.</p>
1520 <div class="paragraph">
1521 <p>See the section describing <em>&lt;refspec&gt;</em>... above for a discussion of
1522 the matching semantics.</p>
1523 </div>
1524 <div class="paragraph">
1525 <p>This is to emulate <code>git</code> <code>fetch</code> run on the <code>mothership</code> using <code>git</code>
1526 <code>push</code> that is run in the opposite direction in order to integrate
1527 the work done on <code>satellite</code>, and is often necessary when you can
1528 only make connection in one way (i.e. satellite can ssh into
1529 mothership but mothership cannot initiate connection to satellite
1530 because the latter is behind a firewall or does not run sshd).</p>
1531 </div>
1532 <div class="paragraph">
1533 <p>After running this <code>git</code> <code>push</code> on the <code>satellite</code> machine, you would
1534 ssh into the <code>mothership</code> and run <code>git</code> <code>merge</code> there to complete the
1535 emulation of <code>git</code> <code>pull</code> that were run on <code>mothership</code> to pull changes
1536 made on <code>satellite</code>.</p>
1537 </div>
1538 </dd>
1539 <dt class="hdlist1"><code>git</code> <code>push</code> <code>origin</code> <code>HEAD:master</code></dt>
1540 <dd>
1541 <p>Push the current branch to the remote ref matching <code>master</code> in the
1542 <code>origin</code> repository. This form is convenient to push the current
1543 branch without thinking about its local name.</p>
1544 </dd>
1545 <dt class="hdlist1"><code>git</code> <code>push</code> <code>origin</code> <code>master:refs/heads/experimental</code></dt>
1546 <dd>
1547 <p>Create the branch <code>experimental</code> in the <code>origin</code> repository
1548 by copying the current <code>master</code> branch. This form is only
1549 needed to create a new branch or tag in the remote repository when
1550 the local name and the remote name are different; otherwise,
1551 the ref name on its own will work.</p>
1552 </dd>
1553 <dt class="hdlist1"><code>git</code> <code>push</code> <code>origin</code> <code>:experimental</code></dt>
1554 <dd>
1555 <p>Find a ref that matches <code>experimental</code> in the <code>origin</code> repository
1556 (e.g. <code>refs/heads/experimental</code>), and delete it.</p>
1557 </dd>
1558 <dt class="hdlist1"><code>git</code> <code>push</code> <code>origin</code> <code>+dev:master</code></dt>
1559 <dd>
1560 <p>Update the origin repository&#8217;s master branch with the dev branch,
1561 allowing non-fast-forward updates. <strong>This can leave unreferenced
1562 commits dangling in the origin repository.</strong> Consider the
1563 following situation, where a fast-forward is not possible:</p>
1564 <div class="listingblock">
1565 <div class="content">
1566 <pre> o---o---o---A---B origin/master
1568 X---Y---Z dev</pre>
1569 </div>
1570 </div>
1571 <div class="paragraph">
1572 <p>The above command would change the origin repository to</p>
1573 </div>
1574 <div class="listingblock">
1575 <div class="content">
1576 <pre> A---B (unnamed branch)
1578 o---o---o---X---Y---Z master</pre>
1579 </div>
1580 </div>
1581 <div class="paragraph">
1582 <p>Commits A and B would no longer belong to a branch with a symbolic name,
1583 and so would be unreachable. As such, these commits would be removed by
1584 a <code>git</code> <code>gc</code> command on the origin repository.</p>
1585 </div>
1586 </dd>
1587 </dl>
1588 </div>
1589 </div>
1590 </div>
1591 <div class="sect1">
1592 <h2 id="_security">SECURITY</h2>
1593 <div class="sectionbody">
1594 <div class="paragraph">
1595 <p>The fetch and push protocols are not designed to prevent one side from
1596 stealing data from the other repository that was not intended to be
1597 shared. If you have private data that you need to protect from a malicious
1598 peer, your best option is to store it in another repository. This applies
1599 to both clients and servers. In particular, namespaces on a server are not
1600 effective for read access control; you should only grant read access to a
1601 namespace to clients that you would trust with read access to the entire
1602 repository.</p>
1603 </div>
1604 <div class="paragraph">
1605 <p>The known attack vectors are as follows:</p>
1606 </div>
1607 <div class="olist arabic">
1608 <ol class="arabic">
1609 <li>
1610 <p>The victim sends "have" lines advertising the IDs of objects it has that
1611 are not explicitly intended to be shared but can be used to optimize the
1612 transfer if the peer also has them. The attacker chooses an object ID X
1613 to steal and sends a ref to X, but isn&#8217;t required to send the content of
1614 X because the victim already has it. Now the victim believes that the
1615 attacker has X, and it sends the content of X back to the attacker
1616 later. (This attack is most straightforward for a client to perform on a
1617 server, by creating a ref to X in the namespace the client has access
1618 to and then fetching it. The most likely way for a server to perform it
1619 on a client is to "merge" X into a public branch and hope that the user
1620 does additional work on this branch and pushes it back to the server
1621 without noticing the merge.)</p>
1622 </li>
1623 <li>
1624 <p>As in #1, the attacker chooses an object ID X to steal. The victim sends
1625 an object Y that the attacker already has, and the attacker falsely
1626 claims to have X and not Y, so the victim sends Y as a delta against X.
1627 The delta reveals regions of X that are similar to Y to the attacker.</p>
1628 </li>
1629 </ol>
1630 </div>
1631 </div>
1632 </div>
1633 <div class="sect1">
1634 <h2 id="_configuration">CONFIGURATION</h2>
1635 <div class="sectionbody">
1636 <div class="paragraph">
1637 <p>Everything below this line in this section is selectively included
1638 from the <a href="git-config.html">git-config(1)</a> documentation. The content is the same
1639 as what&#8217;s found there:</p>
1640 </div>
1641 <div class="dlist">
1642 <dl>
1643 <dt class="hdlist1">push.autoSetupRemote</dt>
1644 <dd>
1645 <p>If set to "true" assume <code>--set-upstream</code> on default push when no
1646 upstream tracking exists for the current branch; this option
1647 takes effect with push.default options <em>simple</em>, <em>upstream</em>,
1648 and <em>current</em>. It is useful if by default you want new branches
1649 to be pushed to the default remote (like the behavior of
1650 <em>push.default=current</em>) and you also want the upstream tracking
1651 to be set. Workflows most likely to benefit from this option are
1652 <em>simple</em> central workflows where all branches are expected to
1653 have the same name on the remote.</p>
1654 </dd>
1655 <dt class="hdlist1">push.default</dt>
1656 <dd>
1657 <p>Defines the action <code>git</code> <code>push</code> should take if no refspec is
1658 given (whether from the command-line, config, or elsewhere).
1659 Different values are well-suited for
1660 specific workflows; for instance, in a purely central workflow
1661 (i.e. the fetch source is equal to the push destination),
1662 <code>upstream</code> is probably what you want. Possible values are:</p>
1663 <div class="openblock">
1664 <div class="content">
1665 <div class="ulist">
1666 <ul>
1667 <li>
1668 <p><code>nothing</code> - do not push anything (error out) unless a refspec is
1669 given. This is primarily meant for people who want to
1670 avoid mistakes by always being explicit.</p>
1671 </li>
1672 <li>
1673 <p><code>current</code> - push the current branch to update a branch with the same
1674 name on the receiving end. Works in both central and non-central
1675 workflows.</p>
1676 </li>
1677 <li>
1678 <p><code>upstream</code> - push the current branch back to the branch whose
1679 changes are usually integrated into the current branch (which is
1680 called <code>@</code>{upstream}). This mode only makes sense if you are
1681 pushing to the same repository you would normally pull from
1682 (i.e. central workflow).</p>
1683 </li>
1684 <li>
1685 <p><code>tracking</code> - This is a deprecated synonym for <code>upstream</code>.</p>
1686 </li>
1687 <li>
1688 <p><code>simple</code> - push the current branch with the same name on the remote.</p>
1689 <div class="paragraph">
1690 <p>If you are working on a centralized workflow (pushing to the same repository you
1691 pull from, which is typically <code>origin</code>), then you need to configure an upstream
1692 branch with the same name.</p>
1693 </div>
1694 <div class="paragraph">
1695 <p>This mode is the default since Git 2.0, and is the safest option suited for
1696 beginners.</p>
1697 </div>
1698 </li>
1699 <li>
1700 <p><code>matching</code> - push all branches having the same name on both ends.
1701 This makes the repository you are pushing to remember the set of
1702 branches that will be pushed out (e.g. if you always push <em>maint</em>
1703 and <em>master</em> there and no other branches, the repository you push
1704 to will have these two branches, and your local <em>maint</em> and
1705 <em>master</em> will be pushed there).</p>
1706 <div class="paragraph">
1707 <p>To use this mode effectively, you have to make sure <em>all</em> the
1708 branches you would push out are ready to be pushed out before
1709 running <em>git push</em>, as the whole point of this mode is to allow you
1710 to push all of the branches in one go. If you usually finish work
1711 on only one branch and push out the result, while other branches are
1712 unfinished, this mode is not for you. Also this mode is not
1713 suitable for pushing into a shared central repository, as other
1714 people may add new branches there, or update the tip of existing
1715 branches outside your control.</p>
1716 </div>
1717 <div class="paragraph">
1718 <p>This used to be the default, but not since Git 2.0 (<code>simple</code> is the
1719 new default).</p>
1720 </div>
1721 </li>
1722 </ul>
1723 </div>
1724 </div>
1725 </div>
1726 </dd>
1727 <dt class="hdlist1">push.followTags</dt>
1728 <dd>
1729 <p>If set to true, enable <code>--follow-tags</code> option by default. You
1730 may override this configuration at time of push by specifying
1731 <code>--no-follow-tags</code>.</p>
1732 </dd>
1733 <dt class="hdlist1">push.gpgSign</dt>
1734 <dd>
1735 <p>May be set to a boolean value, or the string <em>if-asked</em>. A true
1736 value causes all pushes to be GPG signed, as if <code>--signed</code> is
1737 passed to <a href="git-push.html">git-push(1)</a>. The string <em>if-asked</em> causes
1738 pushes to be signed if the server supports it, as if
1739 <code>--signed=if-asked</code> is passed to <em>git push</em>. A false value may
1740 override a value from a lower-priority config file. An explicit
1741 command-line flag always overrides this config option.</p>
1742 </dd>
1743 <dt class="hdlist1">push.pushOption</dt>
1744 <dd>
1745 <p>When no <code>--push-option=</code><em>&lt;option&gt;</em> argument is given from the
1746 command line, <code>git</code> <code>push</code> behaves as if each &lt;value&gt; of
1747 this variable is given as <code>--push-option=</code><em>&lt;value&gt;</em>.</p>
1748 <div class="paragraph">
1749 <p>This is a multi-valued variable, and an empty value can be used in a
1750 higher priority configuration file (e.g. .<code>git/config</code> in a
1751 repository) to clear the values inherited from a lower priority
1752 configuration files (e.g. <code>$HOME/.gitconfig</code>).</p>
1753 </div>
1754 <div class="listingblock">
1755 <div class="content">
1756 <pre>Example:
1758 /etc/gitconfig
1759 push.pushoption = a
1760 push.pushoption = b
1762 ~/.gitconfig
1763 push.pushoption = c
1765 repo/.git/config
1766 push.pushoption =
1767 push.pushoption = b
1769 This will result in only b (a and c are cleared).</pre>
1770 </div>
1771 </div>
1772 </dd>
1773 <dt class="hdlist1">push.recurseSubmodules</dt>
1774 <dd>
1775 <p>May be "check", "on-demand", "only", or "no", with the same behavior
1776 as that of "push --recurse-submodules".
1777 If not set, <em>no</em> is used by default, unless <em>submodule.recurse</em> is
1778 set (in which case a <em>true</em> value means <em>on-demand</em>).</p>
1779 </dd>
1780 <dt class="hdlist1">push.useForceIfIncludes</dt>
1781 <dd>
1782 <p>If set to "true", it is equivalent to specifying
1783 <code>--force-if-includes</code> as an option to <a href="git-push.html">git-push(1)</a>
1784 in the command line. Adding <code>--no-force-if-includes</code> at the
1785 time of push overrides this configuration setting.</p>
1786 </dd>
1787 <dt class="hdlist1">push.negotiate</dt>
1788 <dd>
1789 <p>If set to "true", attempt to reduce the size of the packfile
1790 sent by rounds of negotiation in which the client and the
1791 server attempt to find commits in common. If "false", Git will
1792 rely solely on the server&#8217;s ref advertisement to find commits
1793 in common.</p>
1794 </dd>
1795 <dt class="hdlist1">push.useBitmaps</dt>
1796 <dd>
1797 <p>If set to "false", disable use of bitmaps for "git push" even if
1798 <code>pack.useBitmaps</code> is "true", without preventing other git operations
1799 from using bitmaps. Default is true.</p>
1800 </dd>
1801 </dl>
1802 </div>
1803 </div>
1804 </div>
1805 <div class="sect1">
1806 <h2 id="_git">GIT</h2>
1807 <div class="sectionbody">
1808 <div class="paragraph">
1809 <p>Part of the <a href="git.html">git(1)</a> suite</p>
1810 </div>
1811 </div>
1812 </div>
1813 </div>
1814 <div id="footer">
1815 <div id="footer-text">
1816 Last updated 2023-10-29 16:42:00 -0700
1817 </div>
1818 </div>
1819 </body>
1820 </html>