Autogenerated HTML docs for v2.46.0-39-g891ee
[git-htmldocs.git] / git-bundle.html
blob4fc8a27fa27481c2d9719d218d6b46beb73f18f0
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-bundle(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-bundle(1) Manual Page</h1>
444 <h2 id="_name">NAME</h2>
445 <div class="sectionbody">
446 <p>git-bundle - Move objects and refs by archive</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 bundle</em> create [-q | --quiet | --progress]
455 [--version=&lt;version&gt;] &lt;file&gt; &lt;git-rev-list-args&gt;
456 <em>git bundle</em> verify [-q | --quiet] &lt;file&gt;
457 <em>git bundle</em> list-heads &lt;file&gt; [&lt;refname&gt;&#8230;&#8203;]
458 <em>git bundle</em> unbundle [--progress] &lt;file&gt; [&lt;refname&gt;&#8230;&#8203;]</pre>
459 </div>
460 </div>
461 </div>
462 <div class="sect1">
463 <h2 id="_description">DESCRIPTION</h2>
464 <div class="sectionbody">
465 <div class="paragraph">
466 <p>Create, unpack, and manipulate "bundle" files. Bundles are used for
467 the "offline" transfer of Git objects without an active "server"
468 sitting on the other side of the network connection.</p>
469 </div>
470 <div class="paragraph">
471 <p>They can be used to create both incremental and full backups of a
472 repository, and to relay the state of the references in one repository
473 to another.</p>
474 </div>
475 <div class="paragraph">
476 <p>Git commands that fetch or otherwise "read" via protocols such as
477 <code>ssh://</code> and <code>https://</code> can also operate on bundle files. It is
478 possible <a href="git-clone.html">git-clone(1)</a> a new repository from a bundle, to use
479 <a href="git-fetch.html">git-fetch(1)</a> to fetch from one, and to list the references
480 contained within it with <a href="git-ls-remote.html">git-ls-remote(1)</a>. There&#8217;s no
481 corresponding "write" support, i.e.a <em>git push</em> into a bundle is not
482 supported.</p>
483 </div>
484 <div class="paragraph">
485 <p>See the "EXAMPLES" section below for examples of how to use bundles.</p>
486 </div>
487 </div>
488 </div>
489 <div class="sect1">
490 <h2 id="_bundle_format">BUNDLE FORMAT</h2>
491 <div class="sectionbody">
492 <div class="paragraph">
493 <p>Bundles are <code>.pack</code> files (see <a href="git-pack-objects.html">git-pack-objects(1)</a>) with a
494 header indicating what references are contained within the bundle.</p>
495 </div>
496 <div class="paragraph">
497 <p>Like the packed archive format itself bundles can either be
498 self-contained, or be created using exclusions.
499 See the "OBJECT PREREQUISITES" section below.</p>
500 </div>
501 <div class="paragraph">
502 <p>Bundles created using revision exclusions are "thin packs" created
503 using the <code>--thin</code> option to <a href="git-pack-objects.html">git-pack-objects(1)</a>, and
504 unbundled using the <code>--fix-thin</code> option to <a href="git-index-pack.html">git-index-pack(1)</a>.</p>
505 </div>
506 <div class="paragraph">
507 <p>There is no option to create a "thick pack" when using revision
508 exclusions, and users should not be concerned about the difference. By
509 using "thin packs", bundles created using exclusions are smaller in
510 size. That they&#8217;re "thin" under the hood is merely noted here as a
511 curiosity, and as a reference to other documentation.</p>
512 </div>
513 <div class="paragraph">
514 <p>See <a href="gitformat-bundle.html">gitformat-bundle(5)</a> for more details and the discussion of
515 "thin pack" in <a href="gitformat-pack.html">gitformat-pack(5)</a> for further details.</p>
516 </div>
517 </div>
518 </div>
519 <div class="sect1">
520 <h2 id="_options">OPTIONS</h2>
521 <div class="sectionbody">
522 <div class="dlist">
523 <dl>
524 <dt class="hdlist1">create [options] &lt;file&gt; &lt;git-rev-list-args&gt;</dt>
525 <dd>
526 <p>Used to create a bundle named <em>file</em>. This requires the
527 <em>&lt;git-rev-list-args&gt;</em> arguments to define the bundle contents.
528 <em>options</em> contains the options specific to the <em>git bundle create</em>
529 subcommand. If <em>file</em> is <code>-</code>, the bundle is written to stdout.</p>
530 </dd>
531 <dt class="hdlist1">verify &lt;file&gt;</dt>
532 <dd>
533 <p>Used to check that a bundle file is valid and will apply
534 cleanly to the current repository. This includes checks on the
535 bundle format itself as well as checking that the prerequisite
536 commits exist and are fully linked in the current repository.
537 Then, <em>git bundle</em> prints a list of missing commits, if any.
538 Finally, information about additional capabilities, such as "object
539 filter", is printed. See "Capabilities" in <a href="gitformat-bundle.html">gitformat-bundle(5)</a>
540 for more information. The exit code is zero for success, but will
541 be nonzero if the bundle file is invalid. If <em>file</em> is <code>-</code>, the
542 bundle is read from stdin.</p>
543 </dd>
544 <dt class="hdlist1">list-heads &lt;file&gt;</dt>
545 <dd>
546 <p>Lists the references defined in the bundle. If followed by a
547 list of references, only references matching those given are
548 printed out. If <em>file</em> is <code>-</code>, the bundle is read from stdin.</p>
549 </dd>
550 <dt class="hdlist1">unbundle &lt;file&gt;</dt>
551 <dd>
552 <p>Passes the objects in the bundle to <em>git index-pack</em>
553 for storage in the repository, then prints the names of all
554 defined references. If a list of references is given, only
555 references matching those in the list are printed. This command is
556 really plumbing, intended to be called only by <em>git fetch</em>.
557 If <em>file</em> is <code>-</code>, the bundle is read from stdin.</p>
558 </dd>
559 <dt class="hdlist1">&lt;git-rev-list-args&gt;</dt>
560 <dd>
561 <p>A list of arguments, acceptable to <em>git rev-parse</em> and
562 <em>git rev-list</em> (and containing a named ref, see SPECIFYING REFERENCES
563 below), that specifies the specific objects and references
564 to transport. For example, <code>master~10..master</code> causes the
565 current master reference to be packaged along with all objects
566 added since its 10th ancestor commit. There is no explicit
567 limit to the number of references and objects that may be
568 packaged.</p>
569 </dd>
570 <dt class="hdlist1">[&lt;refname&gt;&#8230;&#8203;]</dt>
571 <dd>
572 <p>A list of references used to limit the references reported as
573 available. This is principally of use to <em>git fetch</em>, which
574 expects to receive only those references asked for and not
575 necessarily everything in the pack (in this case, <em>git bundle</em> acts
576 like <em>git fetch-pack</em>).</p>
577 </dd>
578 <dt class="hdlist1">--progress</dt>
579 <dd>
580 <p>Progress status is reported on the standard error stream
581 by default when it is attached to a terminal, unless -q
582 is specified. This flag forces progress status even if
583 the standard error stream is not directed to a terminal.</p>
584 </dd>
585 <dt class="hdlist1">--version=&lt;version&gt;</dt>
586 <dd>
587 <p>Specify the bundle version. Version 2 is the older format and can only be
588 used with SHA-1 repositories; the newer version 3 contains capabilities that
589 permit extensions. The default is the oldest supported format, based on the
590 hash algorithm in use.</p>
591 </dd>
592 <dt class="hdlist1">-q</dt>
593 <dt class="hdlist1">--quiet</dt>
594 <dd>
595 <p>This flag makes the command not to report its progress
596 on the standard error stream.</p>
597 </dd>
598 </dl>
599 </div>
600 </div>
601 </div>
602 <div class="sect1">
603 <h2 id="_specifying_references">SPECIFYING REFERENCES</h2>
604 <div class="sectionbody">
605 <div class="paragraph">
606 <p>Revisions must be accompanied by reference names to be packaged in a
607 bundle.</p>
608 </div>
609 <div class="paragraph">
610 <p>More than one reference may be packaged, and more than one set of prerequisite objects can
611 be specified. The objects packaged are those not contained in the
612 union of the prerequisites.</p>
613 </div>
614 <div class="paragraph">
615 <p>The <em>git bundle create</em> command resolves the reference names for you
616 using the same rules as <code>git rev-parse --abbrev-ref=loose</code>. Each
617 prerequisite can be specified explicitly (e.g. <code>^master~10</code>), or implicitly
618 (e.g. <code>master~10..master</code>, <code>--since=10.days.ago master</code>).</p>
619 </div>
620 <div class="paragraph">
621 <p>All of these simple cases are OK (assuming we have a "master" and
622 "next" branch):</p>
623 </div>
624 <div class="listingblock">
625 <div class="content">
626 <pre>$ git bundle create master.bundle master
627 $ echo master | git bundle create master.bundle --stdin
628 $ git bundle create master-and-next.bundle master next
629 $ (echo master; echo next) | git bundle create master-and-next.bundle --stdin</pre>
630 </div>
631 </div>
632 <div class="paragraph">
633 <p>And so are these (and the same but omitted <code>--stdin</code> examples):</p>
634 </div>
635 <div class="listingblock">
636 <div class="content">
637 <pre>$ git bundle create recent-master.bundle master~10..master
638 $ git bundle create recent-updates.bundle master~10..master next~5..next</pre>
639 </div>
640 </div>
641 <div class="paragraph">
642 <p>A revision name or a range whose right-hand-side cannot be resolved to
643 a reference is not accepted:</p>
644 </div>
645 <div class="listingblock">
646 <div class="content">
647 <pre>$ git bundle create HEAD.bundle $(git rev-parse HEAD)
648 fatal: Refusing to create empty bundle.
649 $ git bundle create master-yesterday.bundle master~10..master~5
650 fatal: Refusing to create empty bundle.</pre>
651 </div>
652 </div>
653 </div>
654 </div>
655 <div class="sect1">
656 <h2 id="_object_prerequisites">OBJECT PREREQUISITES</h2>
657 <div class="sectionbody">
658 <div class="paragraph">
659 <p>When creating bundles it is possible to create a self-contained bundle
660 that can be unbundled in a repository with no common history, as well
661 as providing negative revisions to exclude objects needed in the
662 earlier parts of the history.</p>
663 </div>
664 <div class="paragraph">
665 <p>Feeding a revision such as <code>new</code> to <code>git bundle create</code> will create a
666 bundle file that contains all the objects reachable from the revision
667 <code>new</code>. That bundle can be unbundled in any repository to obtain a full
668 history that leads to the revision <code>new</code>:</p>
669 </div>
670 <div class="listingblock">
671 <div class="content">
672 <pre>$ git bundle create full.bundle new</pre>
673 </div>
674 </div>
675 <div class="paragraph">
676 <p>A revision range such as <code>old..new</code> will produce a bundle file that
677 will require the revision <code>old</code> (and any objects reachable from it)
678 to exist for the bundle to be "unbundle"-able:</p>
679 </div>
680 <div class="listingblock">
681 <div class="content">
682 <pre>$ git bundle create full.bundle old..new</pre>
683 </div>
684 </div>
685 <div class="paragraph">
686 <p>A self-contained bundle without any prerequisites can be extracted
687 into anywhere, even into an empty repository, or be cloned from
688 (i.e., <code>new</code>, but not <code>old..new</code>).</p>
689 </div>
690 <div class="paragraph">
691 <p>It is okay to err on the side of caution, causing the bundle file
692 to contain objects already in the destination, as these are ignored
693 when unpacking at the destination.</p>
694 </div>
695 <div class="paragraph">
696 <p>If you want to match <code>git clone --mirror</code>, which would include your
697 refs such as <code>refs/remotes/*</code>, use <code>--all</code>.
698 If you want to provide the same set of refs that a clone directly
699 from the source repository would get, use <code>--branches --tags</code> for
700 the <code>&lt;git-rev-list-args&gt;</code>.</p>
701 </div>
702 <div class="paragraph">
703 <p>The <em>git bundle verify</em> command can be used to check whether your
704 recipient repository has the required prerequisite commits for a
705 bundle.</p>
706 </div>
707 </div>
708 </div>
709 <div class="sect1">
710 <h2 id="_examples">EXAMPLES</h2>
711 <div class="sectionbody">
712 <div class="paragraph">
713 <p>Assume you want to transfer the history from a repository R1 on machine A
714 to another repository R2 on machine B.
715 For whatever reason, direct connection between A and B is not allowed,
716 but we can move data from A to B via some mechanism (CD, email, etc.).
717 We want to update R2 with development made on the branch master in R1.</p>
718 </div>
719 <div class="paragraph">
720 <p>To bootstrap the process, you can first create a bundle that does not have
721 any prerequisites. You can use a tag to remember up to what commit you last
722 processed, in order to make it easy to later update the other repository
723 with an incremental bundle:</p>
724 </div>
725 <div class="listingblock">
726 <div class="content">
727 <pre>machineA$ cd R1
728 machineA$ git bundle create file.bundle master
729 machineA$ git tag -f lastR2bundle master</pre>
730 </div>
731 </div>
732 <div class="paragraph">
733 <p>Then you transfer file.bundle to the target machine B. Because this
734 bundle does not require any existing object to be extracted, you can
735 create a new repository on machine B by cloning from it:</p>
736 </div>
737 <div class="listingblock">
738 <div class="content">
739 <pre>machineB$ git clone -b master /home/me/tmp/file.bundle R2</pre>
740 </div>
741 </div>
742 <div class="paragraph">
743 <p>This will define a remote called "origin" in the resulting repository that
744 lets you fetch and pull from the bundle. The $GIT_DIR/config file in R2 will
745 have an entry like this:</p>
746 </div>
747 <div class="listingblock">
748 <div class="content">
749 <pre>[remote "origin"]
750 url = /home/me/tmp/file.bundle
751 fetch = refs/heads/*:refs/remotes/origin/*</pre>
752 </div>
753 </div>
754 <div class="paragraph">
755 <p>To update the resulting mine.git repository, you can fetch or pull after
756 replacing the bundle stored at /home/me/tmp/file.bundle with incremental
757 updates.</p>
758 </div>
759 <div class="paragraph">
760 <p>After working some more in the original repository, you can create an
761 incremental bundle to update the other repository:</p>
762 </div>
763 <div class="listingblock">
764 <div class="content">
765 <pre>machineA$ cd R1
766 machineA$ git bundle create file.bundle lastR2bundle..master
767 machineA$ git tag -f lastR2bundle master</pre>
768 </div>
769 </div>
770 <div class="paragraph">
771 <p>You then transfer the bundle to the other machine to replace
772 /home/me/tmp/file.bundle, and pull from it.</p>
773 </div>
774 <div class="listingblock">
775 <div class="content">
776 <pre>machineB$ cd R2
777 machineB$ git pull</pre>
778 </div>
779 </div>
780 <div class="paragraph">
781 <p>If you know up to what commit the intended recipient repository should
782 have the necessary objects, you can use that knowledge to specify the
783 prerequisites, giving a cut-off point to limit the revisions and objects that go
784 in the resulting bundle. The previous example used the lastR2bundle tag
785 for this purpose, but you can use any other options that you would give to
786 the <a href="git-log.html">git-log(1)</a> command. Here are more examples:</p>
787 </div>
788 <div class="paragraph">
789 <p>You can use a tag that is present in both:</p>
790 </div>
791 <div class="listingblock">
792 <div class="content">
793 <pre>$ git bundle create mybundle v1.0.0..master</pre>
794 </div>
795 </div>
796 <div class="paragraph">
797 <p>You can use a prerequisite based on time:</p>
798 </div>
799 <div class="listingblock">
800 <div class="content">
801 <pre>$ git bundle create mybundle --since=10.days master</pre>
802 </div>
803 </div>
804 <div class="paragraph">
805 <p>You can use the number of commits:</p>
806 </div>
807 <div class="listingblock">
808 <div class="content">
809 <pre>$ git bundle create mybundle -10 master</pre>
810 </div>
811 </div>
812 <div class="paragraph">
813 <p>You can run <code>git-bundle verify</code> to see if you can extract from a bundle
814 that was created with a prerequisite:</p>
815 </div>
816 <div class="listingblock">
817 <div class="content">
818 <pre>$ git bundle verify mybundle</pre>
819 </div>
820 </div>
821 <div class="paragraph">
822 <p>This will list what commits you must have in order to extract from the
823 bundle and will error out if you do not have them.</p>
824 </div>
825 <div class="paragraph">
826 <p>A bundle from a recipient repository&#8217;s point of view is just like a
827 regular repository which it fetches or pulls from. You can, for example, map
828 references when fetching:</p>
829 </div>
830 <div class="listingblock">
831 <div class="content">
832 <pre>$ git fetch mybundle master:localRef</pre>
833 </div>
834 </div>
835 <div class="paragraph">
836 <p>You can also see what references it offers:</p>
837 </div>
838 <div class="listingblock">
839 <div class="content">
840 <pre>$ git ls-remote mybundle</pre>
841 </div>
842 </div>
843 </div>
844 </div>
845 <div class="sect1">
846 <h2 id="_file_format">FILE FORMAT</h2>
847 <div class="sectionbody">
848 <div class="paragraph">
849 <p>See <a href="gitformat-bundle.html">gitformat-bundle(5)</a>.</p>
850 </div>
851 </div>
852 </div>
853 <div class="sect1">
854 <h2 id="_git">GIT</h2>
855 <div class="sectionbody">
856 <div class="paragraph">
857 <p>Part of the <a href="git.html">git(1)</a> suite</p>
858 </div>
859 </div>
860 </div>
861 </div>
862 <div id="footer">
863 <div id="footer-text">
864 Last updated 2023-03-19 15:16:41 -0700
865 </div>
866 </div>
867 </body>
868 </html>