2 <html xmlns=
"http://www.w3.org/1999/xhtml" lang=
"en">
4 <meta charset=
"UTF-8"/>
5 <meta http-equiv=
"X-UA-Compatible" content=
"IE=edge"/>
6 <meta name=
"viewport" content=
"width=device-width, initial-scale=1.0"/>
7 <meta name=
"generator" content=
"Asciidoctor 2.0.20"/>
8 <title>giteveryday(
7)
</title>
9 <link rel=
"stylesheet" href=
"https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700"/>
11 /*! Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */
12 /* Uncomment the following line when using as a custom stylesheet */
13 /* @import
"https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700"; */
14 html{font-family:sans-serif;-webkit-text-size-adjust:
100%}
16 a:focus{outline:thin dotted}
17 a:active,a:hover{outline:
0}
18 h1{font-size:
2em;margin:
.67em
0}
19 b,strong{font-weight:bold}
21 abbr[title]{cursor:help;border-bottom:
1px dotted #dddddf;text-decoration:none}
22 dfn{font-style:italic}
24 mark{background:#ff0;color:#
000}
25 code,kbd,pre,samp{font-family:monospace;font-size:
1em}
26 pre{white-space:pre-wrap}
27 q{quotes:
"\201C" "\201D" "\2018" "\2019"}
29 sub,sup{font-size:
75%;line-height:
0;position:relative;vertical-align:baseline}
33 svg:not(:root){overflow:hidden}
35 audio,video{display:inline-block}
36 audio:not([controls]){display:none;height:
0}
37 fieldset{border:
1px solid silver;margin:
0 2px;padding:
.35em
.625em
.75em}
38 legend{border:
0;padding:
0}
39 button,input,select,textarea{font-family:inherit;font-size:
100%;margin:
0}
40 button,input{line-height:normal}
41 button,select{text-transform:none}
42 button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}
43 button[disabled],html input[disabled]{cursor:default}
44 input[type=checkbox],input[type=radio]{padding:
0}
45 button::-moz-focus-inner,input::-moz-focus-inner{border:
0;padding:
0}
46 textarea{overflow:auto;vertical-align:top}
47 table{border-collapse:collapse;border-spacing:
0}
48 *,::before,::after{box-sizing:border-box}
49 html,body{font-size:
100%}
50 body{background:#fff;color:rgba(
0,
0,
0,
.8);padding:
0;margin:
0;font-family:
"Noto Serif",
"DejaVu Serif",serif;line-height:
1;position:relative;cursor:auto;-moz-tab-size:
4;-o-tab-size:
4;tab-size:
4;word-wrap:anywhere;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}
51 a:hover{cursor:pointer}
52 img,object,embed{max-width:
100%;height:auto}
53 object,embed{height:
100%}
54 img{-ms-interpolation-mode:bicubic}
55 .left{float:left!important}
56 .right{float:right!important}
57 .text-left{text-align:left!important}
58 .text-right{text-align:right!important}
59 .text-center{text-align:center!important}
60 .text-justify{text-align:justify!important}
62 img,object,svg{display:inline-block;vertical-align:middle}
63 textarea{height:auto;min-height:
50px}
65 .subheader,.admonitionblock td.content
>.title,.audioblock
>.title,.exampleblock
>.title,.imageblock
>.title,.listingblock
>.title,.literalblock
>.title,.stemblock
>.title,.openblock
>.title,.paragraph
>.title,.quoteblock
>.title,table.tableblock
>.title,.verseblock
>.title,.videoblock
>.title,.dlist
>.title,.olist
>.title,.ulist
>.title,.qlist
>.title,.hdlist
>.title{line-height:
1.45;color:#
7a2518;font-weight:
400;margin-top:
0;margin-bottom:
.25em}
66 div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock
>.content
>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:
0;padding:
0}
67 a{color:#
2156a5;text-decoration:underline;line-height:inherit}
68 a:hover,a:focus{color:#
1d4b8f}
70 p{line-height:
1.6;margin-bottom:
1.25em;text-rendering:optimizeLegibility}
71 p aside{font-size:
.875em;line-height:
1.35;font-style:italic}
72 h1,h2,h3,#toctitle,.sidebarblock
>.content
>.title,h4,h5,h6{font-family:
"Open Sans",
"DejaVu Sans",sans-serif;font-weight:
300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:
1em;margin-bottom:
.5em;line-height:
1.0125em}
73 h1 small,h2 small,h3 small,#toctitle small,.sidebarblock
>.content
>.title small,h4 small,h5 small,h6 small{font-size:
60%;color:#e99b8f;line-height:
0}
75 h2{font-size:
1.6875em}
76 h3,#toctitle,.sidebarblock
>.content
>.title{font-size:
1.375em}
77 h4,h5{font-size:
1.125em}
79 hr{border:solid #dddddf;border-width:
1px
0 0;clear:both;margin:
1.25em
0 1.1875em}
80 em,i{font-style:italic;line-height:inherit}
81 strong,b{font-weight:bold;line-height:inherit}
82 small{font-size:
60%;line-height:inherit}
83 code{font-family:
"Droid Sans Mono",
"DejaVu Sans Mono",monospace;font-weight:
400;color:rgba(
0,
0,
0,
.9)}
84 ul,ol,dl{line-height:
1.6;margin-bottom:
1.25em;list-style-position:outside;font-family:inherit}
85 ul,ol{margin-left:
1.5em}
86 ul li ul,ul li ol{margin-left:
1.25em;margin-bottom:
0}
87 ul.circle{list-style-type:circle}
88 ul.disc{list-style-type:disc}
89 ul.square{list-style-type:square}
90 ul.circle ul:not([class]),ul.disc ul:not([class]),ul.square ul:not([class]){list-style:inherit}
91 ol li ul,ol li ol{margin-left:
1.25em;margin-bottom:
0}
92 dl dt{margin-bottom:
.3125em;font-weight:bold}
93 dl dd{margin-bottom:
1.25em}
94 blockquote{margin:
0 0 1.25em;padding:
.5625em
1.25em
0 1.1875em;border-left:
1px solid #ddd}
95 blockquote,blockquote p{line-height:
1.6;color:rgba(
0,
0,
0,
.85)}
96 @media screen and (min-width:
768px){h1,h2,h3,#toctitle,.sidebarblock
>.content
>.title,h4,h5,h6{line-height:
1.2}
98 h2{font-size:
2.3125em}
99 h3,#toctitle,.sidebarblock
>.content
>.title{font-size:
1.6875em}
100 h4{font-size:
1.4375em}}
101 table{background:#fff;margin-bottom:
1.25em;border:
1px solid #dedede;word-wrap:normal}
102 table thead,table tfoot{background:#f7f8f7}
103 table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:
.5em
.625em
.625em;font-size:inherit;color:rgba(
0,
0,
0,
.8);text-align:left}
104 table tr th,table tr td{padding:
.5625em
.625em;font-size:inherit;color:rgba(
0,
0,
0,
.8)}
105 table tr.even,table tr.alt{background:#f8f8f7}
106 table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{line-height:
1.6}
107 h1,h2,h3,#toctitle,.sidebarblock
>.content
>.title,h4,h5,h6{line-height:
1.2;word-spacing:-
.05em}
108 h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock
>.content
>.title strong,h4 strong,h5 strong,h6 strong{font-weight:
400}
109 .center{margin-left:auto;margin-right:auto}
111 .clearfix::before,.clearfix::after,.float-group::before,.float-group::after{content:
" ";display:table}
112 .clearfix::after,.float-group::after{clear:both}
113 :not(pre).nobreak{word-wrap:normal}
114 :not(pre).nowrap{white-space:nowrap}
115 :not(pre).pre-wrap{white-space:pre-wrap}
116 :not(pre):not([class^=L])
>code{font-size:
.9375em;font-style:normal!important;letter-spacing:
0;padding:
.1em
.5ex;word-spacing:-
.15em;background:#f7f7f8;border-radius:
4px;line-height:
1.45;text-rendering:optimizeSpeed}
117 pre{color:rgba(
0,
0,
0,
.9);font-family:
"Droid Sans Mono",
"DejaVu Sans Mono",monospace;line-height:
1.45;text-rendering:optimizeSpeed}
118 pre code,pre pre{color:inherit;font-size:inherit;line-height:inherit}
119 pre
>code{display:block}
120 pre.nowrap,pre.nowrap pre{white-space:pre;word-wrap:normal}
121 em em{font-style:normal}
122 strong strong{font-weight:
400}
123 .keyseq{color:rgba(
51,
51,
51,
.8)}
124 kbd{font-family:
"Droid Sans Mono",
"DejaVu Sans Mono",monospace;display:inline-block;color:rgba(
0,
0,
0,
.8);font-size:
.65em;line-height:
1.45;background:#f7f7f7;border:
1px solid #ccc;border-radius:
3px;box-shadow:
0 1px
0 rgba(
0,
0,
0,
.2),inset
0 0 0 .1em #fff;margin:
0 .15em;padding:
.2em
.5em;vertical-align:middle;position:relative;top:-
.1em;white-space:nowrap}
125 .keyseq kbd:first-child{margin-left:
0}
126 .keyseq kbd:last-child{margin-right:
0}
127 .menuseq,.menuref{color:#
000}
128 .menuseq b:not(.caret),.menuref{font-weight:inherit}
129 .menuseq{word-spacing:-
.02em}
130 .menuseq b.caret{font-size:
1.25em;line-height:
.8}
131 .menuseq i.caret{font-weight:bold;text-align:center;width:
.45em}
132 b.button::before,b.button::after{position:relative;top:-
1px;font-weight:
400}
133 b.button::before{content:
"[";padding:
0 3px
0 2px}
134 b.button::after{content:
"]";padding:
0 2px
0 3px}
135 p a
>code:hover{color:rgba(
0,
0,
0,
.9)}
136 #header,#content,#footnotes,#footer{width:
100%;margin:
0 auto;max-width:
62.5em;*zoom:
1;position:relative;padding-left:
.9375em;padding-right:
.9375em}
137 #header::before,#header::after,#content::before,#content::after,#footnotes::before,#footnotes::after,#footer::before,#footer::after{content:
" ";display:table}
138 #header::after,#content::after,#footnotes::after,#footer::after{clear:both}
139 #content{margin-top:
1.25em}
140 #content::before{content:none}
141 #header
>h1:first-child{color:rgba(
0,
0,
0,
.85);margin-top:
2.25rem;margin-bottom:
0}
142 #header
>h1:first-child+#toc{margin-top:
8px;border-top:
1px solid #dddddf}
143 #header
>h1:only-child,body.toc2 #header
>h1:nth-last-child(
2){border-bottom:
1px solid #dddddf;padding-bottom:
8px}
144 #header .details{border-bottom:
1px solid #dddddf;line-height:
1.45;padding-top:
.25em;padding-bottom:
.25em;padding-left:
.25em;color:rgba(
0,
0,
0,
.6);display:flex;flex-flow:row wrap}
145 #header .details span:first-child{margin-left:-
.125em}
146 #header .details span.email a{color:rgba(
0,
0,
0,
.85)}
147 #header .details br{display:none}
148 #header .details br+span::before{content:
"\00a0\2013\00a0"}
149 #header .details br+span.author::before{content:
"\00a0\22c5\00a0";color:rgba(
0,
0,
0,
.85)}
150 #header .details br+span#revremark::before{content:
"\00a0|\00a0"}
151 #header #revnumber{text-transform:capitalize}
152 #header #revnumber::after{content:
"\00a0"}
153 #content
>h1:first-child:not([class]){color:rgba(
0,
0,
0,
.85);border-bottom:
1px solid #dddddf;padding-bottom:
8px;margin-top:
0;padding-top:
1rem;margin-bottom:
1.25rem}
154 #toc{border-bottom:
1px solid #e7e7e9;padding-bottom:
.5em}
155 #toc
>ul{margin-left:
.125em}
156 #toc ul.sectlevel0
>li
>a{font-style:italic}
157 #toc ul.sectlevel0 ul.sectlevel1{margin:
.5em
0}
158 #toc ul{font-family:
"Open Sans",
"DejaVu Sans",sans-serif;list-style-type:none}
159 #toc li{line-height:
1.3334;margin-top:
.3334em}
160 #toc a{text-decoration:none}
161 #toc a:active{text-decoration:underline}
162 #toctitle{color:#
7a2518;font-size:
1.2em}
163 @media screen and (min-width:
768px){#toctitle{font-size:
1.375em}
164 body.toc2{padding-left:
15em;padding-right:
0}
165 #toc.toc2{margin-top:
0!important;background:#f8f8f7;position:fixed;width:
15em;left:
0;top:
0;border-right:
1px solid #e7e7e9;border-top-width:
0!important;border-bottom-width:
0!important;z-index:
1000;padding:
1.25em
1em;height:
100%;overflow:auto}
166 #toc.toc2 #toctitle{margin-top:
0;margin-bottom:
.8rem;font-size:
1.2em}
167 #toc.toc2
>ul{font-size:
.9em;margin-bottom:
0}
168 #toc.toc2 ul ul{margin-left:
0;padding-left:
1em}
169 #toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:
0;margin-top:
.5em;margin-bottom:
.5em}
170 body.toc2.toc-right{padding-left:
0;padding-right:
15em}
171 body.toc2.toc-right #toc.toc2{border-right-width:
0;border-left:
1px solid #e7e7e9;left:auto;right:
0}}
172 @media screen and (min-width:
1280px){body.toc2{padding-left:
20em;padding-right:
0}
173 #toc.toc2{width:
20em}
174 #toc.toc2 #toctitle{font-size:
1.375em}
175 #toc.toc2
>ul{font-size:
.95em}
176 #toc.toc2 ul ul{padding-left:
1.25em}
177 body.toc2.toc-right{padding-left:
0;padding-right:
20em}}
178 #content #toc{border:
1px solid #e0e0dc;margin-bottom:
1.25em;padding:
1.25em;background:#f8f8f7;border-radius:
4px}
179 #content #toc
>:first-child{margin-top:
0}
180 #content #toc
>:last-child{margin-bottom:
0}
181 #footer{max-width:none;background:rgba(
0,
0,
0,
.8);padding:
1.25em}
182 #footer-text{color:hsla(
0,
0%,
100%,
.8);line-height:
1.44}
183 #content{margin-bottom:
.625em}
184 .sect1{padding-bottom:
.625em}
185 @media screen and (min-width:
768px){#content{margin-bottom:
1.25em}
186 .sect1{padding-bottom:
1.25em}}
187 .sect1:last-child{padding-bottom:
0}
188 .sect1+.sect1{border-top:
1px solid #e7e7e9}
189 #content h1
>a.anchor,h2
>a.anchor,h3
>a.anchor,#toctitle
>a.anchor,.sidebarblock
>.content
>.title
>a.anchor,h4
>a.anchor,h5
>a.anchor,h6
>a.anchor{position:absolute;z-index:
1001;width:
1.5ex;margin-left:-
1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:
400}
190 #content h1
>a.anchor::before,h2
>a.anchor::before,h3
>a.anchor::before,#toctitle
>a.anchor::before,.sidebarblock
>.content
>.title
>a.anchor::before,h4
>a.anchor::before,h5
>a.anchor::before,h6
>a.anchor::before{content:
"\00A7";font-size:
.85em;display:block;padding-top:
.1em}
191 #content h1:hover
>a.anchor,#content h1
>a.anchor:hover,h2:hover
>a.anchor,h2
>a.anchor:hover,h3:hover
>a.anchor,#toctitle:hover
>a.anchor,.sidebarblock
>.content
>.title:hover
>a.anchor,h3
>a.anchor:hover,#toctitle
>a.anchor:hover,.sidebarblock
>.content
>.title
>a.anchor:hover,h4:hover
>a.anchor,h4
>a.anchor:hover,h5:hover
>a.anchor,h5
>a.anchor:hover,h6:hover
>a.anchor,h6
>a.anchor:hover{visibility:visible}
192 #content h1
>a.link,h2
>a.link,h3
>a.link,#toctitle
>a.link,.sidebarblock
>.content
>.title
>a.link,h4
>a.link,h5
>a.link,h6
>a.link{color:#ba3925;text-decoration:none}
193 #content h1
>a.link:hover,h2
>a.link:hover,h3
>a.link:hover,#toctitle
>a.link:hover,.sidebarblock
>.content
>.title
>a.link:hover,h4
>a.link:hover,h5
>a.link:hover,h6
>a.link:hover{color:#a53221}
194 details,.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:
1.25em}
195 details{margin-left:
1.25rem}
196 details
>summary{cursor:pointer;display:block;position:relative;line-height:
1.6;margin-bottom:
.625rem;outline:none;-webkit-tap-highlight-color:transparent}
197 details
>summary::-webkit-details-marker{display:none}
198 details
>summary::before{content:
"";border:solid transparent;border-left:solid;border-width:
.3em
0 .3em
.5em;position:absolute;top:
.5em;left:-
1.25rem;transform:translateX(
15%)}
199 details[open]
>summary::before{border:solid transparent;border-top:solid;border-width:
.5em
.3em
0;transform:translateY(
15%)}
200 details
>summary::after{content:
"";width:
1.25rem;height:
1em;position:absolute;top:
.3em;left:-
1.25rem}
201 .admonitionblock td.content
>.title,.audioblock
>.title,.exampleblock
>.title,.imageblock
>.title,.listingblock
>.title,.literalblock
>.title,.stemblock
>.title,.openblock
>.title,.paragraph
>.title,.quoteblock
>.title,table.tableblock
>.title,.verseblock
>.title,.videoblock
>.title,.dlist
>.title,.olist
>.title,.ulist
>.title,.qlist
>.title,.hdlist
>.title{text-rendering:optimizeLegibility;text-align:left;font-family:
"Noto Serif",
"DejaVu Serif",serif;font-size:
1rem;font-style:italic}
202 table.tableblock.fit-content
>caption.title{white-space:nowrap;width:
0}
203 .paragraph.lead
>p,#preamble
>.sectionbody
>[class=paragraph]:first-of-type p{font-size:
1.21875em;line-height:
1.6;color:rgba(
0,
0,
0,
.85)}
204 .admonitionblock
>table{border-collapse:separate;border:
0;background:none;width:
100%}
205 .admonitionblock
>table td.icon{text-align:center;width:
80px}
206 .admonitionblock
>table td.icon img{max-width:none}
207 .admonitionblock
>table td.icon .title{font-weight:bold;font-family:
"Open Sans",
"DejaVu Sans",sans-serif;text-transform:uppercase}
208 .admonitionblock
>table td.content{padding-left:
1.125em;padding-right:
1.25em;border-left:
1px solid #dddddf;color:rgba(
0,
0,
0,
.6);word-wrap:anywhere}
209 .admonitionblock
>table td.content
>:last-child
>:last-child{margin-bottom:
0}
210 .exampleblock
>.content{border:
1px solid #e6e6e6;margin-bottom:
1.25em;padding:
1.25em;background:#fff;border-radius:
4px}
211 .sidebarblock{border:
1px solid #dbdbd6;margin-bottom:
1.25em;padding:
1.25em;background:#f3f3f2;border-radius:
4px}
212 .sidebarblock
>.content
>.title{color:#
7a2518;margin-top:
0;text-align:center}
213 .exampleblock
>.content
>:first-child,.sidebarblock
>.content
>:first-child{margin-top:
0}
214 .exampleblock
>.content
>:last-child,.exampleblock
>.content
>:last-child
>:last-child,.exampleblock
>.content .olist
>ol
>li:last-child
>:last-child,.exampleblock
>.content .ulist
>ul
>li:last-child
>:last-child,.exampleblock
>.content .qlist
>ol
>li:last-child
>:last-child,.sidebarblock
>.content
>:last-child,.sidebarblock
>.content
>:last-child
>:last-child,.sidebarblock
>.content .olist
>ol
>li:last-child
>:last-child,.sidebarblock
>.content .ulist
>ul
>li:last-child
>:last-child,.sidebarblock
>.content .qlist
>ol
>li:last-child
>:last-child{margin-bottom:
0}
215 .literalblock pre,.listingblock
>.content
>pre{border-radius:
4px;overflow-x:auto;padding:
1em;font-size:
.8125em}
216 @media screen and (min-width:
768px){.literalblock pre,.listingblock
>.content
>pre{font-size:
.90625em}}
217 @media screen and (min-width:
1280px){.literalblock pre,.listingblock
>.content
>pre{font-size:
1em}}
218 .literalblock pre,.listingblock
>.content
>pre:not(.highlight),.listingblock
>.content
>pre[class=highlight],.listingblock
>.content
>pre[class^=
"highlight "]{background:#f7f7f8}
219 .literalblock.output pre{color:#f7f7f8;background:rgba(
0,
0,
0,
.9)}
220 .listingblock
>.content{position:relative}
221 .listingblock code[data-lang]::before{display:none;content:attr(data-lang);position:absolute;font-size:
.75em;top:
.425rem;right:
.5rem;line-height:
1;text-transform:uppercase;color:inherit;opacity:
.5}
222 .listingblock:hover code[data-lang]::before{display:block}
223 .listingblock.terminal pre .command::before{content:attr(data-prompt);padding-right:
.5em;color:inherit;opacity:
.5}
224 .listingblock.terminal pre .command:not([data-prompt])::before{content:
"$"}
225 .listingblock pre.highlightjs{padding:
0}
226 .listingblock pre.highlightjs
>code{padding:
1em;border-radius:
4px}
227 .listingblock pre.prettyprint{border-width:
0}
228 .prettyprint{background:#f7f7f8}
229 pre.prettyprint .linenums{line-height:
1.45;margin-left:
2em}
230 pre.prettyprint li{background:none;list-style-type:inherit;padding-left:
0}
231 pre.prettyprint li code[data-lang]::before{opacity:
1}
232 pre.prettyprint li:not(:first-child) code[data-lang]::before{display:none}
233 table.linenotable{border-collapse:separate;border:
0;margin-bottom:
0;background:none}
234 table.linenotable td[class]{color:inherit;vertical-align:top;padding:
0;line-height:inherit;white-space:normal}
235 table.linenotable td.code{padding-left:
.75em}
236 table.linenotable td.linenos,pre.pygments .linenos{border-right:
1px solid;opacity:
.35;padding-right:
.5em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}
237 pre.pygments span.linenos{display:inline-block;margin-right:
.75em}
238 .quoteblock{margin:
0 1em
1.25em
1.5em;display:table}
239 .quoteblock:not(.excerpt)
>.title{margin-left:-
1.5em;margin-bottom:
.75em}
240 .quoteblock blockquote,.quoteblock p{color:rgba(
0,
0,
0,
.85);font-size:
1.15rem;line-height:
1.75;word-spacing:
.1em;letter-spacing:
0;font-style:italic;text-align:justify}
241 .quoteblock blockquote{margin:
0;padding:
0;border:
0}
242 .quoteblock blockquote::before{content:
"\201c";float:left;font-size:
2.75em;font-weight:bold;line-height:
.6em;margin-left:-
.6em;color:#
7a2518;text-shadow:
0 1px
2px rgba(
0,
0,
0,
.1)}
243 .quoteblock blockquote
>.paragraph:last-child p{margin-bottom:
0}
244 .quoteblock .attribution{margin-top:
.75em;margin-right:
.5ex;text-align:right}
245 .verseblock{margin:
0 1em
1.25em}
246 .verseblock pre{font-family:
"Open Sans",
"DejaVu Sans",sans-serif;font-size:
1.15rem;color:rgba(
0,
0,
0,
.85);font-weight:
300;text-rendering:optimizeLegibility}
247 .verseblock pre strong{font-weight:
400}
248 .verseblock .attribution{margin-top:
1.25rem;margin-left:
.5ex}
249 .quoteblock .attribution,.verseblock .attribution{font-size:
.9375em;line-height:
1.45;font-style:italic}
250 .quoteblock .attribution br,.verseblock .attribution br{display:none}
251 .quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-
.025em;color:rgba(
0,
0,
0,
.6)}
252 .quoteblock.abstract blockquote::before,.quoteblock.excerpt blockquote::before,.quoteblock .quoteblock blockquote::before{display:none}
253 .quoteblock.abstract blockquote,.quoteblock.abstract p,.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{line-height:
1.6;word-spacing:
0}
254 .quoteblock.abstract{margin:
0 1em
1.25em;display:block}
255 .quoteblock.abstract
>.title{margin:
0 0 .375em;font-size:
1.15em;text-align:center}
256 .quoteblock.excerpt
>blockquote,.quoteblock .quoteblock{padding:
0 0 .25em
1em;border-left:
.25em solid #dddddf}
257 .quoteblock.excerpt,.quoteblock .quoteblock{margin-left:
0}
258 .quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{color:inherit;font-size:
1.0625rem}
259 .quoteblock.excerpt .attribution,.quoteblock .quoteblock .attribution{color:inherit;font-size:
.85rem;text-align:left;margin-right:
0}
260 p.tableblock:last-child{margin-bottom:
0}
261 td.tableblock
>.content{margin-bottom:
1.25em;word-wrap:anywhere}
262 td.tableblock
>.content
>:last-child{margin-bottom:-
1.25em}
263 table.tableblock,th.tableblock,td.tableblock{border:
0 solid #dedede}
264 table.grid-all
>*
>tr
>*{border-width:
1px}
265 table.grid-cols
>*
>tr
>*{border-width:
0 1px}
266 table.grid-rows
>*
>tr
>*{border-width:
1px
0}
267 table.frame-all{border-width:
1px}
268 table.frame-ends{border-width:
1px
0}
269 table.frame-sides{border-width:
0 1px}
270 table.frame-none
>colgroup+*
>:first-child
>*,table.frame-sides
>colgroup+*
>:first-child
>*{border-top-width:
0}
271 table.frame-none
>:last-child
>:last-child
>*,table.frame-sides
>:last-child
>:last-child
>*{border-bottom-width:
0}
272 table.frame-none
>*
>tr
>:first-child,table.frame-ends
>*
>tr
>:first-child{border-left-width:
0}
273 table.frame-none
>*
>tr
>:last-child,table.frame-ends
>*
>tr
>:last-child{border-right-width:
0}
274 table.stripes-all
>*
>tr,table.stripes-odd
>*
>tr:nth-of-type(odd),table.stripes-even
>*
>tr:nth-of-type(even),table.stripes-hover
>*
>tr:hover{background:#f8f8f7}
275 th.halign-left,td.halign-left{text-align:left}
276 th.halign-right,td.halign-right{text-align:right}
277 th.halign-center,td.halign-center{text-align:center}
278 th.valign-top,td.valign-top{vertical-align:top}
279 th.valign-bottom,td.valign-bottom{vertical-align:bottom}
280 th.valign-middle,td.valign-middle{vertical-align:middle}
281 table thead th,table tfoot th{font-weight:bold}
282 tbody tr th{background:#f7f8f7}
283 tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(
0,
0,
0,
.8);font-weight:bold}
284 p.tableblock
>code:only-child{background:none;padding:
0}
285 p.tableblock{font-size:
1em}
286 ol{margin-left:
1.75em}
287 ul li ol{margin-left:
1.5em}
288 dl dd{margin-left:
1.125em}
289 dl dd:last-child,dl dd:last-child
>:last-child{margin-bottom:
0}
290 li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:
.625em}
291 ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none}
292 ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:
.625em}
293 ul.unstyled,ol.unstyled{margin-left:
0}
294 li
>p:empty:only-child::before{content:
"";display:inline-block}
295 ul.checklist
>li
>p:first-child{margin-left:-
1em}
296 ul.checklist
>li
>p:first-child
>.fa-square-o:first-child,ul.checklist
>li
>p:first-child
>.fa-check-square-o:first-child{width:
1.25em;font-size:
.8em;position:relative;bottom:
.125em}
297 ul.checklist
>li
>p:first-child
>input[type=checkbox]:first-child{margin-right:
.25em}
298 ul.inline{display:flex;flex-flow:row wrap;list-style:none;margin:
0 0 .625em -
1.25em}
299 ul.inline
>li{margin-left:
1.25em}
300 .unstyled dl dt{font-weight:
400;font-style:normal}
301 ol.arabic{list-style-type:decimal}
302 ol.decimal{list-style-type:decimal-leading-zero}
303 ol.loweralpha{list-style-type:lower-alpha}
304 ol.upperalpha{list-style-type:upper-alpha}
305 ol.lowerroman{list-style-type:lower-roman}
306 ol.upperroman{list-style-type:upper-roman}
307 ol.lowergreek{list-style-type:lower-greek}
308 .hdlist
>table,.colist
>table{border:
0;background:none}
309 .hdlist
>table
>tbody
>tr,.colist
>table
>tbody
>tr{background:none}
310 td.hdlist1,td.hdlist2{vertical-align:top;padding:
0 .625em}
311 td.hdlist1{font-weight:bold;padding-bottom:
1.25em}
312 td.hdlist2{word-wrap:anywhere}
313 .literalblock+.colist,.listingblock+.colist{margin-top:-
.5em}
314 .colist td:not([class]):first-child{padding:
.4em
.75em
0;line-height:
1;vertical-align:top}
315 .colist td:not([class]):first-child img{max-width:none}
316 .colist td:not([class]):last-child{padding:
.25em
0}
317 .thumb,.th{line-height:
0;display:inline-block;border:
4px solid #fff;box-shadow:
0 0 0 1px #ddd}
318 .imageblock.left{margin:
.25em
.625em
1.25em
0}
319 .imageblock.right{margin:
.25em
0 1.25em
.625em}
320 .imageblock
>.title{margin-bottom:
0}
321 .imageblock.thumb,.imageblock.th{border-width:
6px}
322 .imageblock.thumb
>.title,.imageblock.th
>.title{padding:
0 .125em}
323 .image.left,.image.right{margin-top:
.25em;margin-bottom:
.25em;display:inline-block;line-height:
0}
324 .image.left{margin-right:
.625em}
325 .image.right{margin-left:
.625em}
326 a.image{text-decoration:none;display:inline-block}
327 a.image object{pointer-events:none}
328 sup.footnote,sup.footnoteref{font-size:
.875em;position:static;vertical-align:super}
329 sup.footnote a,sup.footnoteref a{text-decoration:none}
330 sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline}
331 #footnotes{padding-top:
.75em;padding-bottom:
.75em;margin-bottom:
.625em}
332 #footnotes hr{width:
20%;min-width:
6.25em;margin:-
.25em
0 .75em;border-width:
1px
0 0}
333 #footnotes .footnote{padding:
0 .375em
0 .225em;line-height:
1.3334;font-size:
.875em;margin-left:
1.2em;margin-bottom:
.2em}
334 #footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none;margin-left:-
1.05em}
335 #footnotes .footnote:last-of-type{margin-bottom:
0}
336 #content #footnotes{margin-top:-
.625em;margin-bottom:
0;padding:
.75em
0}
337 div.unbreakable{page-break-inside:avoid}
338 .big{font-size:larger}
339 .small{font-size:smaller}
340 .underline{text-decoration:underline}
341 .overline{text-decoration:overline}
342 .line-through{text-decoration:line-through}
344 .aqua-background{background:#
00fafa}
346 .black-background{background:#
000}
348 .blue-background{background:#
0000fa}
349 .fuchsia{color:#bf00bf}
350 .fuchsia-background{background:#fa00fa}
352 .gray-background{background:#
7d7d7d}
353 .green{color:#
006000}
354 .green-background{background:#
007d00}
356 .lime-background{background:#
00fa00}
357 .maroon{color:#
600000}
358 .maroon-background{background:#
7d0000}
360 .navy-background{background:#
00007d}
361 .olive{color:#
606000}
362 .olive-background{background:#
7d7d00}
363 .purple{color:#
600060}
364 .purple-background{background:#
7d007d}
366 .red-background{background:#fa0000}
367 .silver{color:#
909090}
368 .silver-background{background:#bcbcbc}
370 .teal-background{background:#
007d7d}
371 .white{color:#bfbfbf}
372 .white-background{background:#fafafa}
373 .yellow{color:#bfbf00}
374 .yellow-background{background:#fafa00}
375 span.icon
>.fa{cursor:default}
376 a span.icon
>.fa{cursor:inherit}
377 .admonitionblock td.icon [class^=
"fa icon-"]{font-size:
2.5em;text-shadow:
1px
1px
2px rgba(
0,
0,
0,
.5);cursor:default}
378 .admonitionblock td.icon .icon-note::before{content:
"\f05a";color:#
19407c}
379 .admonitionblock td.icon .icon-tip::before{content:
"\f0eb";text-shadow:
1px
1px
2px rgba(
155,
155,
0,
.8);color:#
111}
380 .admonitionblock td.icon .icon-warning::before{content:
"\f071";color:#bf6900}
381 .admonitionblock td.icon .icon-caution::before{content:
"\f06d";color:#bf3400}
382 .admonitionblock td.icon .icon-important::before{content:
"\f06a";color:#bf0000}
383 .conum[data-value]{display:inline-block;color:#fff!important;background:rgba(
0,
0,
0,
.8);border-radius:
50%;text-align:center;font-size:
.75em;width:
1.67em;height:
1.67em;line-height:
1.67em;font-family:
"Open Sans",
"DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
384 .conum[data-value] *{color:#fff!important}
385 .conum[data-value]+b{display:none}
386 .conum[data-value]::after{content:attr(data-value)}
387 pre .conum[data-value]{position:relative;top:-
.125em}
388 b.conum *{color:inherit!important}
389 .conum:not([data-value]):empty{display:none}
390 dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}
391 h1,h2,p,td.content,span.alt,summary{letter-spacing:-
.01em}
392 p strong,td.content strong,div.footnote strong{letter-spacing:-
.005em}
393 p,blockquote,dt,td.content,td.hdlist1,span.alt,summary{font-size:
1.0625rem}
394 p{margin-bottom:
1.25rem}
395 .sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:
1em}
396 .exampleblock
>.content{background:#fffef7;border-color:#e0e0dc;box-shadow:
0 1px
4px #e0e0dc}
397 .print-only{display:none!important}
398 @page{margin:
1.25cm
.75cm}
399 @media print{*{box-shadow:none!important;text-shadow:none!important}
401 a{color:inherit!important;text-decoration:underline!important}
402 a.bare,a[href^=
"#"],a[href^=
"mailto:"]{text-decoration:none!important}
403 a[href^=
"http:"]:not(.bare)::after,a[href^=
"https:"]:not(.bare)::after{content:
"(" attr(href)
")";display:inline-block;font-size:
.875em;padding-left:
.25em}
404 abbr[title]{border-bottom:
1px dotted}
405 abbr[title]::after{content:
" (" attr(title)
")"}
406 pre,blockquote,tr,img,object,svg{page-break-inside:avoid}
407 thead{display:table-header-group}
409 p,blockquote,dt,td.content{font-size:
1em;orphans:
3;widows:
3}
410 h2,h3,#toctitle,.sidebarblock
>.content
>.title{page-break-after:avoid}
411 #header,#content,#footnotes,#footer{max-width:none}
412 #toc,.sidebarblock,.exampleblock
>.content{background:none!important}
413 #toc{border-bottom:
1px solid #dddddf!important;padding-bottom:
0!important}
414 body.book #header{text-align:center}
415 body.book #header
>h1:first-child{border:
0!important;margin:
2.5em
0 1em}
416 body.book #header .details{border:
0!important;display:block;padding:
0!important}
417 body.book #header .details span:first-child{margin-left:
0!important}
418 body.book #header .details br{display:block}
419 body.book #header .details br+span::before{content:none!important}
420 body.book #toc{border:
0!important;text-align:left!important;padding:
0!important;margin:
0!important}
421 body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1
>h2{page-break-before:always}
422 .listingblock code[data-lang]::before{display:block}
423 #footer{padding:
0 .9375em}
424 .hide-on-print{display:none!important}
425 .print-only{display:block!important}
426 .hide-for-print{display:none!important}
427 .show-for-print{display:inherit!important}}
428 @media amzn-kf8,print{#header
>h1:first-child{margin-top:
1.25rem}
429 .sect1{padding:
0!important}
430 .sect1+.sect1{border:
0}
431 #footer{background:none}
432 #footer-text{color:rgba(
0,
0,
0,
.6);font-size:
.9em}}
433 @media amzn-kf8{#header,#content,#footnotes,#footer{padding:
0}}
441 <body class=
"manpage">
443 <h1>giteveryday(
7) Manual Page
</h1>
444 <h2 id=
"_name">NAME
</h2>
445 <div class=
"sectionbody">
446 <p>giteveryday - A useful minimum set of commands for Everyday Git
</p>
451 <h2 id=
"_synopsis">SYNOPSIS
</h2>
452 <div class=
"sectionbody">
453 <div class=
"paragraph">
454 <p>Everyday Git With
20 Commands Or So
</p>
459 <h2 id=
"_description">DESCRIPTION
</h2>
460 <div class=
"sectionbody">
461 <div class=
"paragraph">
462 <p>Git users can broadly be grouped into four categories for the purposes of
463 describing here a small set of useful commands for everyday Git.
</p>
468 <p><a href=
"#STANDALONE">Individual Developer (Standalone)
</a> commands are essential
469 for anybody who makes a commit, even for somebody who works alone.
</p>
472 <p>If you work with other people, you will need commands listed in
473 the
<a href=
"#PARTICIPANT">Individual Developer (Participant)
</a> section as well.
</p>
476 <p>People who play the
<a href=
"#INTEGRATOR">Integrator
</a> role need to learn some
477 more commands in addition to the above.
</p>
480 <p><a href=
"#ADMINISTRATION">Repository Administration
</a> commands are for system
481 administrators who are responsible for the care and feeding
482 of Git repositories.
</p>
489 <h2 id=
"_individual_developer_standalone">Individual Developer (Standalone)
<a id=
"STANDALONE"></a></h2>
490 <div class=
"sectionbody">
491 <div class=
"paragraph">
492 <p>A standalone individual developer does not exchange patches with
493 other people, and works alone in a single repository, using the
494 following commands.
</p>
499 <p><a href=
"git-init.html">git-init(
1)
</a> to create a new repository.
</p>
502 <p><a href=
"git-log.html">git-log(
1)
</a> to see what happened.
</p>
505 <p><a href=
"git-switch.html">git-switch(
1)
</a> and
<a href=
"git-branch.html">git-branch(
1)
</a> to switch
509 <p><a href=
"git-add.html">git-add(
1)
</a> to manage the index file.
</p>
512 <p><a href=
"git-diff.html">git-diff(
1)
</a> and
<a href=
"git-status.html">git-status(
1)
</a> to see what
513 you are in the middle of doing.
</p>
516 <p><a href=
"git-commit.html">git-commit(
1)
</a> to advance the current branch.
</p>
519 <p><a href=
"git-restore.html">git-restore(
1)
</a> to undo changes.
</p>
522 <p><a href=
"git-merge.html">git-merge(
1)
</a> to merge between local branches.
</p>
525 <p><a href=
"git-rebase.html">git-rebase(
1)
</a> to maintain topic branches.
</p>
528 <p><a href=
"git-tag.html">git-tag(
1)
</a> to mark a known point.
</p>
533 <h3 id=
"_examples">Examples
</h3>
536 <dt class=
"hdlist1">Use a tarball as a starting point for a new repository.
</dt>
538 <div class=
"listingblock">
539 <div class=
"content">
540 <pre>$ tar zxf frotz.tar.gz
543 $ git add .
<b class=
"conum">(
1)
</b>
544 $ git commit -m
"import of frotz source tree."
545 $ git tag v2.43
<b class=
"conum">(
2)
</b></pre>
548 <div class=
"colist arabic">
551 <p>add everything under the current directory.
</p>
554 <p>make a lightweight, unannotated tag.
</p>
559 <dt class=
"hdlist1">Create a topic branch and develop.
</dt>
561 <div class=
"listingblock">
562 <div class=
"content">
563 <pre>$ git switch -c alsa-audio
<b class=
"conum">(
1)
</b>
565 $ git restore curses/ux_audio_oss.c
<b class=
"conum">(
2)
</b>
566 $ git add curses/ux_audio_alsa.c
<b class=
"conum">(
3)
</b>
568 $ git diff HEAD
<b class=
"conum">(
4)
</b>
569 $ git commit -a -s
<b class=
"conum">(
5)
</b>
571 $ git diff HEAD^
<b class=
"conum">(
6)
</b>
572 $ git commit -a --amend
<b class=
"conum">(
7)
</b>
573 $ git switch master
<b class=
"conum">(
8)
</b>
574 $ git merge alsa-audio
<b class=
"conum">(
9)
</b>
575 $ git log --since='
3 days ago'
<b class=
"conum">(
10)
</b>
576 $ git log v2.43.. curses/
<b class=
"conum">(
11)
</b></pre>
579 <div class=
"colist arabic">
582 <p>create a new topic branch.
</p>
585 <p>revert your botched changes in
<code>curses/ux_audio_oss.c
</code>.
</p>
588 <p>you need to tell Git if you added a new file; removal and
589 modification will be caught if you do
<code>git
</code> <code>commit
</code> <code>-a
</code> later.
</p>
592 <p>to see what changes you are committing.
</p>
595 <p>commit everything, as you have tested, with your sign-off.
</p>
598 <p>look at all your changes including the previous commit.
</p>
601 <p>amend the previous commit, adding all your new changes,
602 using your original message.
</p>
605 <p>switch to the master branch.
</p>
608 <p>merge a topic branch into your master branch.
</p>
611 <p>review commit logs; other forms to limit output can be
612 combined and include
<code>-
10</code> (to show up to
10 commits),
613 <code>--until=
2005-
12-
10</code>, etc.
</p>
616 <p>view only the changes that touch what
’s in
<code>curses/
</code>
617 directory, since
<code>v2.43
</code> tag.
</p>
628 <h2 id=
"_individual_developer_participant">Individual Developer (Participant)
<a id=
"PARTICIPANT"></a></h2>
629 <div class=
"sectionbody">
630 <div class=
"paragraph">
631 <p>A developer working as a participant in a group project needs to
632 learn how to communicate with others, and uses these commands in
633 addition to the ones needed by a standalone developer.
</p>
638 <p><a href=
"git-clone.html">git-clone(
1)
</a> from the upstream to prime your local
642 <p><a href=
"git-pull.html">git-pull(
1)
</a> and
<a href=
"git-fetch.html">git-fetch(
1)
</a> from
"origin"
643 to keep up-to-date with the upstream.
</p>
646 <p><a href=
"git-push.html">git-push(
1)
</a> to shared repository, if you adopt CVS
647 style shared repository workflow.
</p>
650 <p><a href=
"git-format-patch.html">git-format-patch(
1)
</a> to prepare e-mail submission, if
651 you adopt Linux kernel-style public forum workflow.
</p>
654 <p><a href=
"git-send-email.html">git-send-email(
1)
</a> to send your e-mail submission without
655 corruption by your MUA.
</p>
658 <p><a href=
"git-request-pull.html">git-request-pull(
1)
</a> to create a summary of changes
659 for your upstream to pull.
</p>
664 <h3 id=
"_examples_2">Examples
</h3>
667 <dt class=
"hdlist1">Clone the upstream and work on it. Feed changes to upstream.
</dt>
669 <div class=
"listingblock">
670 <div class=
"content">
671 <pre>$ git clone git://git.kernel.org/pub/scm/.../torvalds/linux-
2.6 my2.6
673 $ git switch -c mine master
<b class=
"conum">(
1)
</b>
674 $ edit/compile/test; git commit -a -s
<b class=
"conum">(
2)
</b>
675 $ git format-patch master
<b class=
"conum">(
3)
</b>
676 $ git send-email
--to=
"person <email@example.com>" 00*.patch
<b class=
"conum">(
4)
</b>
677 $ git switch master
<b class=
"conum">(
5)
</b>
678 $ git pull
<b class=
"conum">(
6)
</b>
679 $ git log -p ORIG_HEAD.. arch/i386 include/asm-i386
<b class=
"conum">(
7)
</b>
680 $ git ls-remote --heads http://git.kernel.org/.../jgarzik/libata-dev.git
<b class=
"conum">(
8)
</b>
681 $ git pull git://git.kernel.org/pub/.../jgarzik/libata-dev.git ALL
<b class=
"conum">(
9)
</b>
682 $ git reset --hard ORIG_HEAD
<b class=
"conum">(
10)
</b>
683 $ git gc
<b class=
"conum">(
11)
</b></pre>
686 <div class=
"colist arabic">
689 <p>checkout a new branch
<code>mine
</code> from master.
</p>
692 <p>repeat as needed.
</p>
695 <p>extract patches from your branch, relative to master,
</p>
698 <p>and email them.
</p>
701 <p>return to
<code>master
</code>, ready to see what
’s new
</p>
704 <p><code>git
</code> <code>pull
</code> fetches from
<code>origin
</code> by default and merges into the
708 <p>immediately after pulling, look at the changes done upstream
709 since last time we checked, only in the
710 area we are interested in.
</p>
713 <p>check the branch names in an external repository (if not known).
</p>
716 <p>fetch from a specific branch
<code>ALL
</code> from a specific repository
720 <p>revert the pull.
</p>
723 <p>garbage collect leftover objects from reverted pull.
</p>
728 <dt class=
"hdlist1">Push into another repository.
</dt>
730 <div class=
"listingblock">
731 <div class=
"content">
732 <pre>satellite$ git clone mothership:frotz frotz
<b class=
"conum">(
1)
</b>
734 satellite$ git config --get-regexp '^(remote|branch)\.'
<b class=
"conum">(
2)
</b>
735 remote.origin.url mothership:frotz
736 remote.origin.fetch refs/heads/*:refs/remotes/origin/*
737 branch.master.remote origin
738 branch.master.merge refs/heads/master
739 satellite$ git config remote.origin.push \
740 +refs/heads/*:refs/remotes/satellite/*
<b class=
"conum">(
3)
</b>
741 satellite$ edit/compile/test/commit
742 satellite$ git push origin
<b class=
"conum">(
4)
</b>
745 mothership$ git switch master
746 mothership$ git merge satellite/master
<b class=
"conum">(
5)
</b></pre>
749 <div class=
"colist arabic">
752 <p>mothership machine has a frotz repository under your home
753 directory; clone from it to start a repository on the satellite
757 <p>clone sets these configuration variables by default.
758 It arranges
<code>git
</code> <code>pull
</code> to fetch and store the branches of mothership
759 machine to local
<code>remotes/origin/
</code>* remote-tracking branches.
</p>
762 <p>arrange
<code>git
</code> <code>push
</code> to push all local branches to
763 their corresponding branch of the mothership machine.
</p>
766 <p>push will stash all our work away on
<code>remotes/satellite/
</code>*
767 remote-tracking branches on the mothership machine. You could use this
768 as a back-up method. Likewise, you can pretend that mothership
769 "fetched" from you (useful when access is one sided).
</p>
772 <p>on mothership machine, merge the work done on the satellite
773 machine into the master branch.
</p>
778 <dt class=
"hdlist1">Branch off of a specific tag.
</dt>
780 <div class=
"listingblock">
781 <div class=
"content">
782 <pre>$ git switch -c private2.6
.14 v2.6
.14 <b class=
"conum">(
1)
</b>
783 $ edit/compile/test; git commit -a
784 $ git checkout master
785 $ git cherry-pick v2.6
.14..private2.6
.14 <b class=
"conum">(
2)
</b></pre>
788 <div class=
"colist arabic">
791 <p>create a private branch based on a well known (but somewhat behind)
795 <p>forward port all changes in
<code>private2.6
.14</code> branch to
<code>master
</code> branch
796 without a formal
"merging". Or longhand
<br/>
797 <code>git
</code> <code>format-patch
</code> <code>-k
</code> <code>-m
</code> <code>--stdout
</code> <code>v2.6
.14</code><code>..
</code><code>private2.6
.14</code> |
798 <code>git
</code> <code>am
</code> <code>-
3</code> <code>-k
</code></p>
805 <div class=
"paragraph">
806 <p>An alternate participant submission mechanism is using the
807 <code>git
</code> <code>request-pull
</code> or pull-request mechanisms (e.g. as used on
808 GitHub (www.github.com) to notify your upstream of your
815 <h2 id=
"_integrator">Integrator
<a id=
"INTEGRATOR"></a></h2>
816 <div class=
"sectionbody">
817 <div class=
"paragraph">
818 <p>A fairly central person acting as the integrator in a group
819 project receives changes made by others, reviews and integrates
820 them and publishes the result for others to use, using these
821 commands in addition to the ones needed by participants.
</p>
823 <div class=
"paragraph">
824 <p>This section can also be used by those who respond to
<code>git
</code>
825 <code>request-pull
</code> or pull-request on GitHub (www.github.com) to
826 integrate the work of others into their history. A sub-area
827 lieutenant for a repository will act both as a participant and
828 as an integrator.
</p>
833 <p><a href=
"git-am.html">git-am(
1)
</a> to apply patches e-mailed in from your
837 <p><a href=
"git-pull.html">git-pull(
1)
</a> to merge from your trusted lieutenants.
</p>
840 <p><a href=
"git-format-patch.html">git-format-patch(
1)
</a> to prepare and send suggested
841 alternative to contributors.
</p>
844 <p><a href=
"git-revert.html">git-revert(
1)
</a> to undo botched commits.
</p>
847 <p><a href=
"git-push.html">git-push(
1)
</a> to publish the bleeding edge.
</p>
852 <h3 id=
"_examples_3">Examples
</h3>
855 <dt class=
"hdlist1">A typical integrator
’s Git day.
</dt>
857 <div class=
"listingblock">
858 <div class=
"content">
859 <pre>$ git status
<b class=
"conum">(
1)
</b>
860 $ git branch --no-merged master
<b class=
"conum">(
2)
</b>
861 $ mailx
<b class=
"conum">(
3)
</b>
862 & s
2 3 4 5 ./+to-apply
863 & s
7 8 ./+hold-linus
865 $ git switch -c topic/one master
866 $ git am -
3 -i -s ./+to-apply
<b class=
"conum">(
4)
</b>
868 $ git switch -c hold/linus
&& git am -
3 -i -s ./+hold-linus
<b class=
"conum">(
5)
</b>
869 $ git switch topic/one
&& git rebase master
<b class=
"conum">(
6)
</b>
870 $ git switch -C seen next
<b class=
"conum">(
7)
</b>
871 $ git merge topic/one topic/two
&& git merge hold/linus
<b class=
"conum">(
8)
</b>
873 $ git cherry-pick master~
4 <b class=
"conum">(
9)
</b>
875 $ git tag -s -m
"GIT 0.99.9x" v0.99
.9x
<b class=
"conum">(
10)
</b>
876 $ git fetch ko
&& for branch in master maint next seen
<b class=
"conum">(
11)
</b>
878 git show-branch ko/$branch $branch
<b class=
"conum">(
12)
</b>
880 $ git push --follow-tags ko
<b class=
"conum">(
13)
</b></pre>
883 <div class=
"colist arabic">
886 <p>see what you were in the middle of doing, if anything.
</p>
889 <p>see which branches haven
’t been merged into
<code>master
</code> yet.
890 Likewise for any other integration branches e.g.
<code>maint
</code>,
<code>next
</code>
891 and
<code>seen
</code>.
</p>
894 <p>read mails, save ones that are applicable, and save others
895 that are not quite ready (other mail readers are available).
</p>
898 <p>apply them, interactively, with your sign-offs.
</p>
901 <p>create topic branch as needed and apply, again with sign-offs.
</p>
904 <p>rebase internal topic branch that has not been merged to the
905 master or exposed as a part of a stable branch.
</p>
908 <p>restart
<code>seen
</code> every time from the next.
</p>
911 <p>and bundle topic branches still cooking.
</p>
914 <p>backport a critical fix.
</p>
917 <p>create a signed tag.
</p>
920 <p>make sure master was not accidentally rewound beyond that
921 already pushed out.
</p>
924 <p>In the output from
<code>git
</code> <code>show-branch
</code>,
<code>master
</code> should have
925 everything
<code>ko/master
</code> has, and
<code>next
</code> should have
926 everything
<code>ko/next
</code> has, etc.
</p>
929 <p>push out the bleeding edge, together with new tags that point
930 into the pushed history.
</p>
937 <div class=
"paragraph">
938 <p>In this example, the
<code>ko
</code> shorthand points at the Git maintainer
’s
939 repository at kernel.org, and looks like this:
</p>
941 <div class=
"listingblock">
942 <div class=
"content">
943 <pre>(in .git/config)
945 url = kernel.org:/pub/scm/git/git.git
946 fetch = refs/heads/*:refs/remotes/ko/*
947 push = refs/heads/master
948 push = refs/heads/next
949 push = +refs/heads/seen
950 push = refs/heads/maint
</pre>
957 <h2 id=
"_repository_administration">Repository Administration
<a id=
"ADMINISTRATION"></a></h2>
958 <div class=
"sectionbody">
959 <div class=
"paragraph">
960 <p>A repository administrator uses the following tools to set up
961 and maintain access to the repository by developers.
</p>
966 <p><a href=
"git-daemon.html">git-daemon(
1)
</a> to allow anonymous download from
970 <p><a href=
"git-shell.html">git-shell(
1)
</a> can be used as a
<em>restricted login shell
</em>
971 for shared central repository users.
</p>
974 <p><a href=
"git-http-backend.html">git-http-backend(
1)
</a> provides a server side implementation
975 of Git-over-HTTP (
"Smart http") allowing both fetch and push services.
</p>
978 <p><a href=
"gitweb.html">gitweb(
1)
</a> provides a web front-end to Git repositories,
979 which can be set-up using the
<a href=
"git-instaweb.html">git-instaweb(
1)
</a> script.
</p>
983 <div class=
"paragraph">
984 <p><a href=
"howto/update-hook-example.html">update hook howto
</a> has a good
985 example of managing a shared central repository.
</p>
987 <div class=
"paragraph">
988 <p>In addition there are a number of other widely deployed hosting, browsing
989 and reviewing solutions such as:
</p>
994 <p>gitolite, gerrit code review, cgit and others.
</p>
999 <h3 id=
"_examples_4">Examples
</h3>
1002 <dt class=
"hdlist1">We assume the following in /etc/services
</dt>
1004 <div class=
"listingblock">
1005 <div class=
"content">
1006 <pre>$ grep
9418 /etc/services
1007 git
9418/tcp # Git Version Control System
</pre>
1011 <dt class=
"hdlist1">Run git-daemon to serve /pub/scm from inetd.
</dt>
1013 <div class=
"listingblock">
1014 <div class=
"content">
1015 <pre>$ grep git /etc/inetd.conf
1016 git stream tcp nowait nobody \
1017 /usr/bin/git-daemon git-daemon --inetd --export-all /pub/scm
</pre>
1020 <div class=
"paragraph">
1021 <p>The actual configuration line should be on one line.
</p>
1024 <dt class=
"hdlist1">Run git-daemon to serve /pub/scm from xinetd.
</dt>
1026 <div class=
"listingblock">
1027 <div class=
"content">
1028 <pre>$ cat /etc/xinetd.d/git-daemon
1030 # description: The Git server offers access to Git repositories
1036 socket_type = stream
1039 server = /usr/bin/git-daemon
1040 server_args = --inetd --export-all --base-path=/pub/scm
1041 log_on_failure += USERID
1045 <div class=
"paragraph">
1046 <p>Check your xinetd(
8) documentation and setup, this is from a Fedora system.
1047 Others might be different.
</p>
1050 <dt class=
"hdlist1">Give push/pull only access to developers using git-over-ssh.
</dt>
1052 <p>e.g. those using:
1053 <code>$
</code> <code>git
</code> <code>push/pull
</code> <code>ssh://host.xz/pub/scm/project
</code></p>
1054 <div class=
"listingblock">
1055 <div class=
"content">
1056 <pre>$ grep git /etc/passwd
<b class=
"conum">(
1)
</b>
1057 alice:x:
1000:
1000::/home/alice:/usr/bin/git-shell
1058 bob:x:
1001:
1001::/home/bob:/usr/bin/git-shell
1059 cindy:x:
1002:
1002::/home/cindy:/usr/bin/git-shell
1060 david:x:
1003:
1003::/home/david:/usr/bin/git-shell
1061 $ grep git /etc/shells
<b class=
"conum">(
2)
</b>
1062 /usr/bin/git-shell
</pre>
1065 <div class=
"colist arabic">
1068 <p>log-in shell is set to /usr/bin/git-shell, which does not
1069 allow anything but
<code>git
</code> <code>push
</code> and
<code>git
</code> <code>pull
</code>. The users require
1070 ssh access to the machine.
</p>
1073 <p>in many distributions /etc/shells needs to list what is used
1074 as the login shell.
</p>
1079 <dt class=
"hdlist1">CVS-style shared repository.
</dt>
1081 <div class=
"listingblock">
1082 <div class=
"content">
1083 <pre>$ grep git /etc/group
<b class=
"conum">(
1)
</b>
1084 git:x:
9418:alice,bob,cindy,david
1086 $ ls -l
<b class=
"conum">(
2)
</b>
1087 lrwxrwxrwx
1 david git
17 Dec
4 22:
40 HEAD -
> refs/heads/master
1088 drwxrwsr-x
2 david git
4096 Dec
4 22:
40 branches
1089 -rw-rw-r--
1 david git
84 Dec
4 22:
40 config
1090 -rw-rw-r--
1 david git
58 Dec
4 22:
40 description
1091 drwxrwsr-x
2 david git
4096 Dec
4 22:
40 hooks
1092 -rw-rw-r--
1 david git
37504 Dec
4 22:
40 index
1093 drwxrwsr-x
2 david git
4096 Dec
4 22:
40 info
1094 drwxrwsr-x
4 david git
4096 Dec
4 22:
40 objects
1095 drwxrwsr-x
4 david git
4096 Nov
7 14:
58 refs
1096 drwxrwsr-x
2 david git
4096 Dec
4 22:
40 remotes
1097 $ ls -l hooks/update
<b class=
"conum">(
3)
</b>
1098 -r-xr-xr-x
1 david git
3536 Dec
4 22:
40 update
1099 $ cat info/allowed-users
<b class=
"conum">(
4)
</b>
1100 refs/heads/master alice\|cindy
1101 refs/heads/doc-update bob
1102 refs/tags/v[
0-
9]* david
</pre>
1105 <div class=
"colist arabic">
1108 <p>place the developers into the same git group.
</p>
1111 <p>and make the shared repository writable by the group.
</p>
1114 <p>use update-hook example by Carl from Documentation/howto/
1115 for branch policy control.
</p>
1118 <p>alice and cindy can push into master, only bob can push into doc-update.
1119 david is the release manager and is the only person who can
1120 create and push version tags.
</p>
1131 <h2 id=
"_git">GIT
</h2>
1132 <div class=
"sectionbody">
1133 <div class=
"paragraph">
1134 <p>Part of the
<a href=
"git.html">git(
1)
</a> suite
</p>
1140 <div id=
"footer-text">
1141 Last updated
2023-
10-
29 16:
42:
00 -
0700