Compare commits
2449 Commits
v1.6.0.6
...
v1.6.3-rc3
Author | SHA1 | Date | |
---|---|---|---|
95110d75d9 | |||
be66a6c43d | |||
785a985749 | |||
911198f6c0 | |||
926337fe89 | |||
c5fe5b6de9 | |||
1ef2d5a640 | |||
84eeb687de | |||
66913284f0 | |||
f29ac4f1b0 | |||
86e081aea4 | |||
f06b9f1dff | |||
cc13719451 | |||
a766829458 | |||
cd294bc3f3 | |||
178b513eb7 | |||
677fbff88f | |||
5be3b17f09 | |||
66e35fcb79 | |||
b7ee2266fe | |||
773002a78c | |||
50710ce49b | |||
a123978771 | |||
fd1ff306b7 | |||
48d3448dd5 | |||
c2318228ab | |||
ea0b767c1e | |||
7613ea3595 | |||
7bd93c1c62 | |||
b18cc5a3b2 | |||
3ea3c215c0 | |||
bad542f0b1 | |||
4ddef0e67d | |||
e8d1180467 | |||
a6c1a3827c | |||
36a31feae2 | |||
7b1d6269ee | |||
8fbf879ed7 | |||
3a0483281a | |||
0be9bc0f0a | |||
062868cc00 | |||
fe3420b616 | |||
680ebc0180 | |||
7c0282bfb9 | |||
a162e78df0 | |||
f0583867e7 | |||
e8141fcf54 | |||
1d49f0d1a1 | |||
3ac3cfb8eb | |||
7183c09d11 | |||
34779c535c | |||
83ae209bf9 | |||
456156dc06 | |||
b9d37a5420 | |||
8cc21ce78c | |||
6ac6f87818 | |||
ccb4b53913 | |||
21590d5262 | |||
a2fc8d6536 | |||
66996ecc28 | |||
1f9b620fdb | |||
318b847031 | |||
4f26c39806 | |||
fe4ce3a721 | |||
84047e0f28 | |||
5027acc4db | |||
cafa56702b | |||
7535e5a16a | |||
cbd3a01ed8 | |||
24cb1bb198 | |||
9ffb15d52a | |||
aadd44404b | |||
426193c025 | |||
38124d8f31 | |||
1092f6b3f8 | |||
ea10b60c91 | |||
77b96d6dbf | |||
4f760b74cf | |||
9824a388e5 | |||
5758b25da4 | |||
cef5775b9f | |||
67daebfd3b | |||
a51609a1c1 | |||
a4d1797332 | |||
08e7239c36 | |||
f392485813 | |||
eb8a1c4aed | |||
2aa3140bc0 | |||
d890d3f996 | |||
6285441044 | |||
32d1776b13 | |||
43be7a782e | |||
098082fb78 | |||
1a1f063a17 | |||
0f9b55bff8 | |||
fc917ad6b2 | |||
66aae6c1ba | |||
ef5542ca93 | |||
1dd9b638c1 | |||
1ee28e58d5 | |||
a9b772a011 | |||
bd15ef078a | |||
2d430c7133 | |||
c4c86d2389 | |||
aed97c677c | |||
f7446fc6bb | |||
0fa0514b91 | |||
8aece7ff06 | |||
ba053ea96c | |||
66985e6629 | |||
4191e80a3e | |||
ad94657fdb | |||
e0b3cc0dff | |||
45972ffbed | |||
55f0566f6d | |||
0cbcf7ad71 | |||
ae57ec223b | |||
595f694823 | |||
0392513fdc | |||
9a7a1e03d5 | |||
7fac0eef91 | |||
427fc5b888 | |||
d8c81dfcaf | |||
a45d34691e | |||
2bb98169be | |||
6e7b3309d3 | |||
0808723b50 | |||
76cfadfc17 | |||
26d22dc64a | |||
167d744543 | |||
70e966477a | |||
f800b65bea | |||
f79d4c8a0f | |||
7d5a1806e8 | |||
cf2ab916af | |||
8d2dfc49b1 | |||
c965c02933 | |||
54a47493a3 | |||
6f523f6d38 | |||
c736becc94 | |||
3e52effcf6 | |||
c276857ee2 | |||
07fb030efc | |||
6e353a5e5d | |||
a54c4edc51 | |||
3bd1bb327e | |||
1966af8176 | |||
bc69776aa1 | |||
47d65924a6 | |||
c6d8f7635f | |||
213152688c | |||
078688213f | |||
ee7ec2f9de | |||
cced5fbc24 | |||
519d05be90 | |||
d3c9634eac | |||
b6c29915d2 | |||
88ec205477 | |||
0d8bee71af | |||
6ea4203288 | |||
c2abd83fea | |||
70af4e9bef | |||
79f72b9763 | |||
8f8c6fafd9 | |||
27845e9548 | |||
e37347bba6 | |||
796b13781a | |||
db12d97542 | |||
bff82d0cda | |||
197cf8d59c | |||
0122cf6611 | |||
f7af75777f | |||
c3067cbfb3 | |||
bb11eb31a2 | |||
1c9f54417e | |||
1f398ee772 | |||
5b841d61c4 | |||
de551d472e | |||
1b19ccd236 | |||
499c29394c | |||
61e6108d94 | |||
21d0ba7ebb | |||
2d8a7f0b30 | |||
7c2b3029df | |||
8cae19d987 | |||
8db9a4b85d | |||
6da14ee14f | |||
747f9d30ed | |||
714fddf2fc | |||
aa41cf8f43 | |||
9e36d11735 | |||
00f39fc995 | |||
fe42fe4bca | |||
a9906723b2 | |||
2149e0f6a6 | |||
d65279d5bf | |||
9a62d72dfa | |||
e2dc2de917 | |||
a904392eae | |||
f92f2038a5 | |||
afcbc8e7ec | |||
1c0f3d224e | |||
8b7332221d | |||
46ae156d6c | |||
2e8af7e42b | |||
76ca653842 | |||
b98c212a9f | |||
bad4273200 | |||
da81688cc5 | |||
13858e5770 | |||
d797257eb2 | |||
11c211fa06 | |||
982962ce24 | |||
4c0fe0af68 | |||
3d4ecc0e23 | |||
e892dc713e | |||
20ff3ec28e | |||
39470cf961 | |||
ce8936c342 | |||
b344e1614b | |||
9a23ba3375 | |||
bed5d42163 | |||
1a7b1f6b9c | |||
fbdc05661d | |||
03a39a9184 | |||
ccc852c377 | |||
87d2062b39 | |||
a6e5ef7d9c | |||
a3df1e464e | |||
6127c08647 | |||
5c9c990341 | |||
1d1876e930 | |||
43acdf243e | |||
efa54803cb | |||
b92c5f228a | |||
e89aa6d2f5 | |||
37c4c38d73 | |||
b74d7efb10 | |||
23b5f18b50 | |||
3b437b0dab | |||
1bf072e366 | |||
4eb5b64631 | |||
9518864816 | |||
81aa964976 | |||
835a3eea3e | |||
be18f4b899 | |||
acb0b7b01f | |||
38b7ccbe8c | |||
5dba359124 | |||
4f6a32f8af | |||
39d8e271f4 | |||
0eb6574c24 | |||
f37ae35e73 | |||
f3a186ffad | |||
e1dc49bcde | |||
89a56bfbd3 | |||
5aaa507b06 | |||
5289bae17f | |||
96beef8c2e | |||
0da43a685a | |||
e96f3689ec | |||
bef3894847 | |||
3944ba0cb0 | |||
8130949bdc | |||
3346330d70 | |||
5ab2f7b2ce | |||
cb365a7a56 | |||
1e7ef0253c | |||
8afd317843 | |||
b5a18787bd | |||
66c9e7d487 | |||
a61c0ffa44 | |||
3b3637c3f1 | |||
dffc13166b | |||
37a13acb2e | |||
85b7bd50c4 | |||
02c62b10de | |||
7634817871 | |||
f054a41941 | |||
477fde6ff3 | |||
3c91bf6805 | |||
988d9fd8a4 | |||
0e5e69a355 | |||
8092bfb6c2 | |||
f0946cb826 | |||
5288dd5835 | |||
5e6e2b487e | |||
75fd877e15 | |||
494fbfe87a | |||
666e07e697 | |||
5bd27ebb18 | |||
dc1460aa8d | |||
5906f54e47 | |||
1b89eaa4be | |||
fd94836923 | |||
871d21d42e | |||
2346431e47 | |||
bf637803a7 | |||
91286ca61a | |||
50b5f420fe | |||
e161acd11d | |||
49750f3076 | |||
442dd42d6d | |||
8c7f788238 | |||
b19293df9e | |||
dcbf041745 | |||
01eadafccb | |||
76d3cc50b5 | |||
ba7906f2f4 | |||
67f1fe5f08 | |||
abfd5fa872 | |||
7b60d0d3e4 | |||
7428d754e2 | |||
6a17fad733 | |||
9996983c9c | |||
a2ad79ced2 | |||
ff62d732d8 | |||
2a8177b63d | |||
eaa759b914 | |||
ebbc088e13 | |||
f2ad051fd1 | |||
510a309e5e | |||
8e4f767ba7 | |||
c18f75a1e9 | |||
6e1825186b | |||
b8fee3a388 | |||
63801da88d | |||
1982467d92 | |||
c0582c53bc | |||
2d07f6d4b7 | |||
41a5c70f2c | |||
18d5cf908f | |||
4f821012c3 | |||
17e61b8288 | |||
3be1f18e1b | |||
b0085a7167 | |||
a1b1ae0571 | |||
aa72a14a7f | |||
48bcfbd134 | |||
869e13e246 | |||
9d5156496d | |||
81db4abf84 | |||
d7d9c2d049 | |||
fb8b193670 | |||
5a688fe470 | |||
3f7d99282d | |||
b09b868f7f | |||
57dac0bfe4 | |||
2d266f9d62 | |||
3278609310 | |||
5121a6d993 | |||
0c04f52735 | |||
dad3211503 | |||
34c800b8fc | |||
9d8d13a8c5 | |||
8fa2b45f3a | |||
ae8d09b8fa | |||
c30e948523 | |||
c6a5ad21e5 | |||
bb2300976b | |||
9856dd811e | |||
6828f72ffe | |||
9fe00538c6 | |||
eed1fcd76d | |||
f23336f5c1 | |||
3fcee259d0 | |||
6422c6af38 | |||
f504fa2acb | |||
6ba8b079cb | |||
b71fdc590d | |||
b2aa958dc2 | |||
23fd723c9d | |||
2545c089e3 | |||
0b3035fe15 | |||
a8fac795dd | |||
ebeec7dbc5 | |||
19fa5e8c4d | |||
4fa535a179 | |||
98e1a4186a | |||
d5b0c97d13 | |||
8befac5d6f | |||
b2655cdae9 | |||
fb9a2beab2 | |||
80f0e53d6b | |||
5d83f9c198 | |||
5c928c06e2 | |||
89fbda2425 | |||
7c98213abc | |||
e1d37937ac | |||
3f7df3a71a | |||
77813151f9 | |||
3e262b95c5 | |||
389d176771 | |||
b0de555410 | |||
2a5643da73 | |||
3aea1a5a89 | |||
78360b576a | |||
e8bd78c3fc | |||
720fe22d50 | |||
cbdffe4093 | |||
edbc25c5b3 | |||
5620e77e30 | |||
33fa4d3dfe | |||
c36d785da0 | |||
2fd8c0a5db | |||
78509d2197 | |||
f198e21849 | |||
eca2a8f023 | |||
d5c87cb4ff | |||
28baf82ea3 | |||
a2fab531bb | |||
03d3aada5a | |||
a31dca0393 | |||
a552de75eb | |||
431b1969fc | |||
747e25050b | |||
108dab2811 | |||
6fa8e6278b | |||
cd2ef591c8 | |||
6df514af9d | |||
46d164b0cd | |||
cd747dc6dc | |||
3460a60064 | |||
d83a42f34a | |||
1d52b02696 | |||
a42dea3281 | |||
9140804276 | |||
4bca86367b | |||
ebd15bf0d7 | |||
26284f9356 | |||
636991be2d | |||
cbc8c61041 | |||
0abd52772b | |||
150115aded | |||
4e218f54b3 | |||
24c11552cb | |||
3e5970a41e | |||
48ef563641 | |||
8b02c64a3c | |||
a4df22ce49 | |||
552a26c8c0 | |||
6fd1106aa4 | |||
ee9fb68c39 | |||
2718e852e9 | |||
704a3143d5 | |||
7b7247b0d7 | |||
18bf879817 | |||
872f349e7b | |||
56e78bfb29 | |||
88f78ce843 | |||
d291a9a6c8 | |||
c511549e0c | |||
93467ee660 | |||
67c176f549 | |||
7ad3c52e2d | |||
c0250b6477 | |||
923cc82c48 | |||
8af95ca017 | |||
2aa93deec0 | |||
10a73f5848 | |||
3c954c23d6 | |||
0e1aa2f7af | |||
e10d48de74 | |||
2990034f1e | |||
b60df87a6b | |||
094085e336 | |||
c90d565a46 | |||
869a3d34c1 | |||
76aac71546 | |||
a7bb394037 | |||
a797b02f39 | |||
2d893d6822 | |||
de2e3b04cd | |||
5645b02117 | |||
8e50ada553 | |||
0f64f87431 | |||
72c2de5c41 | |||
17e46ea6fe | |||
4d6acb7041 | |||
79bc4c7155 | |||
171110a4a6 | |||
92cd872202 | |||
b997045e01 | |||
8f0246551c | |||
e392a85236 | |||
4306bcb4e1 | |||
6872f606d9 | |||
cd4371208a | |||
6066f5ae75 | |||
64e61f2d17 | |||
4114156ae9 | |||
5397ea314f | |||
f17e9fbbe9 | |||
a8cbc9ab02 | |||
b689ccf6c9 | |||
0aaaef7b0f | |||
e2c2407683 | |||
1f553918a8 | |||
8586f98bd2 | |||
d5d9de1b10 | |||
5b46a4285f | |||
fae74a04d7 | |||
44d808c238 | |||
7b5201a60d | |||
821d56aa68 | |||
ee9cf14d25 | |||
570ccad33e | |||
5e75d56f11 | |||
b130a72b27 | |||
1c192f3442 | |||
ba150a3fdc | |||
092927c1b0 | |||
40bac1512b | |||
ec2956df59 | |||
7fd3ef1fd7 | |||
aa9ea77de4 | |||
e986ceb05a | |||
7d4e3a72fb | |||
9d5b05c6d5 | |||
6e5660a7ab | |||
9e6433a210 | |||
b332368de8 | |||
ca8a36e6e0 | |||
a57ca9dd40 | |||
a9bfe81309 | |||
6e89ec0f1e | |||
642d0844b9 | |||
8ad3dae3a7 | |||
fcfdf797db | |||
50fd6997c6 | |||
665d3e8f05 | |||
521537476f | |||
01d3861217 | |||
188c3827c1 | |||
dcb11263bc | |||
d6aba61f88 | |||
d42ec126aa | |||
381b920b8a | |||
e5ac1217eb | |||
b89510f024 | |||
236425919b | |||
bf71b4b3ee | |||
7be401e069 | |||
b3debd2b0c | |||
3f7cdf3299 | |||
6720721e15 | |||
7ee3760e2c | |||
9326d49412 | |||
8e24cbaeaf | |||
de7697808f | |||
6f55ee4317 | |||
5bcf109cdf | |||
bba2a7b22f | |||
8e76bf3fc9 | |||
7f733de04e | |||
06f33c1735 | |||
924189d6a2 | |||
a54a216098 | |||
bf0fe35c93 | |||
1973b0d790 | |||
a8304f7a70 | |||
29adc8baf9 | |||
310386f07b | |||
918c812017 | |||
08df6a3086 | |||
e068f4f53b | |||
1e68adc174 | |||
750d930500 | |||
688ba09cad | |||
3e186ef135 | |||
fa711bc198 | |||
532b74b210 | |||
c26901a8ff | |||
2f5bfa7c7f | |||
592ebd087a | |||
d9b04430d2 | |||
54e7e7891b | |||
daf713dd49 | |||
e89b991a7f | |||
8bb78b7201 | |||
de55390d36 | |||
aab3b9a1aa | |||
3bc427e013 | |||
2464456a6a | |||
f4e52f0bab | |||
aaab4b9fb9 | |||
64621462de | |||
c2aca7c40c | |||
7681ed2d2e | |||
ecab04d49a | |||
6c3b3e141f | |||
5f7b338310 | |||
bbc6a14b72 | |||
500ff11968 | |||
aec813062b | |||
8f4cc79119 | |||
e43997979e | |||
8a396c02fd | |||
5a5bd23486 | |||
72e3c32bef | |||
e785dadc90 | |||
7d59ceed9d | |||
1897713fbd | |||
34df8abaf3 | |||
7efaeba2a8 | |||
e47eec8fc6 | |||
fa685bdf45 | |||
4d5d398474 | |||
c7cb12b86c | |||
c33976cbc6 | |||
7059cd99fc | |||
72f600832f | |||
15112c9599 | |||
4251ccbd80 | |||
c4994ce953 | |||
64fcef2daa | |||
a9c37a72c4 | |||
0d260f9a09 | |||
9ad7e6ea24 | |||
9162b8640b | |||
747a322bcc | |||
d7371a2d4d | |||
c567383b1e | |||
110c46a909 | |||
52e7787609 | |||
49b6180252 | |||
b92891f978 | |||
b5ce3a5430 | |||
5ad6b0252b | |||
8321c56b6b | |||
934f788981 | |||
9a6682bab5 | |||
113106e06c | |||
fd13b21f52 | |||
eb3a9dd327 | |||
36adb4abbd | |||
3b167396b4 | |||
ca31f0b5c2 | |||
c06ff4908b | |||
0a4e14727f | |||
3c7b480a1c | |||
52d5c3b5b2 | |||
2fb6d6d6dd | |||
8a3b25da8c | |||
d5e31235f2 | |||
0d66e95903 | |||
abd2bde78b | |||
08fbdb3043 | |||
e928213fb4 | |||
a3c8423901 | |||
689f039643 | |||
a94982ef39 | |||
7e8f59d577 | |||
79212772ce | |||
d7eb527d73 | |||
252d560d21 | |||
d57f07ebae | |||
ba04822468 | |||
003f69b282 | |||
c2e9364a06 | |||
3d2d4f96d2 | |||
d0baf91db8 | |||
31653c1abc | |||
8cc3fe45c9 | |||
e46f778968 | |||
458eaf5bf8 | |||
3535dbb3d1 | |||
1ef87e0bb5 | |||
2fb9c421e1 | |||
c067e1e2fc | |||
db2255725d | |||
4e286ece2e | |||
2247b45c60 | |||
e7cf1da70f | |||
1456d964fa | |||
2e2e91d6b2 | |||
229e65823a | |||
814742672f | |||
4a2caf6912 | |||
8a61097cde | |||
1d4e4cd4a1 | |||
fad5c96756 | |||
a84bde927c | |||
836769e875 | |||
05ac6b34e2 | |||
19de5d6913 | |||
bdfd739dac | |||
aec0c1bbfb | |||
734cd5726c | |||
50dffd4ed5 | |||
28001d0873 | |||
9f199b1595 | |||
e752f4bba2 | |||
628d5c2b70 | |||
0823ab4783 | |||
f243319c21 | |||
a95148dea1 | |||
a9f2c13685 | |||
db75ada559 | |||
ac8463d2b4 | |||
a1070d4cbb | |||
5a4aaaf3aa | |||
c0bc2eeb1e | |||
8d1b9d23a0 | |||
0e757e30c7 | |||
dfa7a6c579 | |||
c1f2aa45b7 | |||
a334e1254c | |||
a9c3821ca2 | |||
3e0c4ffdbd | |||
56384e61ea | |||
ce163c793d | |||
1d035f8564 | |||
a7d64b52da | |||
07f5746fb5 | |||
2559bff32c | |||
f8c62880ef | |||
52b8ea934e | |||
f474c52661 | |||
12ef3d8439 | |||
dcc901bc29 | |||
272459a3b8 | |||
325e9bca37 | |||
eb006ccfca | |||
749485f622 | |||
69e020ae00 | |||
03a9683d22 | |||
386cb77210 | |||
b8431b033f | |||
cd673c1f17 | |||
2478dc84b5 | |||
736e619a1b | |||
48679e5c2d | |||
48fce93565 | |||
e5dcbfd9ab | |||
7ecbbf877c | |||
fbb074c253 | |||
bc14fac825 | |||
e61e0cc6b7 | |||
3bd925636c | |||
cca7c97e37 | |||
e0cc81e63c | |||
7b9a5e276c | |||
8873323561 | |||
c6f5a7a916 | |||
5f48cb95aa | |||
cdf690e53b | |||
4229f1fa32 | |||
7b3db095d5 | |||
cce074a276 | |||
72de29c24f | |||
0c34735616 | |||
1b249ffe8d | |||
2d56a13643 | |||
c767184d8f | |||
2591838bee | |||
2c626e5fa8 | |||
6cb4e6cc0f | |||
8ef517337d | |||
ec8452d5a7 | |||
454e2025a9 | |||
5483f79998 | |||
119c8eeede | |||
75318a3bad | |||
661763abf6 | |||
bb0cebd7d0 | |||
6e180cdcec | |||
69707d616f | |||
3dbe1165e9 | |||
3f74c8e8d8 | |||
a9d98a148d | |||
9ccb3bca57 | |||
aa98eb3d65 | |||
a8fdab08e0 | |||
149f6ddfb3 | |||
6ab149ea89 | |||
10edf37796 | |||
bb93afd515 | |||
de84accc59 | |||
36407548a2 | |||
3a4c1a5e21 | |||
6a0861a8a3 | |||
ddb6d01023 | |||
48b6026e17 | |||
3ca9364222 | |||
e871784132 | |||
afe756c936 | |||
d43c07b8ee | |||
e1afca4fd3 | |||
b4b0ba06f8 | |||
f50edca56c | |||
0df84059d4 | |||
83c2fcff21 | |||
7d9fd459f1 | |||
c238735894 | |||
225a9caf18 | |||
16c1e93985 | |||
67052c9dcf | |||
d64ec16c2a | |||
0e854a280a | |||
b408457f2e | |||
aa38740791 | |||
414f2e5337 | |||
4b951b7eb0 | |||
30984ed2e9 | |||
2175c10d5a | |||
b079c50e03 | |||
2d602e9179 | |||
6f3c504b54 | |||
5b4e44104e | |||
21ba0e8435 | |||
7dff9b30ea | |||
b26d8d217d | |||
fcbc6efc7c | |||
28fd76bd04 | |||
02a6552c28 | |||
289e162318 | |||
f37bfb7a4d | |||
85569d7498 | |||
901c369af5 | |||
8c5b85ce87 | |||
e43a6fd3e9 | |||
b452cc16d8 | |||
7d233dea5f | |||
024aa7d8d5 | |||
4fcc86b07d | |||
484cf6c3f1 | |||
1dcafcc0e6 | |||
fba2f38a2c | |||
8cd6192e16 | |||
c4ba87a6e2 | |||
0afc304406 | |||
66648ad7fe | |||
36419c8ee4 | |||
25487f8e2a | |||
91e80b984e | |||
88e38808cd | |||
51b2ead03c | |||
ce8e880406 | |||
7c4c97c0ac | |||
d61027b21f | |||
8851f4800c | |||
b94ead7594 | |||
df5d10a32e | |||
bed5122f23 | |||
bf3c20f6e8 | |||
a393777ec9 | |||
45e2b61401 | |||
81d3fe9f48 | |||
4a5856cb24 | |||
d532ebd5a7 | |||
1b7e543a6e | |||
88a667f063 | |||
075394e26c | |||
f7a2bdb1f0 | |||
7b83a92431 | |||
160d2bc353 | |||
2a8644c7f1 | |||
c42b04bbb0 | |||
dfab7c144e | |||
c64d84f145 | |||
43e35f6bc1 | |||
b43174ebf1 | |||
472e4744ad | |||
3531e2703d | |||
5012699d98 | |||
eed6ca7c40 | |||
48c9ab78f3 | |||
db7fee8758 | |||
8fb3c00d2e | |||
900569661b | |||
d0268de6d7 | |||
58e9d9d472 | |||
c9717ee970 | |||
8415d5c7ef | |||
e9cc02f0e4 | |||
4b15b4ab5f | |||
74bb2dfbec | |||
dc6ebd4cc5 | |||
7fcda9201e | |||
b2f82e05de | |||
209d336ae3 | |||
901d615c5d | |||
5cd12b85fe | |||
1a526d4838 | |||
7fe5438516 | |||
49bde75336 | |||
0db5260bd0 | |||
222b167386 | |||
a8344abe0f | |||
dd482eeac2 | |||
1d398a0390 | |||
30aa4fb15f | |||
e5887c1bda | |||
7a134dbbc9 | |||
3e6b1d0abc | |||
784f8affe4 | |||
0ea29cce4d | |||
5c9cc64a4a | |||
e5dd864adf | |||
ad244d2568 | |||
fa26a401be | |||
e5f5050ed1 | |||
fa3a0c94dc | |||
7b73d828f0 | |||
9e5b80cd87 | |||
39111f6b7a | |||
8841b37f2f | |||
99366565f1 | |||
8e3f9b17a5 | |||
4c58a7111d | |||
aff4e8dc21 | |||
268c015495 | |||
afce435000 | |||
92798702cf | |||
ed62089c1c | |||
1b53a076fc | |||
747ca2455a | |||
ba19a808aa | |||
057e71384a | |||
f8948e2fbc | |||
8ea7ad694b | |||
75f3ff2eea | |||
fcb6c0760d | |||
2f33415563 | |||
0ab9a8bbfe | |||
954cfb5cfd | |||
f1c8a48a2d | |||
8c5514906a | |||
6e5d7ddc49 | |||
fd8475d9fb | |||
9b27ea9518 | |||
3d20c636af | |||
7734f04873 | |||
91fcbcbdcd | |||
e4c7292353 | |||
4857c761e3 | |||
81a9aa60a1 | |||
7847892716 | |||
571998921d | |||
148bc06b91 | |||
60b458b7d3 | |||
f6b98e46bd | |||
df487baa30 | |||
a9ee90d7ff | |||
cf9957875c | |||
7e1100e9e9 | |||
ffe4da1573 | |||
3ec7371f63 | |||
3021faf656 | |||
9aad6cbaef | |||
3bec8ff99a | |||
6e46cc0d92 | |||
7d48e9e6f7 | |||
d20d654fe8 | |||
0925ce4d49 | |||
cfa1ee6b34 | |||
d551a48816 | |||
ccb04f99fe | |||
496917b721 | |||
f3670a5749 | |||
f2a782b8ba | |||
f42302b493 | |||
43a7ddb55d | |||
f3cad0ad82 | |||
2cd85c40a9 | |||
d3bee161fe | |||
621f1b4bcf | |||
c19923add0 | |||
df4364a429 | |||
7de265a4cf | |||
7851386948 | |||
5a7b3bf527 | |||
6c4f70d5b2 | |||
efd49f50fc | |||
a7da5c4259 | |||
ab69e3e43a | |||
811b10c746 | |||
c375e9d04c | |||
b59122f86f | |||
2c3c395e84 | |||
31ca3ac30f | |||
748aa689ba | |||
ba743d1b0c | |||
7b75b331f6 | |||
5d680a67d7 | |||
7aa4e736b2 | |||
9242431ca0 | |||
74b11bc3be | |||
b371922aa5 | |||
84b96278cc | |||
919ab6429a | |||
c7893501e8 | |||
7b261711a6 | |||
f20408dadb | |||
141b6b83d7 | |||
cc91e1bd05 | |||
8abc61880d | |||
8c4c286c39 | |||
5caa81d1b4 | |||
26be15f09d | |||
a301973641 | |||
ca6ac7f135 | |||
7233d221ad | |||
98bb1ff83c | |||
0c0ead7e79 | |||
ab2fdb3b62 | |||
88ccb9f974 | |||
ffaf9cc0ff | |||
8a9391e944 | |||
8aa7eebfb3 | |||
34263de026 | |||
5c7eee03da | |||
e1ff064e1b | |||
de8139005f | |||
d3f552b674 | |||
a4f004bffc | |||
f26b5dc9ef | |||
745bc77604 | |||
5aed3c6ab8 | |||
c8ba6b1b19 | |||
720ec6b870 | |||
441adf0ccf | |||
68c02d7c46 | |||
4404b2e392 | |||
b63bc0bc31 | |||
f081731090 | |||
2d20b7ebf6 | |||
223bd93176 | |||
7a85f6ae88 | |||
37fc57a213 | |||
c9a8abcf9a | |||
738a94a9f6 | |||
e1e4389832 | |||
a6d63b7493 | |||
3da9365234 | |||
268fac6919 | |||
7f6fdea119 | |||
44138559e8 | |||
efd92ffd31 | |||
6a7e37c99f | |||
4e1be63c3b | |||
9273b56278 | |||
e656fc97a2 | |||
e02f1762b2 | |||
61d86605dd | |||
3d95d92b9a | |||
bd9efbf354 | |||
281907574c | |||
f39e4cfa2e | |||
1487eb68f7 | |||
dcdb3335c1 | |||
bc395643b6 | |||
ace30ba813 | |||
dd971cc9d6 | |||
57886bc7fb | |||
2ea3c17189 | |||
e80f97e20c | |||
08e6710f76 | |||
c0f6f67b3d | |||
15b8e94aee | |||
32f2f11f39 | |||
2d40cadc25 | |||
b37f26d8a2 | |||
29254142dd | |||
bdf6442b48 | |||
ed096c4a23 | |||
fa5bc8abb3 | |||
2edefe38a8 | |||
ddebfd1f27 | |||
6ac92294b3 | |||
99ccabaffa | |||
384770a5e7 | |||
817d14a87a | |||
c7cddc1a2f | |||
ff4a18552a | |||
b9b5078ece | |||
2182896440 | |||
3fe2bf2fa7 | |||
ad8c3477b8 | |||
418566b6fd | |||
41a4d16e20 | |||
0dbf027ad2 | |||
c3254aeecf | |||
499cc56a60 | |||
e15ef66943 | |||
469e2ebf63 | |||
0ea8039644 | |||
afe5d3d516 | |||
b229d18a80 | |||
a34a9dbbce | |||
8c95d3c31b | |||
b296e8fce6 | |||
a9ed6ce0e7 | |||
9530eb1db8 | |||
0630a66f8a | |||
f9686cdc23 | |||
32fe027931 | |||
8e7d1f6d03 | |||
20bd35c110 | |||
8561b522d7 | |||
915308b187 | |||
f7951e1d97 | |||
37e5c8f460 | |||
4bd03d15e4 | |||
008849689e | |||
03af0870a0 | |||
29a03348a3 | |||
4cc8d6c62d | |||
a15080e5f4 | |||
c32815f903 | |||
806d5e9044 | |||
8712b3cdb0 | |||
94c88edef7 | |||
9674769665 | |||
cd956c73a2 | |||
2757b54d46 | |||
0cf31285a0 | |||
3ac109ae4c | |||
ad59a7a359 | |||
1ba68ce237 | |||
d8e96fd86d | |||
1d64f21d99 | |||
45c0961c87 | |||
85b4518f44 | |||
f172f334fd | |||
32c35cfb1e | |||
7fcdb36e29 | |||
269defdf30 | |||
aeeae1b771 | |||
98ef23b3b1 | |||
d04099382b | |||
297f6a535c | |||
02322e1619 | |||
899d8dc392 | |||
b8469ad057 | |||
f265458f61 | |||
0ec7b6c26d | |||
fb700cb067 | |||
90b23e5f21 | |||
b67b9612e1 | |||
2d6061537f | |||
a6c7a27691 | |||
f7d9d04e3b | |||
dfb047b9e4 | |||
2565522174 | |||
35fb0e8633 | |||
8e3462837b | |||
2fb3f6db96 | |||
2cd72b0b29 | |||
4dd47c3b86 | |||
026fa0d5ad | |||
afc7274704 | |||
803918462e | |||
17507832ca | |||
7a0d911f11 | |||
277d7e91ae | |||
c30e5673f9 | |||
a79ec62d06 | |||
3f01ad6654 | |||
0990e7aaaa | |||
9847a52432 | |||
d64d4835b8 | |||
f18e6bef23 | |||
45099df6d7 | |||
ec74042dc7 | |||
242522d9cc | |||
c42b1ad944 | |||
6076b843a0 | |||
edc662f929 | |||
bf8a40b89e | |||
5c415311f7 | |||
d6716c0266 | |||
d456c9fd1e | |||
73ff1a131b | |||
5dc1308562 | |||
f3d6073e02 | |||
b1c7d4aafe | |||
692be9f365 | |||
f630171d9d | |||
46cdcc6275 | |||
67b175bb11 | |||
e5bde1987c | |||
e2355a3e06 | |||
9e3248eb51 | |||
5cb0f2745f | |||
d4029d30c7 | |||
b619715207 | |||
b80da424a1 | |||
d930508903 | |||
86ac751859 | |||
b938f62a20 | |||
ae3b970ac3 | |||
a3da882120 | |||
57b235a4bc | |||
4a16d07272 | |||
479b0ae81c | |||
d28250654f | |||
9a01387b97 | |||
36dd939393 | |||
664a3348b2 | |||
0aac1614e9 | |||
07adc43f3a | |||
d9fde065bd | |||
1afcde6da1 | |||
35e6afd4c6 | |||
a14f15427b | |||
8318eb795e | |||
f135e72d61 | |||
f873dd5ac2 | |||
2b5189e518 | |||
98a4d87b87 | |||
d7c03c1ff9 | |||
950db8798d | |||
27a58359c3 | |||
885c716f0f | |||
a1a587ef72 | |||
b56c79ccea | |||
35641310af | |||
bc08fc4e85 | |||
f13bfc1be7 | |||
c5ee71fded | |||
101d15e097 | |||
39765e5941 | |||
2c2dc7c82c | |||
6d12acefd5 | |||
b6bc8c2309 | |||
537a071f41 | |||
b044c65855 | |||
674a1d2628 | |||
c829774c30 | |||
aa9c55b667 | |||
c2883e62f5 | |||
20bf729231 | |||
47d5a8fa71 | |||
28da86a58d | |||
507cfcbd81 | |||
9003dd4027 | |||
22ba47f544 | |||
4d2e283a1e | |||
b03a71a660 | |||
1ef626b4b6 | |||
e82f0d73f0 | |||
baf5fa8a7f | |||
dbc6c74d08 | |||
69274b6e87 | |||
89edd5a901 | |||
391d186bab | |||
98347fee9b | |||
bda6eb0da9 | |||
aeabab5c71 | |||
bad4a54fa6 | |||
09c9306658 | |||
92604b4663 | |||
71ee483abd | |||
a83c88525e | |||
7a38329130 | |||
8b75d31c94 | |||
094f75b433 | |||
8f31355692 | |||
90abc19b5a | |||
6fc2a19969 | |||
6af384ce73 | |||
cd1dbd37d9 | |||
33256e6b1b | |||
5786f4fac7 | |||
39d743864b | |||
b4147b3af2 | |||
8f5707f9a9 | |||
58f37f3c07 | |||
9d3043cf33 | |||
b2a6d1c686 | |||
78f111e12d | |||
3aed2fda6f | |||
f0298cf1c6 | |||
72183cb297 | |||
a70d4100d0 | |||
5c38ea31f3 | |||
696acf45f9 | |||
d18ba22154 | |||
a884d0cb71 | |||
ae5a6c3684 | |||
f9b7cce61c | |||
8cc3299262 | |||
c841aa8b90 | |||
b4285c71bc | |||
3d279863de | |||
8108513422 | |||
7de931c3c2 | |||
8ee09acd8f | |||
466ddf90c2 | |||
20642801e4 | |||
6b89d068bd | |||
c002922adc | |||
5ef8d77a75 | |||
bf474e2402 | |||
9968696015 | |||
2454ac7b9f | |||
14e6298f12 | |||
cf94ca8ea9 | |||
35d5ae679c | |||
ae98a0089f | |||
2292ce4785 | |||
80c49c3de2 | |||
c4b252c3d8 | |||
bf82940dbf | |||
2b6a5417d7 | |||
2e5d2003b2 | |||
23c1575f74 | |||
07b57e90f7 | |||
7bbd8d6c13 | |||
ebb7bbf769 | |||
f8aa1b6902 | |||
dc7f55cbe9 | |||
944019c8b3 | |||
a42577d4c8 | |||
50e126e185 | |||
25a31f8140 | |||
b32acd21d8 | |||
eb475bfa05 | |||
914186a5c3 | |||
0b50922abf | |||
1c7c1d179e | |||
8dca683346 | |||
17f26a9ee3 | |||
22a3d06093 | |||
be17262d13 | |||
3772923f14 | |||
3cf3b838c7 | |||
e98c6a1686 | |||
4f8b8992ef | |||
6a15416a89 | |||
d451b503a6 | |||
350b1091a8 | |||
9735a44440 | |||
132d04b565 | |||
4d8e6e1d79 | |||
788872395f | |||
d83fd33bc1 | |||
49129d3731 | |||
08541563f4 | |||
f39adc250c | |||
0f2d01d4fc | |||
7a4566befe | |||
3d1d81eba2 | |||
8faea4f3b2 | |||
3ea95d2b0e | |||
885a1ffb93 | |||
94468bc1f7 | |||
9e8f6e7f6e | |||
ae5a97fdd0 | |||
1cbe69f649 | |||
12dd111288 | |||
323b9db839 | |||
c2c5b27051 | |||
bb1dff9def | |||
abc776f788 | |||
47a845bfc3 | |||
9800a754f9 | |||
ddfb3696b9 | |||
b47dfe9e9c | |||
15624458a9 | |||
9279bf3ab6 | |||
687004b512 | |||
be49662101 | |||
d911d1465d | |||
190f53232d | |||
4fc988efe6 | |||
009318b1f1 | |||
2dd625d022 | |||
d727f676ad | |||
ff7e6aad6d | |||
55892d2398 | |||
8ca12c0d62 | |||
9002ec3ae6 | |||
39c68542fc | |||
353aaf2fa1 | |||
7eb5bbdb64 | |||
ae35785e3a | |||
68c2ec7f43 | |||
df3987717f | |||
c9a114b591 | |||
d3240d935c | |||
64912a67a4 | |||
c822255cfc | |||
fb62eb7fab | |||
38920dd6d3 | |||
3f4b609f5f | |||
cc54570925 | |||
34292bddb8 | |||
92b7de93fb | |||
a324fc45e4 | |||
c123b7c5fb | |||
7bb5321be0 | |||
ff32340669 | |||
4c6e8aa8f0 | |||
a19528c9fd | |||
960e0eb3ea | |||
8f8b8873a9 | |||
d9befc8b0b | |||
34005378ec | |||
c6dbca08ca | |||
e423ffd8a6 | |||
2fc647004a | |||
2d642a6f8a | |||
152d70f728 | |||
141201d124 | |||
8a124b82a0 | |||
cec08717cc | |||
fb098a942b | |||
50a4b35245 | |||
e9b852310e | |||
d75307084d | |||
a907e1b6ec | |||
7b9e3ce025 | |||
837e5fe95d | |||
6b9315d5a1 | |||
0ddd93b271 | |||
c7719fbe46 | |||
dd6c1360b2 | |||
3bc52d7a95 | |||
d500a1ee8f | |||
e89e2ed7c2 | |||
ea718e65fa | |||
2ce53f9b77 | |||
c9a42c4a12 | |||
df63fbbf46 | |||
22b3ddd508 | |||
dcfdbdf08b | |||
d8fab0234d | |||
280514e1df | |||
8ea6ae99b2 | |||
caf8b2fbd4 | |||
3442ea4a75 | |||
1f7903a371 | |||
cca1704897 | |||
11b8a41c45 | |||
3827210b91 | |||
42e778bfec | |||
d99bf51add | |||
8e8daf3363 | |||
e1a5977407 | |||
f296802211 | |||
fe73fc1abe | |||
f26c4940c4 | |||
c32f76f4d2 | |||
78d4096d57 | |||
373654ee0f | |||
936b7057e8 | |||
a9e67c8ccc | |||
bd7c6e7fc5 | |||
6d0e674a57 | |||
9c6c304d6a | |||
8b30ad01b4 | |||
fb3bb3d132 | |||
57d43466fb | |||
e70b9a8bd2 | |||
159c88e5ae | |||
78f8fbc9d6 | |||
a9012e343e | |||
f611c8c0d1 | |||
fcd3549ef2 | |||
f83b9ba209 | |||
3a882d9696 | |||
f53bd743ff | |||
88c44735ab | |||
a010966844 | |||
4deba8b779 | |||
6720e95b30 | |||
a583971f15 | |||
c569b1fee1 | |||
81dc223deb | |||
d4789c60aa | |||
36e3b5eafe | |||
e1f33efe07 | |||
8104ebfe82 | |||
768c728e7c | |||
4fb1a19d50 | |||
c66c0cbc7e | |||
779e3a8f8b | |||
f66bc5f928 | |||
5fdb709835 | |||
71cbf773df | |||
b80b5d6799 | |||
d5be89d8ad | |||
834caf9a7b | |||
e4df519f05 | |||
61f57cb07d | |||
48027a918d | |||
968b016a4a | |||
da12e59dd6 | |||
adcbec13b9 | |||
97bed03448 | |||
27c03aafdf | |||
055a597525 | |||
879ef2485d | |||
b3eae84dc1 | |||
2f0e7cbbb0 | |||
0693f9ddad | |||
c55fae43c4 | |||
8f1482536a | |||
a128a2cdc3 | |||
753bc911f4 | |||
75bf2cb298 | |||
a3411f8a2d | |||
2020985464 | |||
9872cd6f6c | |||
08fc060865 | |||
f5b49ea619 | |||
03c4829347 | |||
5832d1a9da | |||
efe05b019c | |||
ec9f0ea3e6 | |||
0956a6db7a | |||
32738edfca | |||
c0ceb2c32d | |||
954597bd19 | |||
ecc03c1c6d | |||
b4955fb611 | |||
e612120d23 | |||
1df2713249 | |||
912342d9d6 | |||
edfd45d2a0 | |||
737e31af7a | |||
dfab6aaecf | |||
cf219d8c68 | |||
b760d3aa74 | |||
a60272b38e | |||
b11b7e13f4 | |||
d4d1351b96 | |||
53682f0c9e | |||
d1983677f7 | |||
4fce51cf41 | |||
b54dc9fdb9 | |||
98171a07ae | |||
025a19298d | |||
90c3302173 | |||
cdad8170b2 | |||
1415be8f0f | |||
60c91181fa | |||
c5ab03f26c | |||
7bb1fcc6fc | |||
8befc50c49 | |||
390c3480b2 | |||
2fad5329f4 | |||
bf87489624 | |||
7e76aba317 | |||
0959df4525 | |||
162eba8b43 | |||
b0169d84df | |||
a126ed0a01 | |||
43cc2b4266 | |||
de0db42278 | |||
39c19ce275 | |||
a325a1a70b | |||
07e62b733f | |||
71fe945131 | |||
b8dc2f5c94 | |||
93b6d7c191 | |||
de749a972d | |||
d2ce10d7b7 | |||
5363d0744e | |||
3aa1f7ca37 | |||
0c01857df5 | |||
4a24bfc220 | |||
1b5b465fbd | |||
51ea440637 | |||
75bc9573b0 | |||
29b802aae6 | |||
7f64a661d2 | |||
64bcf58541 | |||
e882c6e3e7 | |||
9c0c1b1f28 | |||
9c996d0c24 | |||
4586864afe | |||
07bba555d4 | |||
8a33356085 | |||
3ac31e4451 | |||
95e706b5ec | |||
e10ea8126c | |||
5ec11af61d | |||
63e8dc5b14 | |||
b96524f83a | |||
f371d3ea3c | |||
0e32126f04 | |||
0516cc5cc6 | |||
3a59bb22db | |||
9712b81a76 | |||
2dd620286e | |||
d8af75d76f | |||
9b9f5a2258 | |||
fe6beab7e8 | |||
22db240dd1 | |||
a20033796b | |||
1556ef1e37 | |||
7f705dc368 | |||
304dcf262e | |||
7be77de266 | |||
47d32af233 | |||
070434d02b | |||
3f6aff6889 | |||
123ed65908 | |||
ad685681c2 | |||
c76b4c81e7 | |||
30353a40f7 | |||
5a92d19021 | |||
2d17985782 | |||
a86e8c1cfc | |||
d69da76dd0 | |||
a0fbc87cff | |||
ae26e7c749 | |||
6dbcb59e82 | |||
24b1f65fed | |||
d937c374cc | |||
2dcb5e1ac8 | |||
757c7f60a7 | |||
9b3b7fd807 | |||
deb13872be | |||
11920d28da | |||
d404bf0288 | |||
46059cc632 | |||
5413812f08 | |||
1a66a489d0 | |||
ff3c0ff20e | |||
dcbe0bd0d4 | |||
ed56049058 | |||
521ae135b7 | |||
9e8eceab73 | |||
861c68e3b6 | |||
7fb0abb195 | |||
f3413079d6 | |||
a8833ef540 | |||
6e7e87c762 | |||
8b39e04f39 | |||
3273ebc759 | |||
aaab7ea3cd | |||
39a76bdd7d | |||
363cfc1716 | |||
69f4ce5537 | |||
7f871c6ecc | |||
25b2790fff | |||
a7c5a28350 | |||
8d2dbbac21 | |||
331fcb598e | |||
388b2acd6e | |||
69530cb0c0 | |||
fe60dff744 | |||
d5cbdba843 | |||
8c1944dd34 | |||
ef4daa74af | |||
cab7d7d827 | |||
2d2b3fd848 | |||
14de7393f1 | |||
2af9664776 | |||
98cdf78c5c | |||
496db64202 | |||
455d0f5c23 | |||
608efb875f | |||
76bac89036 | |||
c0a4ae5caf | |||
6249067c61 | |||
aa14a0c3f1 | |||
78a0014d80 | |||
42fc11c110 | |||
c095a1db30 | |||
26d6cc555d | |||
73c427eb99 | |||
f20706220b | |||
ee2314f59a | |||
b5ff37ac6b | |||
b9e125e07e | |||
32716a2c6c | |||
ef3b38b445 | |||
7de1950cb2 | |||
a47551c382 | |||
d433ed0bb4 | |||
9d7ca66746 | |||
ced621b2c1 | |||
9b864e730b | |||
cbacbf4e55 | |||
3b91c30b76 | |||
f755bb996b | |||
850fb6ff81 | |||
13c6bcd49f | |||
1a93d67ba8 | |||
1905a8666a | |||
c4e8b72f22 | |||
b0a53e9e56 | |||
433ee03f97 | |||
db18a182a2 | |||
ef5133df7c | |||
6fb204266c | |||
9ddf6d7c10 | |||
36d2078ff1 | |||
f6e4110bcd | |||
3cf2801c41 | |||
6fc4a7e546 | |||
c6576f912f | |||
c2e6385da5 | |||
da3f78a29c | |||
d3f9f9a92e | |||
3c59c50d76 | |||
dbbd56f103 | |||
e11601381e | |||
68149a7197 | |||
cdc8429c94 | |||
2958228430 | |||
0c76ae2278 | |||
7c4ea599b0 | |||
47577456bf | |||
6e702c2458 | |||
b3d9888792 | |||
83b767360a | |||
357af14fc4 | |||
6e13921b4f | |||
941930732f | |||
bd45bd91e6 | |||
b8dfb16d36 | |||
67df911cee | |||
0ce76ded1b | |||
7cf4566f48 | |||
153ad78b50 | |||
d1f2b362b7 | |||
bf31115312 | |||
c9d8563c81 | |||
47a792539a | |||
8c4021abfd | |||
ea4f2bd39d | |||
a2df1fb2e5 | |||
682b451f84 | |||
0eea345111 | |||
28593d3fa0 | |||
671c9b7e31 | |||
7f87aff22c | |||
e1ca0defd2 | |||
1b3069a753 | |||
bcdd1b4456 | |||
fe4003f630 | |||
16fc08e2d8 | |||
6a004d3f2e | |||
a0d3ab9c27 | |||
59d8cb49fd | |||
b43b73666b | |||
d98d50e214 | |||
590915dab8 | |||
e7d640086e | |||
cea07cf8dc | |||
e599e7ff1f | |||
168d5bd57b | |||
ac538e5dba | |||
3e9f158c80 | |||
6d14414d21 | |||
7b51b77dbc | |||
3fdd37fe15 | |||
ecbbfb15a4 | |||
a5b2d4ac24 | |||
902a4a252a | |||
ac2abb49ce | |||
b2b80c107f | |||
72b6157aa8 | |||
459d60084f | |||
df5e12f7d4 | |||
0f639abb68 | |||
171d7661ed | |||
6cd3729eae | |||
7bc2508bfe | |||
3fcfd662dc | |||
1324fb6f16 | |||
4deca329f5 | |||
c1e255b719 | |||
14d9c57896 | |||
beece9dab8 | |||
8fd5bb7f44 | |||
5df9fcf695 | |||
74443f185e | |||
1dd1239aa3 | |||
2baf1850ce | |||
36bd844658 | |||
7f96e2e25a | |||
42fc1139a0 | |||
8bb4646dae | |||
89cf4c7004 | |||
30c4d7a76a | |||
caf0c3d692 | |||
f75c8b319f | |||
e29c0d10a2 | |||
b28ebab294 | |||
a2d2c478f3 | |||
8c1f6f6c57 | |||
20f7a39825 | |||
a9645b780b | |||
d2d188d922 | |||
986e82396a | |||
b2dc968e60 | |||
dbc4941fac | |||
bc9c0248a5 | |||
5fe9cd02c2 | |||
1e2bba92d2 | |||
6abe9c87c7 | |||
9b28d55401 | |||
218a900bd8 | |||
887a791f11 | |||
15e350552d | |||
84a76f18f0 | |||
76f15947af | |||
dde80d9c23 | |||
dd7f5f105a | |||
ec26f098a6 | |||
19fb896f5b | |||
6e5121f26e | |||
aab5720551 | |||
163f3689e9 | |||
bf98421a33 | |||
6331adb9c4 | |||
a1a846a19e | |||
d95f91d9e4 | |||
efcce2e1f0 | |||
7bc9ed0d5b | |||
5508064394 | |||
b0a7d11173 | |||
4471649f44 | |||
48a81b7cda | |||
78892e3261 | |||
d467a525da | |||
3a5e860815 | |||
0f3a290b89 | |||
fc4977e1b9 | |||
b1a46b70b3 | |||
c752a0e00c | |||
1ec2fb5fa3 | |||
158629b2c9 | |||
9f8f132621 | |||
84cdd3c635 | |||
275ee50c81 | |||
7ff866eb1b | |||
0eb5ebc1d8 | |||
7429ed2bad | |||
bfd59c493d | |||
1689c5de87 | |||
5e166843f5 | |||
59dd9ed183 | |||
538cf6b6e5 | |||
64bd76b1de | |||
08698b1e32 | |||
03d660150c | |||
3d77d8774f | |||
09ded04b7e | |||
d8f325563d | |||
0e8189e270 | |||
8b07dca18a | |||
6a509a6f7f | |||
310e0216c8 | |||
a807328979 | |||
a240de1137 | |||
069bb5765c | |||
0bc3e781de | |||
aebd173ffa | |||
f6576f4c0c | |||
9d83c6aa44 | |||
63aa1d0cb7 | |||
8c76212529 | |||
98a6846bb8 | |||
6ecfd91df5 | |||
933bb3ae5e | |||
98b35e2c74 | |||
797484392a | |||
e3e901bece | |||
8a8977425e | |||
190ec52c90 | |||
058412d097 | |||
356af64d84 | |||
304d058370 | |||
a79b8b6623 | |||
df5e91fc2c | |||
4f672ad6c7 | |||
2675773af8 | |||
c7534ef4a1 | |||
04427ac848 | |||
678852d918 | |||
72cf484140 | |||
b8492539f9 | |||
7cdc3556d1 | |||
8db49a7f6f | |||
b0be3838bb | |||
3550ea71f5 | |||
b02bd7a632 | |||
d8c2882254 | |||
cdcab133ea | |||
86295bb6ba | |||
ef2e62fe23 | |||
9ccd0a88ac | |||
7c4ed8c835 | |||
53ffb878a9 | |||
9ed19614d4 | |||
2b5c208f5b | |||
759ad19e77 | |||
20244ea2d0 | |||
f55527f802 | |||
4c1360f472 | |||
2f91bcfa9d | |||
ca6c06b2ef | |||
a157400c97 | |||
6af50f7536 | |||
d67dd17b33 | |||
69cd8f6342 | |||
500ac7f42e | |||
20341dd970 | |||
2df6442f7d | |||
bee866fa6b | |||
208f689610 | |||
f3f0c51882 | |||
99f0b59954 | |||
e249044c67 | |||
35d2f73b99 | |||
8776f5d3bb | |||
d375ef9b14 | |||
ce3f6dc655 | |||
310237b969 | |||
310d188f7e | |||
adcb2e0f46 | |||
449acfabab | |||
94d2b854eb | |||
6c1c3d1753 | |||
fd6e237d4e | |||
18e143487d | |||
edacb101ef | |||
4f2d651e5b | |||
ce6e5ff435 | |||
3aa615bc5d | |||
828e32b82e | |||
e137a892d8 | |||
a6c7db1b19 | |||
f948dd8992 | |||
971e83528d | |||
a4aefee46d | |||
3041b98a9d | |||
58e0fa5416 | |||
9cb92c390c | |||
122aa6f9c0 | |||
be58e70dba | |||
e7881c3594 | |||
a567fdcb01 | |||
33b650308c | |||
f4a75a416f | |||
59c69c0c65 | |||
b0b44bc7b2 | |||
8009768e89 | |||
6a87ed972c | |||
9441b61dc5 | |||
79056034be | |||
e845e16ee6 | |||
7e425c4fbb | |||
f2d0bbbd68 | |||
46dc1b0e33 | |||
80fe82e4eb | |||
d80d6bc146 | |||
acc8559aa3 | |||
a4f25e3682 | |||
bb64507164 | |||
72583e6c68 | |||
42f939e473 | |||
faae853ca6 | |||
e7108fcb15 | |||
63767d5fb8 | |||
968ce45c9d | |||
39ee47ef06 | |||
eee0184da8 | |||
fd631d5828 | |||
84ed4c5d11 | |||
aef405dd50 | |||
4db09304f9 | |||
09c7029dfa | |||
67faaaba83 | |||
769b008e0e | |||
7faee6b8de | |||
80bfd76af7 | |||
1b2d297e41 | |||
2b11e059ee | |||
b4666852a0 | |||
41038c5e15 | |||
06aaaa0bf7 | |||
96e117099c | |||
9991030c0c | |||
5c283eb13c | |||
b75271d93a | |||
f285a2d7ed | |||
7e7abea96b | |||
616ab43737 | |||
3fee1fe871 | |||
7f15b00273 | |||
f2df8a5bfb | |||
5c91cb5d0d | |||
f10d5b064a | |||
d4d992562e | |||
a910898e86 | |||
e782e12f89 | |||
21188b1eaf | |||
23abd3f48c | |||
01ed1079f3 | |||
52a73116a5 | |||
bc36540e6e | |||
ed187bd593 | |||
78a935d48b | |||
a3c76f2858 | |||
d5c527448d | |||
76c3fb1f84 | |||
c9618ff939 | |||
86193807cf | |||
e4fff5ce65 | |||
635536488c | |||
749bc58c5e | |||
c4f6a48969 | |||
19d4b416f4 | |||
5d1e958e24 | |||
c44276563f | |||
5de70efbd9 | |||
276328ffb8 | |||
048f276200 | |||
b724fd0944 | |||
cf10f9fdd5 | |||
668f26fff6 | |||
3e3d4ee7cb | |||
0d1d154dbe | |||
42326110b5 | |||
aed93de428 | |||
fd3a8dcbbd | |||
d627f68fbb | |||
d249610792 | |||
e5d1a4df56 | |||
c8ef0383ac | |||
a5a5a04863 | |||
52e8370bc7 | |||
bf8f2ad5f2 | |||
9126f0091f | |||
120a385afb | |||
c5ae6439d4 | |||
0433bcd9f0 | |||
7996ff335e | |||
159b321270 | |||
a476142fe7 | |||
de056402fd | |||
25dfd171d6 | |||
c85db254d9 | |||
83caecca2f | |||
ddc3d4fe84 | |||
917f3e73ec | |||
4ed62b0316 | |||
3971a9733e | |||
c306e071b3 | |||
dbf5e1e974 | |||
73811e6628 | |||
180c9f5c29 | |||
7ecbad91e9 | |||
f04f27e8b2 | |||
6b28da672e | |||
5e22e21769 | |||
f8cca019b9 | |||
72c69ebc03 | |||
adbc0b6b6e | |||
444dc90322 | |||
d2b0708e1a | |||
b35ddf41ee | |||
8b745e3ffd | |||
416f80a60b | |||
d3154b44c2 | |||
0b32cab933 | |||
2243ffcc6a | |||
902e2bb5b7 | |||
4259568d72 | |||
bb4812bc0a | |||
afd5424085 | |||
2db21e709a | |||
adcbd431e7 | |||
0d4044123c | |||
ba6485e05d | |||
8329bd0725 | |||
3c1c2a00b2 | |||
34785f8cca | |||
87539416fd | |||
c33912ae24 | |||
79fd4cc749 | |||
1d4c498670 | |||
0aea2842d9 | |||
d3bcf55d67 | |||
9800c0df41 | |||
5a139ba483 | |||
9ba929ed65 | |||
c11c7a5db3 | |||
8252df6218 | |||
d317851a7f | |||
07ad5a157d | |||
15dc66abf0 | |||
eb53586ba9 | |||
ed70e4d7db | |||
30ef1d812c | |||
ed520a8f27 | |||
1ad6d46235 | |||
6ef1daf772 | |||
d22d53db65 | |||
1fa24f8f3d | |||
81b84bcbe3 | |||
58245a5e40 | |||
ec3e97b84e | |||
de81343562 | |||
1500f7bc13 | |||
c9c6cc8d7d | |||
baede9f803 | |||
064bfbde45 | |||
697d7f5dad | |||
3b9b1163c0 | |||
3e34838caf | |||
6fc835a3f3 | |||
a1c3feb7fa | |||
3fe0162362 | |||
50102c5687 | |||
72e6b00202 | |||
696235c6c1 | |||
1ffca60f0b | |||
2cd1fd1f6d | |||
1e02b32e72 | |||
1e65c6225d | |||
e2b850b2da | |||
c4275591fb | |||
fdac6692a0 | |||
4be4680cbb | |||
c76dc9592d | |||
2beec89733 | |||
9747deb7e1 | |||
666599d798 | |||
494202524f | |||
3945d2c052 | |||
b8a640ee1a | |||
d277e89f87 | |||
92bb978541 | |||
fe33b333af | |||
3d8dccd74a | |||
1883a0d3b7 | |||
cd0843198f | |||
34a5d35bbd | |||
05e8b3d6f4 | |||
dde4af4313 | |||
3791f77c28 | |||
e69a6f47c4 | |||
c4398286fa | |||
8435bdfdc3 | |||
a1e3c2c198 | |||
b805ef08e6 | |||
cb2c7daf52 | |||
4c048e358c | |||
97d7fee2cb | |||
132c6e443c | |||
578421fbd8 | |||
8e909f80b4 | |||
27551baa3e | |||
ddf4104432 | |||
fb0863a528 | |||
97c33c6583 | |||
90d1c08efc | |||
f1f15fbfaa | |||
146ed90f02 | |||
1293c95241 | |||
8b56a18dea | |||
2fe5b2ee42 | |||
a9786bb42f | |||
746c221ad0 | |||
7a172b0dcb | |||
6bb6b0341a | |||
ede4caf6e3 | |||
414851a42e | |||
6fe570de05 | |||
ee20a129de | |||
628b06d7d7 | |||
b281eea75f | |||
da06a80322 | |||
f964732c05 | |||
1f77354b02 | |||
eaa2a6fc84 | |||
5190d73d1e | |||
a15a435ad3 | |||
e8eec71d6e | |||
d79796bcf0 | |||
40c155ff14 | |||
be5908aed3 | |||
90b4a71c49 | |||
4886b89f8f | |||
10708a994a | |||
bfd083b734 | |||
e705d757bd | |||
1364ff27dc | |||
16805d3e59 | |||
24fa13cbb7 | |||
277cd4c4bd | |||
cd50988ae0 | |||
fdfb4cfadc | |||
11bd3ddb91 | |||
e502f9e7e6 | |||
4d6e4c4d34 | |||
bb914b14c9 | |||
af9ce1ffc6 | |||
f4392df485 | |||
48196afd28 | |||
4271666046 | |||
ec3a4ba519 | |||
af9552f030 | |||
7c4d0219cf | |||
6ecb1ee28a | |||
a786091b4a | |||
5fc3e67ac0 | |||
4a09bc9664 | |||
7d66f21a1b | |||
6a54d976f6 | |||
4457d4f767 | |||
2cf3e3ac02 | |||
05427b91f0 | |||
edde9112ab | |||
8d5100c7a8 | |||
67214c85af | |||
e9a805aa2a | |||
c9ab9ee478 | |||
2cb611054a | |||
991255c634 | |||
8598db935b | |||
214a34d22e | |||
2d0c8accc3 | |||
fd33777b78 | |||
a6f63ae002 | |||
696ee23cc1 | |||
c7d849243a | |||
b7fa51da9b | |||
80d12c23de | |||
95b6a2db25 | |||
b2ca414973 | |||
8056cc4f29 | |||
29853b9010 | |||
ff515d81fa | |||
48c74a58b1 | |||
617ceee653 | |||
7e30682ce0 | |||
042c232535 | |||
700e560341 | |||
3b3d443feb | |||
cab4feb67d | |||
5e9bf11c1a | |||
3407a7a9e6 | |||
5f0bdf50c2 | |||
5033639c95 | |||
1b23adadf3 | |||
9b8ae93ad9 | |||
01914577ed | |||
53b543ab82 | |||
f3db366770 | |||
1c12b38601 | |||
14e8607c41 | |||
4afbaefffa | |||
106db883b7 | |||
5f020f7202 | |||
eede9f42b5 | |||
a8032d1224 | |||
59d94bc9c8 | |||
6eb1b43793 | |||
961a628fdd | |||
70a3f89733 | |||
eac5a40151 | |||
e910ce30e4 | |||
85e7283069 | |||
7f314565fe | |||
9d13dec549 | |||
394258190c | |||
f0e90716d4 | |||
8af84dadb1 | |||
146ea068a0 | |||
a5a818ee48 | |||
18668f5319 | |||
8a2fce1895 | |||
73118f89b8 | |||
9047ebbc22 | |||
7df437e56b | |||
0cf8581e33 | |||
29a1f99b4b | |||
c236bcd061 | |||
b541248467 | |||
387c9d4981 | |||
cc58d7dfdd | |||
83133740d9 | |||
838338cd22 | |||
e0af48e496 | |||
f2b25dd81f | |||
38901a4837 | |||
db9410990e | |||
e1afaea942 | |||
ff1e8bfcd6 | |||
498bcd3159 | |||
5059a42780 | |||
445cac18c0 | |||
e990501312 | |||
61c5d431de | |||
1f08e5ce24 | |||
c7371e992b | |||
b9f62c0e7d | |||
e321180ed3 | |||
63e8aea74e | |||
1b0f7978dd | |||
c9c4e2d5a2 | |||
f821d08921 | |||
a1184d85e8 | |||
8d13caf795 | |||
88ab18dfef | |||
b46f7e54fc | |||
5a1e8707a6 | |||
bb0d283989 | |||
bb34ca5c5f | |||
cdc7e388da | |||
cb138fede6 | |||
c7f72248e3 | |||
0f7a8f2dba | |||
68daa64df2 | |||
77aa0ae8d3 | |||
39816d60e1 | |||
460c201039 | |||
2327f61ecc | |||
1e7abc593d | |||
f7078b4091 | |||
823f7cf81d | |||
80fd76bd58 | |||
a9c80b83d4 | |||
e681cb7d6a | |||
27a6ed492b | |||
837a156197 | |||
49d3536594 | |||
98fcf840af | |||
e596cdddf3 | |||
d6096f17d2 | |||
a7b3269c4b | |||
34ad1afa71 | |||
9188ed8962 | |||
a19a424010 | |||
96cda0b106 | |||
2cb1f36d50 | |||
a9da1663df | |||
5a4a088add | |||
4be636f42c | |||
ea360dd053 | |||
1352fdbe3b | |||
99b120af70 | |||
436edc6eae | |||
1a1fcf4abe | |||
7c17205b64 | |||
5630feaf37 | |||
299c3714d4 | |||
83a1abb37d | |||
16cccd8bff | |||
4a871de896 | |||
22c09307bf | |||
99b52f2e49 | |||
1071dd6112 | |||
0a8eb7bae5 | |||
0569d7566e | |||
f02fa33605 | |||
6da9d5bf47 | |||
7c69561986 | |||
131f9a108b | |||
ea3594e041 | |||
e28a8670a6 | |||
daa0cc9a92 | |||
3814c07498 | |||
d8eec50468 | |||
614eef259f | |||
652b0bbe09 | |||
0208c9611a | |||
c8a4cbc239 | |||
55e839e378 | |||
6457e58c8f | |||
8b1d88e87a | |||
a624eaa782 | |||
4cfc24afc9 | |||
c6670b348c | |||
54514f1f14 | |||
180964f0b9 | |||
fdb2a2a600 | |||
5eac739e05 | |||
53030f8d11 | |||
3bd62c2176 | |||
695605b508 | |||
6a992e9e1d | |||
df0daf8ac0 | |||
798a945002 | |||
f5b904db6b | |||
9f2b6d2936 | |||
19a31f9c1a | |||
ffa9fd9570 | |||
84102a338d | |||
036d17feda | |||
90fb46ec83 | |||
2ebc02d32a | |||
f223824943 | |||
bfdbee9810 | |||
b259f09b18 | |||
16ce2e4c8f | |||
faf0156b27 | |||
8a3f524bf2 | |||
13613eac5b | |||
b463776086 | |||
c99db9d292 | |||
d266a98845 | |||
00b718e02d | |||
f34a9416ab | |||
5b2eeed1ba | |||
a0e46390d3 | |||
6e84b71237 | |||
aa1a0111cc | |||
bb0ceb6264 | |||
5bf707cde1 | |||
140b378d07 | |||
7cccfaa280 | |||
a57114c818 | |||
abc5d372ec | |||
e3df89a4b1 | |||
ff30fff38c | |||
725b06050a | |||
806d13b1cc | |||
6534703059 | |||
4a3d85dcf6 | |||
3970243150 | |||
548601adcc | |||
9ae8e008ab | |||
81014073f2 | |||
43df4f86e0 | |||
3d78d1f18f | |||
6546b5931e | |||
60d30b02fc | |||
6e4a86d2ed | |||
c5dc9a2829 | |||
a7a6692177 | |||
dce61e728b | |||
1b1d78fe77 | |||
87091b495e | |||
940208a771 | |||
99f1c04be0 | |||
53eda89b2f | |||
c82b0748e5 | |||
9f1ad541f9 | |||
95c539081e | |||
684ec6c63c | |||
a0406b94d5 | |||
ea27a18ce2 | |||
ccf08bc3d0 | |||
1e5f764c93 | |||
041aee31be | |||
38bd64979a |
8
.gitignore
vendored
8
.gitignore
vendored
@ -11,6 +11,7 @@ git-apply
|
||||
git-archimport
|
||||
git-archive
|
||||
git-bisect
|
||||
git-bisect--helper
|
||||
git-blame
|
||||
git-branch
|
||||
git-bundle
|
||||
@ -35,6 +36,8 @@ git-diff
|
||||
git-diff-files
|
||||
git-diff-index
|
||||
git-diff-tree
|
||||
git-difftool
|
||||
git-difftool--helper
|
||||
git-describe
|
||||
git-fast-export
|
||||
git-fast-import
|
||||
@ -51,6 +54,7 @@ git-gc
|
||||
git-get-tar-commit-id
|
||||
git-grep
|
||||
git-hash-object
|
||||
git-help
|
||||
git-http-fetch
|
||||
git-http-push
|
||||
git-imap-send
|
||||
@ -77,6 +81,7 @@ git-merge-recursive
|
||||
git-merge-resolve
|
||||
git-merge-subtree
|
||||
git-mergetool
|
||||
git-mergetool--lib
|
||||
git-mktag
|
||||
git-mktree
|
||||
git-name-rev
|
||||
@ -117,6 +122,7 @@ git-show
|
||||
git-show-branch
|
||||
git-show-index
|
||||
git-show-ref
|
||||
git-stage
|
||||
git-stash
|
||||
git-status
|
||||
git-stripspace
|
||||
@ -142,6 +148,7 @@ git-core-*/?*
|
||||
gitk-wish
|
||||
gitweb/gitweb.cgi
|
||||
test-chmtime
|
||||
test-ctype
|
||||
test-date
|
||||
test-delta
|
||||
test-dump-cache-tree
|
||||
@ -150,6 +157,7 @@ test-match-trees
|
||||
test-parse-options
|
||||
test-path-utils
|
||||
test-sha1
|
||||
test-sigchain
|
||||
common-cmds.h
|
||||
*.tar.gz
|
||||
*.dsc
|
||||
|
@ -21,8 +21,13 @@ code. For git in general, three rough rules are:
|
||||
|
||||
As for more concrete guidelines, just imitate the existing code
|
||||
(this is a good guideline, no matter which project you are
|
||||
contributing to). But if you must have a list of rules,
|
||||
here they are.
|
||||
contributing to). It is always preferable to match the _local_
|
||||
convention. New code added to git suite is expected to match
|
||||
the overall style of existing code. Modifications to existing
|
||||
code is expected to match the style the surrounding code already
|
||||
uses (even if it doesn't match the overall style of existing code).
|
||||
|
||||
But if you must have a list of rules, here they are.
|
||||
|
||||
For shell scripts specifically (not exhaustive):
|
||||
|
||||
@ -124,3 +129,6 @@ For C programs:
|
||||
used in the git core command set (unless your command is clearly
|
||||
separate from it, such as an importer to convert random-scm-X
|
||||
repositories to git).
|
||||
|
||||
- When we pass <string, length> pair to functions, we should try to
|
||||
pass them in that order.
|
||||
|
@ -6,7 +6,7 @@ MAN5_TXT=gitattributes.txt gitignore.txt gitmodules.txt githooks.txt \
|
||||
gitrepository-layout.txt
|
||||
MAN7_TXT=gitcli.txt gittutorial.txt gittutorial-2.txt \
|
||||
gitcvs-migration.txt gitcore-tutorial.txt gitglossary.txt \
|
||||
gitdiffcore.txt
|
||||
gitdiffcore.txt gitworkflows.txt
|
||||
|
||||
MAN_TXT = $(MAN1_TXT) $(MAN5_TXT) $(MAN7_TXT)
|
||||
MAN_XML=$(patsubst %.txt,%.xml,$(MAN_TXT))
|
||||
@ -32,6 +32,7 @@ DOC_MAN7=$(patsubst %.txt,%.7,$(MAN7_TXT))
|
||||
prefix?=$(HOME)
|
||||
bindir?=$(prefix)/bin
|
||||
htmldir?=$(prefix)/share/doc/git-doc
|
||||
pdfdir?=$(prefix)/share/doc/git-doc
|
||||
mandir?=$(prefix)/share/man
|
||||
man1dir=$(mandir)/man1
|
||||
man5dir=$(mandir)/man5
|
||||
@ -40,15 +41,18 @@ man7dir=$(mandir)/man7
|
||||
|
||||
ASCIIDOC=asciidoc
|
||||
ASCIIDOC_EXTRA =
|
||||
MANPAGE_XSL = callouts.xsl
|
||||
MANPAGE_XSL = manpage-normal.xsl
|
||||
XMLTO_EXTRA =
|
||||
INSTALL?=install
|
||||
RM ?= rm -f
|
||||
DOC_REF = origin/man
|
||||
HTML_REF = origin/html
|
||||
|
||||
infodir?=$(prefix)/share/info
|
||||
MAKEINFO=makeinfo
|
||||
INSTALL_INFO=install-info
|
||||
DOCBOOK2X_TEXI=docbook2x-texi
|
||||
DBLATEX=dblatex
|
||||
ifndef PERL_PATH
|
||||
PERL_PATH = /usr/bin/perl
|
||||
endif
|
||||
@ -56,13 +60,52 @@ endif
|
||||
-include ../config.mak.autogen
|
||||
-include ../config.mak
|
||||
|
||||
#
|
||||
# For asciidoc ...
|
||||
# -7.1.2, no extra settings are needed.
|
||||
# 8.0-, set ASCIIDOC8.
|
||||
#
|
||||
|
||||
#
|
||||
# For docbook-xsl ...
|
||||
# -1.68.1, set ASCIIDOC_NO_ROFF? (based on changelog from 1.73.0)
|
||||
# 1.69.0, no extra settings are needed?
|
||||
# 1.69.1-1.71.0, set DOCBOOK_SUPPRESS_SP?
|
||||
# 1.71.1, no extra settings are needed?
|
||||
# 1.72.0, set DOCBOOK_XSL_172.
|
||||
# 1.73.0-, set ASCIIDOC_NO_ROFF
|
||||
#
|
||||
|
||||
#
|
||||
# If you had been using DOCBOOK_XSL_172 in an attempt to get rid
|
||||
# of 'the ".ft C" problem' in your generated manpages, and you
|
||||
# instead ended up with weird characters around callouts, try
|
||||
# using ASCIIDOC_NO_ROFF instead (it works fine with ASCIIDOC8).
|
||||
#
|
||||
|
||||
ifdef ASCIIDOC8
|
||||
ASCIIDOC_EXTRA += -a asciidoc7compatible
|
||||
endif
|
||||
ifdef DOCBOOK_XSL_172
|
||||
ASCIIDOC_EXTRA += -a docbook-xsl-172
|
||||
ASCIIDOC_EXTRA += -a git-asciidoc-no-roff
|
||||
MANPAGE_XSL = manpage-1.72.xsl
|
||||
else
|
||||
ifdef ASCIIDOC_NO_ROFF
|
||||
# docbook-xsl after 1.72 needs the regular XSL, but will not
|
||||
# pass-thru raw roff codes from asciidoc.conf, so turn them off.
|
||||
ASCIIDOC_EXTRA += -a git-asciidoc-no-roff
|
||||
endif
|
||||
endif
|
||||
ifdef MAN_BOLD_LITERAL
|
||||
XMLTO_EXTRA += -m manpage-bold-literal.xsl
|
||||
endif
|
||||
ifdef DOCBOOK_SUPPRESS_SP
|
||||
XMLTO_EXTRA += -m manpage-suppress-sp.xsl
|
||||
endif
|
||||
|
||||
SHELL_PATH ?= $(SHELL)
|
||||
# Shell quote;
|
||||
SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
|
||||
|
||||
#
|
||||
# Please note that there is a minor bug in asciidoc.
|
||||
@ -73,6 +116,32 @@ endif
|
||||
# yourself - yes, all 6 characters of it!
|
||||
#
|
||||
|
||||
QUIET_SUBDIR0 = +$(MAKE) -C # space to separate -C and subdir
|
||||
QUIET_SUBDIR1 =
|
||||
|
||||
ifneq ($(findstring $(MAKEFLAGS),w),w)
|
||||
PRINT_DIR = --no-print-directory
|
||||
else # "make -w"
|
||||
NO_SUBDIR = :
|
||||
endif
|
||||
|
||||
ifneq ($(findstring $(MAKEFLAGS),s),s)
|
||||
ifndef V
|
||||
QUIET_ASCIIDOC = @echo ' ' ASCIIDOC $@;
|
||||
QUIET_XMLTO = @echo ' ' XMLTO $@;
|
||||
QUIET_DB2TEXI = @echo ' ' DB2TEXI $@;
|
||||
QUIET_MAKEINFO = @echo ' ' MAKEINFO $@;
|
||||
QUIET_DBLATEX = @echo ' ' DBLATEX $@;
|
||||
QUIET_XSLTPROC = @echo ' ' XSLTPROC $@;
|
||||
QUIET_GEN = @echo ' ' GEN $@;
|
||||
QUIET_STDERR = 2> /dev/null
|
||||
QUIET_SUBDIR0 = +@subdir=
|
||||
QUIET_SUBDIR1 = ;$(NO_SUBDIR) echo ' ' SUBDIR $$subdir; \
|
||||
$(MAKE) $(PRINT_DIR) -C $$subdir
|
||||
export V
|
||||
endif
|
||||
endif
|
||||
|
||||
all: html man
|
||||
|
||||
html: $(DOC_HTML)
|
||||
@ -86,7 +155,11 @@ man7: $(DOC_MAN7)
|
||||
|
||||
info: git.info gitman.info
|
||||
|
||||
install: man
|
||||
pdf: user-manual.pdf
|
||||
|
||||
install: install-man
|
||||
|
||||
install-man: man
|
||||
$(INSTALL) -d -m 755 $(DESTDIR)$(man1dir)
|
||||
$(INSTALL) -d -m 755 $(DESTDIR)$(man5dir)
|
||||
$(INSTALL) -d -m 755 $(DESTDIR)$(man7dir)
|
||||
@ -104,11 +177,15 @@ install-info: info
|
||||
echo "No directory found in $(DESTDIR)$(infodir)" >&2 ; \
|
||||
fi
|
||||
|
||||
install-pdf: pdf
|
||||
$(INSTALL) -d -m 755 $(DESTDIR)$(pdfdir)
|
||||
$(INSTALL) -m 644 user-manual.pdf $(DESTDIR)$(pdfdir)
|
||||
|
||||
install-html: html
|
||||
sh ./install-webdoc.sh $(DESTDIR)$(htmldir)
|
||||
'$(SHELL_PATH_SQ)' ./install-webdoc.sh $(DESTDIR)$(htmldir)
|
||||
|
||||
../GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE
|
||||
$(MAKE) -C ../ GIT-VERSION-FILE
|
||||
$(QUIET_SUBDIR0)../ $(QUIET_SUBDIR1) GIT-VERSION-FILE
|
||||
|
||||
-include ../GIT-VERSION-FILE
|
||||
|
||||
@ -116,8 +193,8 @@ install-html: html
|
||||
# Determine "include::" file references in asciidoc files.
|
||||
#
|
||||
doc.dep : $(wildcard *.txt) build-docdep.perl
|
||||
$(RM) $@+ $@
|
||||
$(PERL_PATH) ./build-docdep.perl >$@+
|
||||
$(QUIET_GEN)$(RM) $@+ $@ && \
|
||||
$(PERL_PATH) ./build-docdep.perl >$@+ $(QUIET_STDERR) && \
|
||||
mv $@+ $@
|
||||
|
||||
-include doc.dep
|
||||
@ -135,91 +212,105 @@ cmds_txt = cmds-ancillaryinterrogators.txt \
|
||||
$(cmds_txt): cmd-list.made
|
||||
|
||||
cmd-list.made: cmd-list.perl ../command-list.txt $(MAN1_TXT)
|
||||
$(RM) $@
|
||||
$(PERL_PATH) ./cmd-list.perl ../command-list.txt
|
||||
$(QUIET_GEN)$(RM) $@ && \
|
||||
$(PERL_PATH) ./cmd-list.perl ../command-list.txt $(QUIET_STDERR) && \
|
||||
date >$@
|
||||
|
||||
clean:
|
||||
$(RM) *.xml *.xml+ *.html *.html+ *.1 *.5 *.7
|
||||
$(RM) *.texi *.texi+ git.info gitman.info
|
||||
$(RM) *.texi *.texi+ *.texi++ git.info gitman.info
|
||||
$(RM) howto-index.txt howto/*.html doc.dep
|
||||
$(RM) technical/api-*.html technical/api-index.txt
|
||||
$(RM) $(cmds_txt) *.made
|
||||
|
||||
$(MAN_HTML): %.html : %.txt
|
||||
$(RM) $@+ $@
|
||||
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
|
||||
$(ASCIIDOC) -b xhtml11 -d manpage -f asciidoc.conf \
|
||||
$(ASCIIDOC_EXTRA) -agit_version=$(GIT_VERSION) -o $@+ $<
|
||||
$(ASCIIDOC_EXTRA) -agit_version=$(GIT_VERSION) -o $@+ $< && \
|
||||
mv $@+ $@
|
||||
|
||||
%.1 %.5 %.7 : %.xml
|
||||
$(RM) $@
|
||||
xmlto -m $(MANPAGE_XSL) man $<
|
||||
$(QUIET_XMLTO)$(RM) $@ && \
|
||||
xmlto -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $<
|
||||
|
||||
%.xml : %.txt
|
||||
$(RM) $@+ $@
|
||||
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
|
||||
$(ASCIIDOC) -b docbook -d manpage -f asciidoc.conf \
|
||||
$(ASCIIDOC_EXTRA) -agit_version=$(GIT_VERSION) -o $@+ $<
|
||||
$(ASCIIDOC_EXTRA) -agit_version=$(GIT_VERSION) -o $@+ $< && \
|
||||
mv $@+ $@
|
||||
|
||||
user-manual.xml: user-manual.txt user-manual.conf
|
||||
$(ASCIIDOC) -b docbook -d book $<
|
||||
$(QUIET_ASCIIDOC)$(ASCIIDOC) -b docbook -d book $<
|
||||
|
||||
technical/api-index.txt: technical/api-index-skel.txt \
|
||||
technical/api-index.sh $(patsubst %,%.txt,$(API_DOCS))
|
||||
cd technical && sh ./api-index.sh
|
||||
$(QUIET_GEN)cd technical && '$(SHELL_PATH_SQ)' ./api-index.sh
|
||||
|
||||
$(patsubst %,%.html,$(API_DOCS) technical/api-index): %.html : %.txt
|
||||
$(ASCIIDOC) -b xhtml11 -f asciidoc.conf \
|
||||
$(QUIET_ASCIIDOC)$(ASCIIDOC) -b xhtml11 -f asciidoc.conf \
|
||||
$(ASCIIDOC_EXTRA) -agit_version=$(GIT_VERSION) $*.txt
|
||||
|
||||
XSLT = docbook.xsl
|
||||
XSLTOPTS = --xinclude --stringparam html.stylesheet docbook-xsl.css
|
||||
|
||||
user-manual.html: user-manual.xml
|
||||
xsltproc $(XSLTOPTS) -o $@ $(XSLT) $<
|
||||
$(QUIET_XSLTPROC)xsltproc $(XSLTOPTS) -o $@ $(XSLT) $<
|
||||
|
||||
git.info: user-manual.texi
|
||||
$(MAKEINFO) --no-split -o $@ user-manual.texi
|
||||
$(QUIET_MAKEINFO)$(MAKEINFO) --no-split -o $@ user-manual.texi
|
||||
|
||||
user-manual.texi: user-manual.xml
|
||||
$(RM) $@+ $@
|
||||
$(DOCBOOK2X_TEXI) user-manual.xml --to-stdout | $(PERL_PATH) fix-texi.perl >$@+
|
||||
$(QUIET_DB2TEXI)$(RM) $@+ $@ && \
|
||||
$(DOCBOOK2X_TEXI) user-manual.xml --encoding=UTF-8 --to-stdout >$@++ && \
|
||||
$(PERL_PATH) fix-texi.perl <$@++ >$@+ && \
|
||||
rm $@++ && \
|
||||
mv $@+ $@
|
||||
|
||||
user-manual.pdf: user-manual.xml
|
||||
$(QUIET_DBLATEX)$(RM) $@+ $@ && \
|
||||
$(DBLATEX) -o $@+ -p /etc/asciidoc/dblatex/asciidoc-dblatex.xsl -s /etc/asciidoc/dblatex/asciidoc-dblatex.sty $< && \
|
||||
mv $@+ $@
|
||||
|
||||
gitman.texi: $(MAN_XML) cat-texi.perl
|
||||
$(RM) $@+ $@
|
||||
($(foreach xml,$(MAN_XML),$(DOCBOOK2X_TEXI) --to-stdout $(xml);)) | \
|
||||
$(PERL_PATH) cat-texi.perl $@ >$@+
|
||||
$(QUIET_DB2TEXI)$(RM) $@+ $@ && \
|
||||
($(foreach xml,$(MAN_XML),$(DOCBOOK2X_TEXI) --encoding=UTF-8 \
|
||||
--to-stdout $(xml) &&) true) > $@++ && \
|
||||
$(PERL_PATH) cat-texi.perl $@ <$@++ >$@+ && \
|
||||
rm $@++ && \
|
||||
mv $@+ $@
|
||||
|
||||
gitman.info: gitman.texi
|
||||
$(MAKEINFO) --no-split $*.texi
|
||||
$(QUIET_MAKEINFO)$(MAKEINFO) --no-split --no-validate $*.texi
|
||||
|
||||
$(patsubst %.txt,%.texi,$(MAN_TXT)): %.texi : %.xml
|
||||
$(RM) $@+ $@
|
||||
$(DOCBOOK2X_TEXI) --to-stdout $*.xml >$@+
|
||||
$(QUIET_DB2TEXI)$(RM) $@+ $@ && \
|
||||
$(DOCBOOK2X_TEXI) --to-stdout $*.xml >$@+ && \
|
||||
mv $@+ $@
|
||||
|
||||
howto-index.txt: howto-index.sh $(wildcard howto/*.txt)
|
||||
$(RM) $@+ $@
|
||||
sh ./howto-index.sh $(wildcard howto/*.txt) >$@+
|
||||
$(QUIET_GEN)$(RM) $@+ $@ && \
|
||||
'$(SHELL_PATH_SQ)' ./howto-index.sh $(wildcard howto/*.txt) >$@+ && \
|
||||
mv $@+ $@
|
||||
|
||||
$(patsubst %,%.html,$(ARTICLES)) : %.html : %.txt
|
||||
$(ASCIIDOC) -b xhtml11 $*.txt
|
||||
$(QUIET_ASCIIDOC)$(ASCIIDOC) -b xhtml11 $*.txt
|
||||
|
||||
WEBDOC_DEST = /pub/software/scm/git/docs
|
||||
|
||||
$(patsubst %.txt,%.html,$(wildcard howto/*.txt)): %.html : %.txt
|
||||
$(RM) $@+ $@
|
||||
sed -e '1,/^$$/d' $< | $(ASCIIDOC) -b xhtml11 - >$@+
|
||||
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
|
||||
sed -e '1,/^$$/d' $< | $(ASCIIDOC) -b xhtml11 - >$@+ && \
|
||||
mv $@+ $@
|
||||
|
||||
install-webdoc : html
|
||||
sh ./install-webdoc.sh $(WEBDOC_DEST)
|
||||
'$(SHELL_PATH_SQ)' ./install-webdoc.sh $(WEBDOC_DEST)
|
||||
|
||||
quick-install:
|
||||
sh ./install-doc-quick.sh $(DOC_REF) $(DESTDIR)$(mandir)
|
||||
quick-install: quick-install-man
|
||||
|
||||
quick-install-man:
|
||||
'$(SHELL_PATH_SQ)' ./install-doc-quick.sh $(DOC_REF) $(DESTDIR)$(mandir)
|
||||
|
||||
quick-install-html:
|
||||
'$(SHELL_PATH_SQ)' ./install-doc-quick.sh $(HTML_REF) $(DESTDIR)$(htmldir)
|
||||
|
||||
.PHONY: .FORCE-GIT-VERSION-FILE
|
||||
|
@ -45,7 +45,7 @@ Fixes since v1.5.2.1
|
||||
correctly when the branch name had slash in it.
|
||||
|
||||
- The email address of the user specified with user.email
|
||||
configuration was overriden by EMAIL environment variable.
|
||||
configuration was overridden by EMAIL environment variable.
|
||||
|
||||
- The tree parser did not warn about tree entries with
|
||||
nonsense file modes, and assumed they must be blobs.
|
||||
|
@ -7,7 +7,7 @@ Fixes since v1.6.0.1
|
||||
* Installation on platforms that needs .exe suffix to git-* programs were
|
||||
broken in 1.6.0.1.
|
||||
|
||||
* Installation on filesystems without symbolic links support did nto
|
||||
* Installation on filesystems without symbolic links support did not
|
||||
work well.
|
||||
|
||||
* In-tree documentations and test scripts now use "git foo" form to set a
|
||||
|
59
Documentation/RelNotes-1.6.1.1.txt
Normal file
59
Documentation/RelNotes-1.6.1.1.txt
Normal file
@ -0,0 +1,59 @@
|
||||
GIT v1.6.1.1 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.1
|
||||
------------------
|
||||
|
||||
* "git add frotz/nitfol" when "frotz" is a submodule should have errored
|
||||
out, but it didn't.
|
||||
|
||||
* "git apply" took file modes from the patch text and updated the mode
|
||||
bits of the target tree even when the patch was not about mode changes.
|
||||
|
||||
* "git bisect view" on Cygwin did not launch gitk
|
||||
|
||||
* "git checkout $tree" did not trigger an error.
|
||||
|
||||
* "git commit" tried to remove COMMIT_EDITMSG from the work tree by mistake.
|
||||
|
||||
* "git describe --all" complained when a commit is described with a tag,
|
||||
which was nonsense.
|
||||
|
||||
* "git diff --no-index --" did not trigger no-index (aka "use git-diff as
|
||||
a replacement of diff on untracked files") behaviour.
|
||||
|
||||
* "git format-patch -1 HEAD" on a root commit failed to produce patch
|
||||
text.
|
||||
|
||||
* "git fsck branch" did not work as advertised; instead it behaved the same
|
||||
way as "git fsck".
|
||||
|
||||
* "git log --pretty=format:%s" did not handle a multi-line subject the
|
||||
same way as built-in log listers (i.e. shortlog, --pretty=oneline, etc.)
|
||||
|
||||
* "git daemon", and "git merge-file" are more careful when freopen fails
|
||||
and barf, instead of going on and writing to unopened filehandle.
|
||||
|
||||
* "git http-push" did not like some RFC 4918 compliant DAV server
|
||||
responses.
|
||||
|
||||
* "git merge -s recursive" mistakenly overwritten an untracked file in the
|
||||
work tree upon delete/modify conflict.
|
||||
|
||||
* "git merge -s recursive" didn't leave the index unmerged for entries with
|
||||
rename/delete conflicts.
|
||||
|
||||
* "git merge -s recursive" clobbered untracked files in the work tree.
|
||||
|
||||
* "git mv -k" with more than one erroneous paths misbehaved.
|
||||
|
||||
* "git read-tree -m -u" hence branch switching incorrectly lost a
|
||||
subdirectory in rare cases.
|
||||
|
||||
* "git rebase -i" issued an unnecessary error message upon a user error of
|
||||
marking the first commit to be "squash"ed.
|
||||
|
||||
* "git shortlog" did not format a commit message with multi-line
|
||||
subject correctly.
|
||||
|
||||
Many documentation updates.
|
39
Documentation/RelNotes-1.6.1.2.txt
Normal file
39
Documentation/RelNotes-1.6.1.2.txt
Normal file
@ -0,0 +1,39 @@
|
||||
GIT v1.6.1.2 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.1.1
|
||||
--------------------
|
||||
|
||||
* The logic for rename detection in internal diff used by commands like
|
||||
"git diff" and "git blame" has been optimized to avoid loading the same
|
||||
blob repeatedly.
|
||||
|
||||
* We did not allow writing out a blob that is larger than 2GB for no good
|
||||
reason.
|
||||
|
||||
* "git format-patch -o $dir", when $dir is a relative directory, used it
|
||||
as relative to the root of the work tree, not relative to the current
|
||||
directory.
|
||||
|
||||
* v1.6.1 introduced an optimization for "git push" into a repository (A)
|
||||
that borrows its objects from another repository (B) to avoid sending
|
||||
objects that are available in repository B, when they are not yet used
|
||||
by repository A. However the code on the "git push" sender side was
|
||||
buggy and did not work when repository B had new objects that are not
|
||||
known by the sender. This caused pushing into a "forked" repository
|
||||
served by v1.6.1 software using "git push" from v1.6.1 sometimes did not
|
||||
work. The bug was purely on the "git push" sender side, and has been
|
||||
corrected.
|
||||
|
||||
* "git status -v" did not paint its diff output in colour even when
|
||||
color.ui configuration was set.
|
||||
|
||||
* "git ls-tree" learned --full-tree option to help Porcelain scripts that
|
||||
want to always see the full path regardless of the current working
|
||||
directory.
|
||||
|
||||
* "git grep" incorrectly searched in work tree paths even when they are
|
||||
marked as assume-unchanged. It now searches in the index entries.
|
||||
|
||||
* "git gc" with no grace period needlessly ejected packed but unreachable
|
||||
objects in their loose form, only to delete them right away.
|
32
Documentation/RelNotes-1.6.1.3.txt
Normal file
32
Documentation/RelNotes-1.6.1.3.txt
Normal file
@ -0,0 +1,32 @@
|
||||
GIT v1.6.1.3 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.1.2
|
||||
--------------------
|
||||
|
||||
* "git diff --binary | git apply" pipeline did not work well when
|
||||
a binary blob is changed to a symbolic link.
|
||||
|
||||
* Some combinations of -b/-w/--ignore-space-at-eol to "git diff" did
|
||||
not work as expected.
|
||||
|
||||
* "git grep" did not pass the -I (ignore binary) option when
|
||||
calling out an external grep program.
|
||||
|
||||
* "git log" and friends include HEAD to the set of starting points
|
||||
when --all is given. This makes a difference when you are not
|
||||
on any branch.
|
||||
|
||||
* "git mv" to move an untracked file to overwrite a tracked
|
||||
contents misbehaved.
|
||||
|
||||
* "git merge -s octopus" with many potential merge bases did not
|
||||
work correctly.
|
||||
|
||||
* RPM binary package installed the html manpages in a wrong place.
|
||||
|
||||
Also includes minor documentation fixes and updates.
|
||||
|
||||
|
||||
--
|
||||
git shortlog --no-merges v1.6.1.2-33-gc789350..
|
19
Documentation/RelNotes-1.6.1.4.txt
Normal file
19
Documentation/RelNotes-1.6.1.4.txt
Normal file
@ -0,0 +1,19 @@
|
||||
GIT v1.6.1.4 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.1.3
|
||||
--------------------
|
||||
|
||||
* "git fast-export" produced wrong output with some parents missing from
|
||||
commits, when the history is clock-skewed.
|
||||
|
||||
* "git fast-import" sometimes failed to read back objects it just wrote
|
||||
out and aborted, because it failed to flush stale cached data.
|
||||
|
||||
* "git repack" did not error out when necessary object was missing in the
|
||||
repository.
|
||||
|
||||
Also includes minor documentation fixes and updates.
|
||||
|
||||
--
|
||||
git shortlog --no-merges v1.6.1.3..
|
286
Documentation/RelNotes-1.6.1.txt
Normal file
286
Documentation/RelNotes-1.6.1.txt
Normal file
@ -0,0 +1,286 @@
|
||||
GIT v1.6.1 Release Notes
|
||||
========================
|
||||
|
||||
Updates since v1.6.0
|
||||
--------------------
|
||||
|
||||
When some commands (e.g. "git log", "git diff") spawn pager internally, we
|
||||
used to make the pager the parent process of the git command that produces
|
||||
output. This meant that the exit status of the whole thing comes from the
|
||||
pager, not the underlying git command. We swapped the order of the
|
||||
processes around and you will see the exit code from the command from now
|
||||
on.
|
||||
|
||||
(subsystems)
|
||||
|
||||
* gitk can call out to git-gui to view "git blame" output; git-gui in turn
|
||||
can run gitk from its blame view.
|
||||
|
||||
* Various git-gui updates including updated translations.
|
||||
|
||||
* Various gitweb updates from repo.or.cz installation.
|
||||
|
||||
* Updates to emacs bindings.
|
||||
|
||||
(portability)
|
||||
|
||||
* A few test scripts used nonportable "grep" that did not work well on
|
||||
some platforms, e.g. Solaris.
|
||||
|
||||
* Sample pre-auto-gc script has OS X support.
|
||||
|
||||
* Makefile has support for (ancient) FreeBSD 4.9.
|
||||
|
||||
(performance)
|
||||
|
||||
* Many operations that are lstat(3) heavy can be told to pre-execute
|
||||
necessary lstat(3) in parallel before their main operations, which
|
||||
potentially gives much improved performance for cold-cache cases or in
|
||||
environments with weak metadata caching (e.g. NFS).
|
||||
|
||||
* The underlying diff machinery to produce textual output has been
|
||||
optimized, which would result in faster "git blame" processing.
|
||||
|
||||
* Most of the test scripts (but not the ones that try to run servers)
|
||||
can be run in parallel.
|
||||
|
||||
* Bash completion of refnames in a repository with massive number of
|
||||
refs has been optimized.
|
||||
|
||||
* Cygwin port uses native stat/lstat implementations when applicable,
|
||||
which leads to improved performance.
|
||||
|
||||
* "git push" pays attention to alternate repositories to avoid sending
|
||||
unnecessary objects.
|
||||
|
||||
* "git svn" can rebuild an out-of-date rev_map file.
|
||||
|
||||
(usability, bells and whistles)
|
||||
|
||||
* When you mistype a command name, git helpfully suggests what it guesses
|
||||
you might have meant to say. help.autocorrect configuration can be set
|
||||
to a non-zero value to accept the suggestion when git can uniquely
|
||||
guess.
|
||||
|
||||
* The packfile machinery hopefully is more robust when dealing with
|
||||
corrupt packs if redundant objects involved in the corruption are
|
||||
available elsewhere.
|
||||
|
||||
* "git add -N path..." adds the named paths as an empty blob, so that
|
||||
subsequent "git diff" will show a diff as if they are creation events.
|
||||
|
||||
* "git add" gained a built-in synonym for people who want to say "stage
|
||||
changes" instead of "add contents to the staging area" which amounts
|
||||
to the same thing.
|
||||
|
||||
* "git apply" learned --include=paths option, similar to the existing
|
||||
--exclude=paths option.
|
||||
|
||||
* "git bisect" is careful about a user mistake and suggests testing of
|
||||
merge base first when good is not a strict ancestor of bad.
|
||||
|
||||
* "git bisect skip" can take a range of commits.
|
||||
|
||||
* "git blame" re-encodes the commit metainfo to UTF-8 from i18n.commitEncoding
|
||||
by default.
|
||||
|
||||
* "git check-attr --stdin" can check attributes for multiple paths.
|
||||
|
||||
* "git checkout --track origin/hack" used to be a syntax error. It now
|
||||
DWIMs to create a corresponding local branch "hack", i.e. acts as if you
|
||||
said "git checkout --track -b hack origin/hack".
|
||||
|
||||
* "git checkout --ours/--theirs" can be used to check out one side of a
|
||||
conflicting merge during conflict resolution.
|
||||
|
||||
* "git checkout -m" can be used to recreate the initial conflicted state
|
||||
during conflict resolution.
|
||||
|
||||
* "git cherry-pick" can also utilize rerere for conflict resolution.
|
||||
|
||||
* "git clone" learned to be verbose with -v
|
||||
|
||||
* "git commit --author=$name" can look up author name from existing
|
||||
commits.
|
||||
|
||||
* output from "git commit" has been reworded in a more concise and yet
|
||||
more informative way.
|
||||
|
||||
* "git count-objects" reports the on-disk footprint for packfiles and
|
||||
their corresponding idx files.
|
||||
|
||||
* "git daemon" learned --max-connections=<count> option.
|
||||
|
||||
* "git daemon" exports REMOTE_ADDR to record client address, so that
|
||||
spawned programs can act differently on it.
|
||||
|
||||
* "git describe --tags" favours closer lightweight tags than farther
|
||||
annotated tags now.
|
||||
|
||||
* "git diff" learned to mimic --suppress-blank-empty from GNU diff via a
|
||||
configuration option.
|
||||
|
||||
* "git diff" learned to put more sensible hunk headers for Python,
|
||||
HTML and ObjC contents.
|
||||
|
||||
* "git diff" learned to vary the a/ vs b/ prefix depending on what are
|
||||
being compared, controlled by diff.mnemonicprefix configuration.
|
||||
|
||||
* "git diff" learned --dirstat-by-file to count changed files, not number
|
||||
of lines, when summarizing the global picture.
|
||||
|
||||
* "git diff" learned "textconv" filters --- a binary or hard-to-read
|
||||
contents can be munged into human readable form and the difference
|
||||
between the results of the conversion can be viewed (obviously this
|
||||
cannot produce a patch that can be applied, so this is disabled in
|
||||
format-patch among other things).
|
||||
|
||||
* "--cached" option to "git diff has an easier to remember synonym "--staged",
|
||||
to ask "what is the difference between the given commit and the
|
||||
contents staged in the index?"
|
||||
|
||||
* "git for-each-ref" learned "refname:short" token that gives an
|
||||
unambiguously abbreviated refname.
|
||||
|
||||
* Auto-numbering of the subject lines is the default for "git
|
||||
format-patch" now.
|
||||
|
||||
* "git grep" learned to accept -z similar to GNU grep.
|
||||
|
||||
* "git help" learned to use GIT_MAN_VIEWER environment variable before
|
||||
using "man" program.
|
||||
|
||||
* "git imap-send" can optionally talk SSL.
|
||||
|
||||
* "git index-pack" is more careful against disk corruption while
|
||||
completing a thin pack.
|
||||
|
||||
* "git log --check" and "git log --exit-code" passes their underlying diff
|
||||
status with their exit status code.
|
||||
|
||||
* "git log" learned --simplify-merges, a milder variant of --full-history;
|
||||
"gitk --simplify-merges" is easier to view than with --full-history.
|
||||
|
||||
* "git log" learned "--source" to show what ref each commit was reached
|
||||
from.
|
||||
|
||||
* "git log" also learned "--simplify-by-decoration" to show the
|
||||
birds-eye-view of the topology of the history.
|
||||
|
||||
* "git log --pretty=format:" learned "%d" format element that inserts
|
||||
names of tags that point at the commit.
|
||||
|
||||
* "git merge --squash" and "git merge --no-ff" into an unborn branch are
|
||||
noticed as user errors.
|
||||
|
||||
* "git merge -s $strategy" can use a custom built strategy if you have a
|
||||
command "git-merge-$strategy" on your $PATH.
|
||||
|
||||
* "git pull" (and "git fetch") can be told to operate "-v"erbosely or
|
||||
"-q"uietly.
|
||||
|
||||
* "git push" can be told to reject deletion of refs with receive.denyDeletes
|
||||
configuration.
|
||||
|
||||
* "git rebase" honours pre-rebase hook; use --no-verify to bypass it.
|
||||
|
||||
* "git rebase -p" uses interactive rebase machinery now to preserve the merges.
|
||||
|
||||
* "git reflog expire branch" can be used in place of "git reflog expire
|
||||
refs/heads/branch".
|
||||
|
||||
* "git remote show $remote" lists remote branches one-per-line now.
|
||||
|
||||
* "git send-email" can be given revision range instead of files and
|
||||
maildirs on the command line, and automatically runs format-patch to
|
||||
generate patches for the given revision range.
|
||||
|
||||
* "git submodule foreach" subcommand allows you to iterate over checked
|
||||
out submodules.
|
||||
|
||||
* "git submodule sync" subcommands allows you to update the origin URL
|
||||
recorded in submodule directories from the toplevel .gitmodules file.
|
||||
|
||||
* "git svn branch" can create new branches on the other end.
|
||||
|
||||
* "gitweb" can use more saner PATH_INFO based URL.
|
||||
|
||||
(internal)
|
||||
|
||||
* "git hash-object" learned to lie about the path being hashed, so that
|
||||
correct gitattributes processing can be done while hashing contents
|
||||
stored in a temporary file.
|
||||
|
||||
* various callers of git-merge-recursive avoid forking it as an external
|
||||
process.
|
||||
|
||||
* Git class defined in "Git.pm" can be subclasses a bit more easily.
|
||||
|
||||
* We used to link GNU regex library as a compatibility layer for some
|
||||
platforms, but it turns out it is not necessary on most of them.
|
||||
|
||||
* Some path handling routines used fixed number of buffers used alternately
|
||||
but depending on the call depth, this arrangement led to hard to track
|
||||
bugs. This issue is being addressed.
|
||||
|
||||
|
||||
Fixes since v1.6.0
|
||||
------------------
|
||||
|
||||
All of the fixes in v1.6.0.X maintenance series are included in this
|
||||
release, unless otherwise noted.
|
||||
|
||||
* Porcelains implemented as shell scripts were utterly confused when you
|
||||
entered to a subdirectory of a work tree from sideways, following a
|
||||
symbolic link (this may need to be backported to older releases later).
|
||||
|
||||
* Tracking symbolic links would work better on filesystems whose lstat()
|
||||
returns incorrect st_size value for them.
|
||||
|
||||
* "git add" and "git update-index" incorrectly allowed adding S/F when S
|
||||
is a tracked symlink that points at a directory D that has a path F in
|
||||
it (we still need to fix a similar nonsense when S is a submodule and F
|
||||
is a path in it).
|
||||
|
||||
* "git am" after stopping at a broken patch lost --whitespace, -C, -p and
|
||||
--3way options given from the command line initially.
|
||||
|
||||
* "git diff --stdin" used to take two trees on a line and compared them,
|
||||
but we dropped support for such a use case long time ago. This has
|
||||
been resurrected.
|
||||
|
||||
* "git filter-branch" failed to rewrite a tag name with slashes in it.
|
||||
|
||||
* "git http-push" did not understand URI scheme other than opaquelocktoken
|
||||
when acquiring a lock from the server (this may need to be backported to
|
||||
older releases later).
|
||||
|
||||
* After "git rebase -p" stopped with conflicts while replaying a merge,
|
||||
"git rebase --continue" did not work (may need to be backported to older
|
||||
releases).
|
||||
|
||||
* "git revert" records relative to which parent a revert was made when
|
||||
reverting a merge. Together with new documentation that explains issues
|
||||
around reverting a merge and merging from the updated branch later, this
|
||||
hopefully will reduce user confusion (this may need to be backported to
|
||||
older releases later).
|
||||
|
||||
* "git rm --cached" used to allow an empty blob that was added earlier to
|
||||
be removed without --force, even when the file in the work tree has
|
||||
since been modified.
|
||||
|
||||
* "git push --tags --all $there" failed with generic usage message without
|
||||
telling saying these two options are incompatible.
|
||||
|
||||
* "git log --author/--committer" match used to potentially match the
|
||||
timestamp part, exposing internal implementation detail. Also these did
|
||||
not work with --fixed-strings match at all.
|
||||
|
||||
* "gitweb" did not mark non-ASCII characters imported from external HTML fragments
|
||||
correctly.
|
||||
|
||||
--
|
||||
exec >/var/tmp/1
|
||||
O=v1.6.1-rc3-74-gf66bc5f
|
||||
echo O=$(git describe master)
|
||||
git shortlog --no-merges $O..master ^maint
|
19
Documentation/RelNotes-1.6.2.1.txt
Normal file
19
Documentation/RelNotes-1.6.2.1.txt
Normal file
@ -0,0 +1,19 @@
|
||||
GIT v1.6.2.1 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.2
|
||||
------------------
|
||||
|
||||
* .gitignore learned to handle backslash as a quoting mechanism for
|
||||
comment introduction character "#".
|
||||
|
||||
* timestamp output in --date=relative mode used to display timestamps that
|
||||
are long time ago in the default mode; it now uses "N years M months
|
||||
ago", and "N years ago".
|
||||
|
||||
* git-add -i/-p now works with non-ASCII pathnames.
|
||||
|
||||
* "git hash-object -w" did not read from the configuration file from the
|
||||
correct .git directory.
|
||||
|
||||
* git-send-email learned to correctly handle multiple Cc: addresses.
|
45
Documentation/RelNotes-1.6.2.2.txt
Normal file
45
Documentation/RelNotes-1.6.2.2.txt
Normal file
@ -0,0 +1,45 @@
|
||||
GIT v1.6.2.2 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.2.1
|
||||
--------------------
|
||||
|
||||
* A longstanding confusing description of what --pickaxe option of
|
||||
git-diff does has been clarified in the documentation.
|
||||
|
||||
* "git-blame -S" did not quite work near the commits that were given
|
||||
on the command line correctly.
|
||||
|
||||
* "git diff --pickaxe-regexp" did not count overlapping matches
|
||||
correctly.
|
||||
|
||||
* "git diff" did not feed files in work-tree representation to external
|
||||
diff and textconv.
|
||||
|
||||
* "git-fetch" in a repository that was not cloned from anywhere said
|
||||
it cannot find 'origin', which was hard to understand for new people.
|
||||
|
||||
* "git-format-patch --numbered-files --stdout" did not have to die of
|
||||
incompatible options; it now simply ignores --numbered-files as no files
|
||||
are produced anyway.
|
||||
|
||||
* "git-ls-files --deleted" did not work well with GIT_DIR&GIT_WORK_TREE.
|
||||
|
||||
* "git-read-tree A B C..." without -m option has been broken for a long
|
||||
time.
|
||||
|
||||
* git-send-email ignored --in-reply-to when --no-thread was given.
|
||||
|
||||
* 'git-submodule add' did not tolerate extra slashes and ./ in the path it
|
||||
accepted from the command line; it now is more lenient.
|
||||
|
||||
* git-svn misbehaved when the project contained a path that began with
|
||||
two dashes.
|
||||
|
||||
* import-zips script (in contrib) did not compute the common directory
|
||||
prefix correctly.
|
||||
|
||||
* miscompilation of negated enum constants by old gcc (2.9) affected the
|
||||
codepaths to spawn subprocesses.
|
||||
|
||||
Many small documentation updates are included as well.
|
22
Documentation/RelNotes-1.6.2.3.txt
Normal file
22
Documentation/RelNotes-1.6.2.3.txt
Normal file
@ -0,0 +1,22 @@
|
||||
GIT v1.6.2.3 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.2.2
|
||||
--------------------
|
||||
|
||||
* Setting an octal mode value to core.sharedrepository configuration to
|
||||
restrict access to the repository to group members did not work as
|
||||
advertised.
|
||||
|
||||
* A fairly large and trivial memory leak while rev-list shows list of
|
||||
reachable objects has been identified and plugged.
|
||||
|
||||
* "git-commit --interactive" did not abort when underlying "git-add -i"
|
||||
signaled a failure.
|
||||
|
||||
* git-repack (invoked from git-gc) did not work as nicely as it should in
|
||||
a repository that borrows objects from neighbours via alternates
|
||||
mechanism especially when some packs are marked with the ".keep" flag
|
||||
to prevent them from being repacked.
|
||||
|
||||
Many small documentation updates are included as well.
|
39
Documentation/RelNotes-1.6.2.4.txt
Normal file
39
Documentation/RelNotes-1.6.2.4.txt
Normal file
@ -0,0 +1,39 @@
|
||||
GIT v1.6.2.4 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.2.3
|
||||
--------------------
|
||||
|
||||
* The configuration parser had a buffer overflow while parsing an overlong
|
||||
value.
|
||||
|
||||
* pruning reflog entries that are unreachable from the tip of the ref
|
||||
during "git reflog prune" (hence "git gc") was very inefficient.
|
||||
|
||||
* "git-add -p" lacked a way to say "q"uit to refuse staging any hunks for
|
||||
the remaining paths. You had to say "d" and then ^C.
|
||||
|
||||
* "git-checkout <tree-ish> <submodule>" did not update the index entry at
|
||||
the named path; it now does.
|
||||
|
||||
* "git-fast-export" choked when seeing a tag that does not point at commit.
|
||||
|
||||
* "git init" segfaulted when given an overlong template location via
|
||||
the --template= option.
|
||||
|
||||
* "git-ls-tree" and "git-diff-tree" used a pathspec correctly when
|
||||
deciding to descend into a subdirectory but they did not match the
|
||||
individual paths correctly. This caused pathspecs "abc/d ab" to match
|
||||
"abc/0" ("abc/d" made them decide to descend into the directory "abc/",
|
||||
and then "ab" incorrectly matched "abc/0" when it shouldn't).
|
||||
|
||||
* "git-merge-recursive" was broken when a submodule entry was involved in
|
||||
a criss-cross merge situation.
|
||||
|
||||
Many small documentation updates are included as well.
|
||||
|
||||
---
|
||||
exec >/var/tmp/1
|
||||
echo O=$(git describe maint)
|
||||
O=v1.6.2.3-38-g318b847
|
||||
git shortlog --no-merges $O..maint
|
164
Documentation/RelNotes-1.6.2.txt
Normal file
164
Documentation/RelNotes-1.6.2.txt
Normal file
@ -0,0 +1,164 @@
|
||||
GIT v1.6.2 Release Notes
|
||||
========================
|
||||
|
||||
With the next major release, "git push" into a branch that is
|
||||
currently checked out will be refused by default. You can choose
|
||||
what should happen upon such a push by setting the configuration
|
||||
variable receive.denyCurrentBranch in the receiving repository.
|
||||
|
||||
To ease the transition plan, the receiving repository of such a
|
||||
push running this release will issue a big warning when the
|
||||
configuration variable is missing. Please refer to:
|
||||
|
||||
http://git.or.cz/gitwiki/GitFaq#non-bare
|
||||
http://thread.gmane.org/gmane.comp.version-control.git/107758/focus=108007
|
||||
|
||||
for more details on the reason why this change is needed and the
|
||||
transition plan.
|
||||
|
||||
For a similar reason, "git push $there :$killed" to delete the branch
|
||||
$killed in a remote repository $there, if $killed branch is the current
|
||||
branch pointed at by its HEAD, gets a large warning. You can choose what
|
||||
should happen upon such a push by setting the configuration variable
|
||||
receive.denyDeleteCurrent in the receiving repository.
|
||||
|
||||
|
||||
Updates since v1.6.1
|
||||
--------------------
|
||||
|
||||
(subsystems)
|
||||
|
||||
* git-svn updates.
|
||||
|
||||
* gitweb updates, including a new patch view and RSS/Atom feed
|
||||
improvements.
|
||||
|
||||
* (contrib/emacs) git.el now has commands for checking out a branch,
|
||||
creating a branch, cherry-picking and reverting commits; vc-git.el
|
||||
is not shipped with git anymore (it is part of official Emacs).
|
||||
|
||||
(performance)
|
||||
|
||||
* pack-objects autodetects the number of CPUs available and uses threaded
|
||||
version.
|
||||
|
||||
(usability, bells and whistles)
|
||||
|
||||
* automatic typo correction works on aliases as well
|
||||
|
||||
* @{-1} is a way to refer to the last branch you were on. This is
|
||||
accepted not only where an object name is expected, but anywhere
|
||||
a branch name is expected and acts as if you typed the branch name.
|
||||
E.g. "git branch --track mybranch @{-1}", "git merge @{-1}", and
|
||||
"git rev-parse --symbolic-full-name @{-1}" would work as expected.
|
||||
|
||||
* When refs/remotes/origin/HEAD points at a remote tracking branch that
|
||||
has been pruned away, many git operations issued warning when they
|
||||
internally enumerated the refs. We now warn only when you say "origin"
|
||||
to refer to that pruned branch.
|
||||
|
||||
* The location of .mailmap file can be configured, and its file format was
|
||||
enhanced to allow mapping an incorrect e-mail field as well.
|
||||
|
||||
* "git add -p" learned 'g'oto action to jump directly to a hunk.
|
||||
|
||||
* "git add -p" learned to find a hunk with given text with '/'.
|
||||
|
||||
* "git add -p" optionally can be told to work with just the command letter
|
||||
without Enter.
|
||||
|
||||
* when "git am" stops upon a patch that does not apply, it shows the
|
||||
title of the offending patch.
|
||||
|
||||
* "git am --directory=<dir>" and "git am --reject" passes these options
|
||||
to underlying "git apply".
|
||||
|
||||
* "git am" learned --ignore-date option.
|
||||
|
||||
* "git blame" aligns author names better when they are spelled in
|
||||
non US-ASCII encoding.
|
||||
|
||||
* "git clone" now makes its best effort when cloning from an empty
|
||||
repository to set up configuration variables to refer to the remote
|
||||
repository.
|
||||
|
||||
* "git checkout -" is a shorthand for "git checkout @{-1}".
|
||||
|
||||
* "git cherry" defaults to whatever the current branch is tracking (if
|
||||
exists) when the <upstream> argument is not given.
|
||||
|
||||
* "git cvsserver" can be told not to add extra "via git-CVS emulator" to
|
||||
the commit log message it serves via gitcvs.commitmsgannotation
|
||||
configuration.
|
||||
|
||||
* "git cvsserver" learned to handle 'noop' command some CVS clients seem
|
||||
to expect to work.
|
||||
|
||||
* "git diff" learned a new option --inter-hunk-context to coalesce close
|
||||
hunks together and show context between them.
|
||||
|
||||
* The definition of what constitutes a word for "git diff --color-words"
|
||||
can be customized via gitattributes, command line or a configuration.
|
||||
|
||||
* "git diff" learned --patience to run "patience diff" algorithm.
|
||||
|
||||
* "git filter-branch" learned --prune-empty option that discards commits
|
||||
that do not change the contents.
|
||||
|
||||
* "git fsck" now checks loose objects in alternate object stores, instead
|
||||
of misreporting them as missing.
|
||||
|
||||
* "git gc --prune" was resurrected to allow "git gc --no-prune" and
|
||||
giving non-default expiration period e.g. "git gc --prune=now".
|
||||
|
||||
* "git grep -w" and "git grep" for fixed strings have been optimized.
|
||||
|
||||
* "git mergetool" learned -y(--no-prompt) option to disable prompting.
|
||||
|
||||
* "git rebase -i" can transplant a history down to root to elsewhere
|
||||
with --root option.
|
||||
|
||||
* "git reset --merge" is a new mode that works similar to the way
|
||||
"git checkout" switches branches, taking the local changes while
|
||||
switching to another commit.
|
||||
|
||||
* "git submodule update" learned --no-fetch option.
|
||||
|
||||
* "git tag" learned --contains that works the same way as the same option
|
||||
from "git branch".
|
||||
|
||||
|
||||
Fixes since v1.6.1
|
||||
------------------
|
||||
|
||||
All of the fixes in v1.6.1.X maintenance series are included in this
|
||||
release, unless otherwise noted.
|
||||
|
||||
Here are fixes that this release has, but have not been backported to
|
||||
v1.6.1.X series.
|
||||
|
||||
* "git-add sub/file" when sub is a submodule incorrectly added the path to
|
||||
the superproject.
|
||||
|
||||
* "git bundle" did not exclude annotated tags even when a range given
|
||||
from the command line wanted to.
|
||||
|
||||
* "git filter-branch" unnecessarily refused to work when you had
|
||||
checked out a different commit from what is recorded in the superproject
|
||||
index in a submodule.
|
||||
|
||||
* "git filter-branch" incorrectly tried to update a nonexistent work tree
|
||||
at the end when it is run in a bare repository.
|
||||
|
||||
* "git gc" did not work if your repository was created with an ancient git
|
||||
and never had any pack files in it before.
|
||||
|
||||
* "git mergetool" used to ignore autocrlf and other attributes
|
||||
based content rewriting.
|
||||
|
||||
* branch switching and merges had a silly bug that did not validate
|
||||
the correct directory when making sure an existing subdirectory is
|
||||
clean.
|
||||
|
||||
* "git -p cmd" when cmd is not a built-in one left the display in funny state
|
||||
when killed in the middle.
|
182
Documentation/RelNotes-1.6.3.txt
Normal file
182
Documentation/RelNotes-1.6.3.txt
Normal file
@ -0,0 +1,182 @@
|
||||
GIT v1.6.3 Release Notes
|
||||
========================
|
||||
|
||||
With the next major release, "git push" into a branch that is
|
||||
currently checked out will be refused by default. You can choose
|
||||
what should happen upon such a push by setting the configuration
|
||||
variable receive.denyCurrentBranch in the receiving repository.
|
||||
|
||||
To ease the transition plan, the receiving repository of such a
|
||||
push running this release will issue a big warning when the
|
||||
configuration variable is missing. Please refer to:
|
||||
|
||||
http://git.or.cz/gitwiki/GitFaq#non-bare
|
||||
http://thread.gmane.org/gmane.comp.version-control.git/107758/focus=108007
|
||||
|
||||
for more details on the reason why this change is needed and the
|
||||
transition plan.
|
||||
|
||||
For a similar reason, "git push $there :$killed" to delete the branch
|
||||
$killed in a remote repository $there, if $killed branch is the current
|
||||
branch pointed at by its HEAD, gets a large warning. You can choose what
|
||||
should happen upon such a push by setting the configuration variable
|
||||
receive.denyDeleteCurrent in the receiving repository.
|
||||
|
||||
When the user does not tell "git push" what to push, it has always
|
||||
pushed matching refs. For some people it is unexpected, and a new
|
||||
configuration variable push.default has been introduced to allow
|
||||
changing a different default behaviour. To advertise the new feature,
|
||||
a big warning is issued if this is not configured and a git push without
|
||||
arguments is attempted.
|
||||
|
||||
|
||||
Updates since v1.6.2
|
||||
--------------------
|
||||
|
||||
(subsystems)
|
||||
|
||||
* various git-svn updates.
|
||||
|
||||
(performance)
|
||||
|
||||
* many uses of lstat(2) in the codepath for "git checkout" have been
|
||||
optimized out.
|
||||
|
||||
(usability, bells and whistles)
|
||||
|
||||
* Boolean configuration variable yes/no can be written as on/off.
|
||||
|
||||
* rsync:/path/to/repo can be used to run git over rsync for local
|
||||
repositories. It may not be useful in practice; meant primarily for
|
||||
testing.
|
||||
|
||||
* http transport learned to prompt and use password when fetching from or
|
||||
pushing to http://user@host.xz/ URL.
|
||||
|
||||
* (msysgit) progress output that is sent over the sideband protocol can
|
||||
be handled appropriately in Windows console.
|
||||
|
||||
* "--pretty=<style>" option to the log family of commands can now be
|
||||
spelled as "--format=<style>". In addition, --format=%formatstring
|
||||
is a short-hand for --pretty=tformat:%formatstring.
|
||||
|
||||
* "--oneline" is a synonym for "--pretty=oneline --abbrev-commit".
|
||||
|
||||
* "--graph" to the "git log" family can draw the commit ancestry graph
|
||||
in colors.
|
||||
|
||||
* If you realize that you botched the patch when you are editing hunks
|
||||
with the 'edit' action in git-add -i/-p, you can abort the editor to
|
||||
tell git not to apply it.
|
||||
|
||||
* @{-1} is a new way to refer to the last branch you were on introduced in
|
||||
1.6.2, but the initial implementation did not teach this to a few
|
||||
commands. Now the syntax works with "branch -m @{-1} newname".
|
||||
|
||||
* git-archive learned --output=<file> option.
|
||||
|
||||
* git-archive takes attributes from the tree being archived; strictly
|
||||
speaking, this is an incompatible behaviour change, but is a good one.
|
||||
Use --worktree-attributes option to allow it to read attributes from
|
||||
the work tree as before (deprecated git-tar tree command always reads
|
||||
attributes from the work tree).
|
||||
|
||||
* git-bisect shows not just the number of remaining commits whose goodness
|
||||
is unknown, but also shows the estimated number of remaining rounds.
|
||||
|
||||
* You can give --date=<format> option to git-blame.
|
||||
|
||||
* "git-branch -r" shows HEAD symref that points at a remote branch in
|
||||
interest of each tracked remote repository.
|
||||
|
||||
* "git-branch -v -v" is a new way to get list of names for branches and the
|
||||
"upstream" branch for them.
|
||||
|
||||
* git-config learned -e option to open an editor to edit the config file
|
||||
directly.
|
||||
|
||||
* git-clone runs post-checkout hook when run without --no-checkout.
|
||||
|
||||
* git-difftool is now part of the officially supported command, primarily
|
||||
maintained by David Aguilar.
|
||||
|
||||
* git-for-each-ref learned a new "upstream" token.
|
||||
|
||||
* git-format-patch can be told to use attachment with a new configuration,
|
||||
format.attach.
|
||||
|
||||
* git-format-patch can be told to produce deep or shallow message threads.
|
||||
|
||||
* git-format-patch can be told to always add sign-off with a configuration
|
||||
variable.
|
||||
|
||||
* git-format-patch learned format.headers configuration to add extra
|
||||
header fields to the output. This behaviour is similar to the existing
|
||||
--add-header=<header> option of the command.
|
||||
|
||||
* git-format-patch gives human readable names to the attached files, when
|
||||
told to send patches as attachments.
|
||||
|
||||
* git-grep learned to highlight the found substrings in color.
|
||||
|
||||
* git-imap-send learned to work around Thunderbird's inability to easily
|
||||
disable format=flowed with a new configuration, imap.preformattedHTML.
|
||||
|
||||
* git-rebase can be told to rebase the series even if your branch is a
|
||||
descendant of the commit you are rebasing onto with --force-rebase
|
||||
option.
|
||||
|
||||
* git-rebase can be told to report diffstat with the --stat option.
|
||||
|
||||
* Output from git-remote command has been vastly improved.
|
||||
|
||||
* "git remote update --prune $remote" updates from the named remote and
|
||||
then prunes stale tracking branches.
|
||||
|
||||
* git-send-email learned --confirm option to review the Cc: list before
|
||||
sending the messages out.
|
||||
|
||||
(developers)
|
||||
|
||||
* Test scripts can be run under valgrind.
|
||||
|
||||
* Test scripts can be run with installed git.
|
||||
|
||||
* Makefile learned 'coverage' option to run the test suites with
|
||||
coverage tracking enabled.
|
||||
|
||||
* Building the manpages with docbook-xsl between 1.69.1 and 1.71.1 now
|
||||
requires setting DOCBOOK_SUPPRESS_SP to work around a docbook-xsl bug.
|
||||
This workaround used to be enabled by default, but causes problems
|
||||
with newer versions of docbook-xsl. In addition, there are a few more
|
||||
knobs you can tweak to work around issues with various versions of the
|
||||
docbook-xsl package. See comments in Documentation/Makefile for details.
|
||||
|
||||
* Support for building and testing a subset of git on a system without a
|
||||
working perl has been improved.
|
||||
|
||||
|
||||
Fixes since v1.6.2
|
||||
------------------
|
||||
|
||||
All of the fixes in v1.6.2.X maintenance series are included in this
|
||||
release, unless otherwise noted.
|
||||
|
||||
Here are fixes that this release has, but have not been backported to
|
||||
v1.6.2.X series.
|
||||
|
||||
* "git-apply" rejected a patch that swaps two files (i.e. renames A to B
|
||||
and B to A at the same time). May need to be backported by cherry
|
||||
picking d8c81df and then 7fac0ee).
|
||||
|
||||
* The initial checkout did not read the attributes from the .gitattribute
|
||||
file that is being checked out.
|
||||
|
||||
* git-gc spent excessive amount of time to decide if an object appears
|
||||
in a locally existing pack (if needed, backport by merging 69e020a).
|
||||
|
||||
---
|
||||
exec >/var/tmp/1
|
||||
O=v1.6.3-rc2
|
||||
echo O=$(git describe master)
|
||||
git shortlog --no-merges $O..master ^maint
|
@ -71,7 +71,7 @@ run git diff --check on your changes before you commit.
|
||||
|
||||
(1a) Try to be nice to older C compilers
|
||||
|
||||
We try to support wide range of C compilers to compile
|
||||
We try to support a wide range of C compilers to compile
|
||||
git with. That means that you should not use C99 initializers, even
|
||||
if a lot of compilers grok it.
|
||||
|
||||
@ -376,9 +376,36 @@ Thunderbird
|
||||
|
||||
(A Large Angry SCM)
|
||||
|
||||
By default, Thunderbird will both wrap emails as well as flag them as
|
||||
being 'format=flowed', both of which will make the resulting email unusable
|
||||
by git.
|
||||
|
||||
Here are some hints on how to successfully submit patches inline using
|
||||
Thunderbird.
|
||||
|
||||
There are two different approaches. One approach is to configure
|
||||
Thunderbird to not mangle patches. The second approach is to use
|
||||
an external editor to keep Thunderbird from mangling the patches.
|
||||
|
||||
Approach #1 (configuration):
|
||||
|
||||
This recipe is current as of Thunderbird 2.0.0.19. Three steps:
|
||||
1. Configure your mail server composition as plain text
|
||||
Edit...Account Settings...Composition & Addressing,
|
||||
uncheck 'Compose Messages in HTML'.
|
||||
2. Configure your general composition window to not wrap
|
||||
Edit..Preferences..Composition, wrap plain text messages at 0
|
||||
3. Disable the use of format=flowed
|
||||
Edit..Preferences..Advanced..Config Editor. Search for:
|
||||
mailnews.send_plaintext_flowed
|
||||
toggle it to make sure it is set to 'false'.
|
||||
|
||||
After that is done, you should be able to compose email as you
|
||||
otherwise would (cut + paste, git-format-patch | git-imap-send, etc),
|
||||
and the patches should not be mangled.
|
||||
|
||||
Approach #2 (external editor):
|
||||
|
||||
This recipe appears to work with the current [*1*] Thunderbird from Suse.
|
||||
|
||||
The following Thunderbird extensions are needed:
|
||||
@ -464,6 +491,12 @@ message, complete the addressing and subject fields, and press send.
|
||||
Gmail
|
||||
-----
|
||||
|
||||
GMail does not appear to have any way to turn off line wrapping in the web
|
||||
interface, so this will mangle any emails that you send. You can however
|
||||
use any IMAP email client to connect to the google imap server, and forward
|
||||
the emails through that. Just make sure to disable line wrapping in that
|
||||
email client. Alternatively, use "git send-email" instead.
|
||||
|
||||
Submitting properly formatted patches via Gmail is simple now that
|
||||
IMAP support is available. First, edit your ~/.gitconfig to specify your
|
||||
account settings:
|
||||
@ -476,6 +509,9 @@ account settings:
|
||||
port = 993
|
||||
sslverify = false
|
||||
|
||||
You might need to instead use: folder = "[Google Mail]/Drafts" if you get an error
|
||||
that the "Folder doesn't exist".
|
||||
|
||||
Next, ensure that your Gmail settings are correct. In "Settings" the
|
||||
"Use Unicode (UTF-8) encoding for outgoing messages" should be checked.
|
||||
|
||||
@ -486,3 +522,4 @@ command to send the patch emails to your Gmail Drafts folder.
|
||||
|
||||
Go to your Gmail account, open the Drafts folder, find the patch email, fill
|
||||
in the To: and CC: fields and send away!
|
||||
|
||||
|
@ -7,6 +7,9 @@
|
||||
# Show GIT link as: <command>(<section>); if section is defined, else just show
|
||||
# the command.
|
||||
|
||||
[macros]
|
||||
(?su)[\\]?(?P<name>linkgit):(?P<target>\S*?)\[(?P<attrlist>.*?)\]=
|
||||
|
||||
[attributes]
|
||||
asterisk=*
|
||||
plus=+
|
||||
@ -24,7 +27,7 @@ ifdef::backend-docbook[]
|
||||
endif::backend-docbook[]
|
||||
|
||||
ifdef::backend-docbook[]
|
||||
ifndef::docbook-xsl-172[]
|
||||
ifndef::git-asciidoc-no-roff[]
|
||||
# "unbreak" docbook-xsl v1.68 for manpages. v1.69 works with or without this.
|
||||
# v1.72 breaks with this because it replaces dots not in roff requests.
|
||||
[listingblock]
|
||||
@ -39,16 +42,16 @@ ifdef::doctype-manpage[]
|
||||
endif::doctype-manpage[]
|
||||
</literallayout>
|
||||
{title#}</example>
|
||||
endif::docbook-xsl-172[]
|
||||
endif::git-asciidoc-no-roff[]
|
||||
|
||||
ifdef::docbook-xsl-172[]
|
||||
ifdef::git-asciidoc-no-roff[]
|
||||
ifdef::doctype-manpage[]
|
||||
# The following two small workarounds insert a simple paragraph after screen
|
||||
[listingblock]
|
||||
<example><title>{title}</title>
|
||||
<screen>
|
||||
<literallayout>
|
||||
|
|
||||
</screen><simpara></simpara>
|
||||
</literallayout><simpara></simpara>
|
||||
{title#}</example>
|
||||
|
||||
[verseblock]
|
||||
@ -56,10 +59,11 @@ ifdef::doctype-manpage[]
|
||||
{title%}<literallayout{id? id="{id}"}>
|
||||
{title#}<literallayout>
|
||||
|
|
||||
</literallayout><simpara></simpara>
|
||||
</literallayout>
|
||||
{title#}</para></formalpara>
|
||||
{title%}<simpara></simpara>
|
||||
endif::doctype-manpage[]
|
||||
endif::docbook-xsl-172[]
|
||||
endif::git-asciidoc-no-roff[]
|
||||
endif::backend-docbook[]
|
||||
|
||||
ifdef::doctype-manpage[]
|
||||
|
@ -39,7 +39,14 @@ of lines before or after the line given by <start>.
|
||||
Show raw timestamp (Default: off).
|
||||
|
||||
-S <revs-file>::
|
||||
Use revs from revs-file instead of calling linkgit:git-rev-list[1].
|
||||
Use revisions from revs-file instead of calling linkgit:git-rev-list[1].
|
||||
|
||||
--reverse::
|
||||
Walk history forward instead of backward. Instead of showing
|
||||
the revision in which a line appeared, this shows the last
|
||||
revision in which a line has existed. This requires a range of
|
||||
revision like START..END where the path to blame exists in
|
||||
START.
|
||||
|
||||
-p::
|
||||
--porcelain::
|
||||
@ -49,6 +56,13 @@ of lines before or after the line given by <start>.
|
||||
Show the result incrementally in a format designed for
|
||||
machine consumption.
|
||||
|
||||
--encoding=<encoding>::
|
||||
Specifies the encoding used to output author names
|
||||
and commit summaries. Setting it to `none` makes blame
|
||||
output unconverted data. For more information see the
|
||||
discussion about encoding in the linkgit:git-log[1]
|
||||
manual page.
|
||||
|
||||
--contents <file>::
|
||||
When <rev> is not specified, the command annotates the
|
||||
changes starting backwards from the working tree copy.
|
||||
@ -56,11 +70,19 @@ of lines before or after the line given by <start>.
|
||||
tree copy has the contents of the named file (specify
|
||||
`-` to make the command read from the standard input).
|
||||
|
||||
--date <format>::
|
||||
The value is one of the following alternatives:
|
||||
{relative,local,default,iso,rfc,short}. If --date is not
|
||||
provided, the value of the blame.date config variable is
|
||||
used. If the blame.date config variable is also not set, the
|
||||
iso format is used. For more information, See the discussion
|
||||
of the --date option at linkgit:git-log[1].
|
||||
|
||||
-M|<num>|::
|
||||
Detect moving lines in the file as well. When a commit
|
||||
moves a block of lines in a file (e.g. the original file
|
||||
has A and then B, and the commit changes it to B and
|
||||
then A), traditional 'blame' algorithm typically blames
|
||||
then A), the traditional 'blame' algorithm typically blames
|
||||
the lines that were moved up (i.e. B) to the parent and
|
||||
assigns blame to the lines that were moved down (i.e. A)
|
||||
to the child commit. With this option, both groups of lines
|
||||
@ -76,8 +98,8 @@ commit.
|
||||
files that were modified in the same commit. This is
|
||||
useful when you reorganize your program and move code
|
||||
around across files. When this option is given twice,
|
||||
the command looks for copies from all other files in the
|
||||
parent for the commit that creates the file in addition.
|
||||
the command additionally looks for copies from all other
|
||||
files in the parent for the commit that creates the file.
|
||||
+
|
||||
<num> is optional but it is the lower bound on the number of
|
||||
alphanumeric characters that git must detect as moving
|
||||
|
@ -1,30 +0,0 @@
|
||||
<!-- callout.xsl: converts asciidoc callouts to man page format -->
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
|
||||
<xsl:template match="co">
|
||||
<xsl:value-of select="concat('\fB(',substring-after(@id,'-'),')\fR')"/>
|
||||
</xsl:template>
|
||||
<xsl:template match="calloutlist">
|
||||
<xsl:text>.sp </xsl:text>
|
||||
<xsl:apply-templates/>
|
||||
<xsl:text> </xsl:text>
|
||||
</xsl:template>
|
||||
<xsl:template match="callout">
|
||||
<xsl:value-of select="concat('\fB',substring-after(@arearefs,'-'),'. \fR')"/>
|
||||
<xsl:apply-templates/>
|
||||
<xsl:text>.br </xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<!-- sorry, this is not about callouts, but attempts to work around
|
||||
spurious .sp at the tail of the line docbook stylesheets seem to add -->
|
||||
<xsl:template match="simpara">
|
||||
<xsl:variable name="content">
|
||||
<xsl:apply-templates/>
|
||||
</xsl:variable>
|
||||
<xsl:value-of select="normalize-space($content)"/>
|
||||
<xsl:if test="not(ancestor::authorblurb) and
|
||||
not(ancestor::personblurb)">
|
||||
<xsl:text> </xsl:text>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
@ -18,8 +18,12 @@ close TMP;
|
||||
|
||||
printf '\input texinfo
|
||||
@setfilename gitman.info
|
||||
@documentencoding us-ascii
|
||||
@node Top,,%s
|
||||
@documentencoding UTF-8
|
||||
@dircategory Development
|
||||
@direntry
|
||||
* Git Man Pages: (gitman). Manual pages for Git revision control system
|
||||
@end direntry
|
||||
@node Top,,, (dir)
|
||||
@top Git Manual Pages
|
||||
@documentlanguage en
|
||||
@menu
|
||||
|
@ -2,15 +2,15 @@ CONFIGURATION FILE
|
||||
------------------
|
||||
|
||||
The git configuration file contains a number of variables that affect
|
||||
the git command's behavior. `.git/config` file for each repository
|
||||
is used to store the information for that repository, and
|
||||
`$HOME/.gitconfig` is used to store per user information to give
|
||||
fallback values for `.git/config` file. The file `/etc/gitconfig`
|
||||
can be used to store system-wide defaults.
|
||||
the git command's behavior. The `.git/config` file in each repository
|
||||
is used to store the configuration for that repository, and
|
||||
`$HOME/.gitconfig` is used to store a per-user configuration as
|
||||
fallback values for the `.git/config` file. The file `/etc/gitconfig`
|
||||
can be used to store a system-wide default configuration.
|
||||
|
||||
They can be used by both the git plumbing
|
||||
and the porcelains. The variables are divided into sections, where
|
||||
in the fully qualified variable name the variable itself is the last
|
||||
The configuration variables are used by both the git plumbing
|
||||
and the porcelains. The variables are divided into sections, wherein
|
||||
the fully qualified variable name of the variable itself is the last
|
||||
dot-separated segment and the section name is everything before the last
|
||||
dot. The variable names are case-insensitive and only alphanumeric
|
||||
characters are allowed. Some variables may appear multiple times.
|
||||
@ -25,35 +25,35 @@ blank lines are ignored.
|
||||
The file consists of sections and variables. A section begins with
|
||||
the name of the section in square brackets and continues until the next
|
||||
section begins. Section names are not case sensitive. Only alphanumeric
|
||||
characters, '`-`' and '`.`' are allowed in section names. Each variable
|
||||
must belong to some section, which means that there must be section
|
||||
header before first setting of a variable.
|
||||
characters, `-` and `.` are allowed in section names. Each variable
|
||||
must belong to some section, which means that there must be a section
|
||||
header before the first setting of a variable.
|
||||
|
||||
Sections can be further divided into subsections. To begin a subsection
|
||||
put its name in double quotes, separated by space from the section name,
|
||||
in the section header, like in example below:
|
||||
in the section header, like in the example below:
|
||||
|
||||
--------
|
||||
[section "subsection"]
|
||||
|
||||
--------
|
||||
|
||||
Subsection names can contain any characters except newline (doublequote
|
||||
'`"`' and backslash have to be escaped as '`\"`' and '`\\`',
|
||||
respectively) and are case sensitive. Section header cannot span multiple
|
||||
Subsection names are case sensitive and can contain any characters except
|
||||
newline (doublequote `"` and backslash have to be escaped as `\"` and `\\`,
|
||||
respectively). Section headers cannot span multiple
|
||||
lines. Variables may belong directly to a section or to a given subsection.
|
||||
You can have `[section]` if you have `[section "subsection"]`, but you
|
||||
don't need to.
|
||||
|
||||
There is also (case insensitive) alternative `[section.subsection]` syntax.
|
||||
In this syntax subsection names follow the same restrictions as for section
|
||||
name.
|
||||
There is also a case insensitive alternative `[section.subsection]` syntax.
|
||||
In this syntax, subsection names follow the same restrictions as for section
|
||||
names.
|
||||
|
||||
All the other lines are recognized as setting variables, in the form
|
||||
'name = value'. If there is no equal sign on the line, the entire line
|
||||
is taken as 'name' and the variable is recognized as boolean "true".
|
||||
The variable names are case-insensitive and only alphanumeric
|
||||
characters and '`-`' are allowed. There can be more than one value
|
||||
characters and `-` are allowed. There can be more than one value
|
||||
for a given variable; we say then that variable is multivalued.
|
||||
|
||||
Leading and trailing whitespace in a variable value is discarded.
|
||||
@ -61,26 +61,26 @@ Internal whitespace within a variable value is retained verbatim.
|
||||
|
||||
The values following the equals sign in variable assign are all either
|
||||
a string, an integer, or a boolean. Boolean values may be given as yes/no,
|
||||
0/1 or true/false. Case is not significant in boolean values, when
|
||||
0/1, true/false or on/off. Case is not significant in boolean values, when
|
||||
converting value to the canonical form using '--bool' type specifier;
|
||||
'git-config' will ensure that the output is "true" or "false".
|
||||
|
||||
String values may be entirely or partially enclosed in double quotes.
|
||||
You need to enclose variable value in double quotes if you want to
|
||||
preserve leading or trailing whitespace, or if variable value contains
|
||||
beginning of comment characters (if it contains '#' or ';').
|
||||
Double quote '`"`' and backslash '`\`' characters in variable value must
|
||||
be escaped: use '`\"`' for '`"`' and '`\\`' for '`\`'.
|
||||
You need to enclose variable values in double quotes if you want to
|
||||
preserve leading or trailing whitespace, or if the variable value contains
|
||||
comment characters (i.e. it contains '#' or ';').
|
||||
Double quote `"` and backslash `\` characters in variable values must
|
||||
be escaped: use `\"` for `"` and `\\` for `\`.
|
||||
|
||||
The following escape sequences (beside '`\"`' and '`\\`') are recognized:
|
||||
'`\n`' for newline character (NL), '`\t`' for horizontal tabulation (HT, TAB)
|
||||
and '`\b`' for backspace (BS). No other char escape sequence, nor octal
|
||||
The following escape sequences (beside `\"` and `\\`) are recognized:
|
||||
`\n` for newline character (NL), `\t` for horizontal tabulation (HT, TAB)
|
||||
and `\b` for backspace (BS). No other char escape sequence, nor octal
|
||||
char sequences are valid.
|
||||
|
||||
Variable value ending in a '`\`' is continued on the next line in the
|
||||
Variable values ending in a `\` are continued on the next line in the
|
||||
customary UNIX fashion.
|
||||
|
||||
Some variables may require special value format.
|
||||
Some variables may require a special value format.
|
||||
|
||||
Example
|
||||
~~~~~~~
|
||||
@ -117,6 +117,17 @@ core.fileMode::
|
||||
the working copy are ignored; useful on broken filesystems like FAT.
|
||||
See linkgit:git-update-index[1]. True by default.
|
||||
|
||||
core.ignoreCygwinFSTricks::
|
||||
This option is only used by Cygwin implementation of Git. If false,
|
||||
the Cygwin stat() and lstat() functions are used. This may be useful
|
||||
if your repository consists of a few separate directories joined in
|
||||
one hierarchy using Cygwin mount. If true, Git uses native Win32 API
|
||||
whenever it is possible and falls back to Cygwin functions only to
|
||||
handle symbol links. The native mode is more than twice faster than
|
||||
normal Cygwin l/stat() functions. True by default, unless core.filemode
|
||||
is true, in which case ignoreCygwinFSTricks is ignored as Cygwin's
|
||||
POSIX emulation is required to support core.filemode.
|
||||
|
||||
core.trustctime::
|
||||
If false, the ctime differences between the index and the
|
||||
working copy are ignored; useful when the inode change time
|
||||
@ -210,6 +221,11 @@ core.gitProxy::
|
||||
Can be overridden by the 'GIT_PROXY_COMMAND' environment variable
|
||||
(which always applies universally, without the special "for"
|
||||
handling).
|
||||
+
|
||||
The special string `none` can be used as the proxy command to
|
||||
specify that no proxy be used for a given domain pattern.
|
||||
This is useful for excluding servers inside a firewall from
|
||||
proxy use, while defaulting to a common proxy for external domains.
|
||||
|
||||
core.ignoreStat::
|
||||
If true, commands which modify both the working tree and the index
|
||||
@ -279,8 +295,10 @@ core.sharedRepository::
|
||||
group-shareable. When 'umask' (or 'false'), git will use permissions
|
||||
reported by umask(2). When '0xxx', where '0xxx' is an octal number,
|
||||
files in the repository will have this mode value. '0xxx' will override
|
||||
user's umask value, and thus, users with a safe umask (0077) can use
|
||||
this option. Examples: '0660' is equivalent to 'group'. '0640' is a
|
||||
user's umask value (whereas the other options will only override
|
||||
requested parts of the user's umask value). Examples: '0660' will make
|
||||
the repo read/write-able for the owner and group, but inaccessible to
|
||||
others (equivalent to 'group' unless umask is e.g. '0022'). '0640' is a
|
||||
repository that is group-readable but not group-writable.
|
||||
See linkgit:git-init[1]. False by default.
|
||||
|
||||
@ -371,9 +389,9 @@ core.pager::
|
||||
to override git's default settings this way, you need
|
||||
to be explicit. For example, to disable the S option
|
||||
in a backward compatible manner, set `core.pager`
|
||||
to "`less -+$LESS -FRX`". This will be passed to the
|
||||
to `less -+$LESS -FRX`. This will be passed to the
|
||||
shell by git, which will translate the final command to
|
||||
"`LESS=FRSX less -+FRSX -FRX`".
|
||||
`LESS=FRSX less -+FRSX -FRX`.
|
||||
|
||||
core.whitespace::
|
||||
A comma separated list of common whitespace problems to
|
||||
@ -402,6 +420,20 @@ data writes properly, but can be useful for filesystems that do not use
|
||||
journalling (traditional UNIX filesystems) or that only journal metadata
|
||||
and not file contents (OS X's HFS+, or Linux ext3 with "data=writeback").
|
||||
|
||||
core.preloadindex::
|
||||
Enable parallel index preload for operations like 'git diff'
|
||||
+
|
||||
This can speed up operations like 'git diff' and 'git status' especially
|
||||
on filesystems like NFS that have weak caching semantics and thus
|
||||
relatively high IO latencies. With this set to 'true', git will do the
|
||||
index comparison to the filesystem data in parallel, allowing
|
||||
overlapping IO's.
|
||||
|
||||
core.unreliableHardlinks::
|
||||
Some filesystem drivers cannot properly handle hardlinking a file
|
||||
and deleting the source right away. In such a case, you need to
|
||||
set this config variable to 'true'.
|
||||
|
||||
alias.*::
|
||||
Command aliases for the linkgit:git[1] command wrapper - e.g.
|
||||
after defining "alias.last = cat-file commit HEAD", the invocation
|
||||
@ -448,10 +480,14 @@ branch.autosetuprebase::
|
||||
This option defaults to never.
|
||||
|
||||
branch.<name>.remote::
|
||||
When in branch <name>, it tells 'git-fetch' which remote to fetch.
|
||||
If this option is not given, 'git-fetch' defaults to remote "origin".
|
||||
When in branch <name>, it tells 'git-fetch' and 'git-push' which
|
||||
remote to fetch from/push to. It defaults to `origin` if no remote is
|
||||
configured. `origin` is also used if you are not on any branch.
|
||||
|
||||
branch.<name>.merge::
|
||||
Defines, together with branch.<name>.remote, the upstream branch
|
||||
for the given branch. It tells 'git-fetch'/'git-pull' which
|
||||
branch to merge and can also affect 'git-push' (see push.default).
|
||||
When in branch <name>, it tells 'git-fetch' the default
|
||||
refspec to be marked for merging in FETCH_HEAD. The value is
|
||||
handled like the remote part of a refspec, and must match a
|
||||
@ -528,6 +564,25 @@ color.diff.<slot>::
|
||||
whitespace errors). The values of these variables may be specified as
|
||||
in color.branch.<slot>.
|
||||
|
||||
color.grep::
|
||||
When set to `always`, always highlight matches. When `false` (or
|
||||
`never`), never. When set to `true` or `auto`, use color only
|
||||
when the output is written to the terminal. Defaults to `false`.
|
||||
|
||||
color.grep.external::
|
||||
The string value of this variable is passed to an external 'grep'
|
||||
command as a command line option if match highlighting is turned
|
||||
on. If set to an empty string, no option is passed at all,
|
||||
turning off coloring for external 'grep' calls; this is the default.
|
||||
For GNU grep, set it to `--color=always` to highlight matches even
|
||||
when a pager is used.
|
||||
|
||||
color.grep.match::
|
||||
Use customized color for matches. The value of this variable
|
||||
may be specified as in color.branch.<slot>. It is passed using
|
||||
the environment variables 'GREP_COLOR' and 'GREP_COLORS' when
|
||||
calling an external 'grep'.
|
||||
|
||||
color.interactive::
|
||||
When set to `always`, always use colors for interactive prompts
|
||||
and displays (such as those used by "git-add --interactive").
|
||||
@ -536,8 +591,8 @@ color.interactive::
|
||||
|
||||
color.interactive.<slot>::
|
||||
Use customized color for 'git-add --interactive'
|
||||
output. `<slot>` may be `prompt`, `header`, or `help`, for
|
||||
three distinct types of normal output from interactive
|
||||
output. `<slot>` may be `prompt`, `header`, `help` or `error`, for
|
||||
four distinct types of normal output from interactive
|
||||
programs. The values of these variables may be specified as
|
||||
in color.branch.<slot>.
|
||||
|
||||
@ -590,6 +645,22 @@ diff.external::
|
||||
you want to use an external diff program only on a subset of
|
||||
your files, you might want to use linkgit:gitattributes[5] instead.
|
||||
|
||||
diff.mnemonicprefix::
|
||||
If set, 'git-diff' uses a prefix pair that is different from the
|
||||
standard "a/" and "b/" depending on what is being compared. When
|
||||
this configuration is in effect, reverse diff output also swaps
|
||||
the order of the prefixes:
|
||||
'git-diff';;
|
||||
compares the (i)ndex and the (w)ork tree;
|
||||
'git-diff HEAD';;
|
||||
compares a (c)ommit and the (w)ork tree;
|
||||
'git diff --cached';;
|
||||
compares a (c)ommit and the (i)ndex;
|
||||
'git-diff HEAD:file1 file2';;
|
||||
compares an (o)bject and a (w)ork tree entity;
|
||||
'git diff --no-index a b';;
|
||||
compares two non-git things (1) and (2).
|
||||
|
||||
diff.renameLimit::
|
||||
The number of files to consider when performing the copy/rename
|
||||
detection; equivalent to the 'git-diff' option '-l'.
|
||||
@ -599,6 +670,37 @@ diff.renames::
|
||||
will enable basic rename detection. If set to "copies" or
|
||||
"copy", it will detect copies, as well.
|
||||
|
||||
diff.suppressBlankEmpty::
|
||||
A boolean to inhibit the standard behavior of printing a space
|
||||
before each empty output line. Defaults to false.
|
||||
|
||||
diff.tool::
|
||||
Controls which diff tool is used. `diff.tool` overrides
|
||||
`merge.tool` when used by linkgit:git-difftool[1] and has
|
||||
the same valid values as `merge.tool` minus "tortoisemerge"
|
||||
and plus "kompare".
|
||||
|
||||
difftool.<tool>.path::
|
||||
Override the path for the given tool. This is useful in case
|
||||
your tool is not in the PATH.
|
||||
|
||||
difftool.<tool>.cmd::
|
||||
Specify the command to invoke the specified diff tool.
|
||||
The specified command is evaluated in shell with the following
|
||||
variables available: 'LOCAL' is set to the name of the temporary
|
||||
file containing the contents of the diff pre-image and 'REMOTE'
|
||||
is set to the name of the temporary file containing the contents
|
||||
of the diff post-image.
|
||||
|
||||
difftool.prompt::
|
||||
Prompt before each invocation of the diff tool.
|
||||
|
||||
diff.wordRegex::
|
||||
A POSIX Extended Regular Expression used to determine what is a "word"
|
||||
when performing word-by-word difference calculations. Character
|
||||
sequences that match the regular expression are "words", all other
|
||||
characters are *ignorable* whitespace.
|
||||
|
||||
fetch.unpackLimit::
|
||||
If the number of objects fetched over the git native
|
||||
transfer is below this
|
||||
@ -610,16 +712,32 @@ fetch.unpackLimit::
|
||||
especially on slow filesystems. If not set, the value of
|
||||
`transfer.unpackLimit` is used instead.
|
||||
|
||||
format.numbered::
|
||||
A boolean which can enable sequence numbers in patch subjects.
|
||||
Setting this option to "auto" will enable it only if there is
|
||||
more than one patch. See --numbered option in
|
||||
format.attach::
|
||||
Enable multipart/mixed attachments as the default for
|
||||
'format-patch'. The value can also be a double quoted string
|
||||
which will enable attachments as the default and set the
|
||||
value as the boundary. See the --attach option in
|
||||
linkgit:git-format-patch[1].
|
||||
|
||||
format.numbered::
|
||||
A boolean which can enable or disable sequence numbers in patch
|
||||
subjects. It defaults to "auto" which enables it only if there
|
||||
is more than one patch. It can be enabled or disabled for all
|
||||
messages by setting it to "true" or "false". See --numbered
|
||||
option in linkgit:git-format-patch[1].
|
||||
|
||||
format.headers::
|
||||
Additional email headers to include in a patch to be submitted
|
||||
by mail. See linkgit:git-format-patch[1].
|
||||
|
||||
format.cc::
|
||||
Additional "Cc:" headers to include in a patch to be submitted
|
||||
by mail. See the --cc option in linkgit:git-format-patch[1].
|
||||
|
||||
format.subjectprefix::
|
||||
The default for format-patch is to output files with the '[PATCH]'
|
||||
subject prefix. Use this variable to change that prefix.
|
||||
|
||||
format.suffix::
|
||||
The default for format-patch is to output files with the suffix
|
||||
`.patch`. Use this variable to change that suffix (make sure to
|
||||
@ -630,6 +748,23 @@ format.pretty::
|
||||
See linkgit:git-log[1], linkgit:git-show[1],
|
||||
linkgit:git-whatchanged[1].
|
||||
|
||||
format.thread::
|
||||
The default threading style for 'git-format-patch'. Can be
|
||||
either a boolean value, `shallow` or `deep`. `shallow`
|
||||
threading makes every mail a reply to the head of the series,
|
||||
where the head is chosen from the cover letter, the
|
||||
`\--in-reply-to`, and the first patch mail, in this order.
|
||||
`deep` threading makes every mail a reply to the previous one.
|
||||
A true boolean value is the same as `shallow`, and a false
|
||||
value disables threading.
|
||||
|
||||
format.signoff::
|
||||
A boolean value which lets you enable the `-s/--signoff` option of
|
||||
format-patch by default. *Note:* Adding the Signed-off-by: line to a
|
||||
patch should be a conscious act and means that you certify you have
|
||||
the rights to submit this work under the same open source license.
|
||||
Please see the 'SubmittingPatches' document for further discussion.
|
||||
|
||||
gc.aggressiveWindow::
|
||||
The window size parameter used in the delta compression
|
||||
algorithm used by 'git-gc --aggressive'. This defaults
|
||||
@ -661,7 +796,9 @@ gc.packrefs::
|
||||
|
||||
gc.pruneexpire::
|
||||
When 'git-gc' is run, it will call 'prune --expire 2.weeks.ago'.
|
||||
Override the grace period with this config variable.
|
||||
Override the grace period with this config variable. The value
|
||||
"now" may be used to disable this grace period and always prune
|
||||
unreachable objects immediately.
|
||||
|
||||
gc.reflogexpire::
|
||||
'git-reflog expire' removes reflog entries older than
|
||||
@ -682,6 +819,10 @@ gc.rerereunresolved::
|
||||
kept for this many days when 'git-rerere gc' is run.
|
||||
The default is 15 days. See linkgit:git-rerere[1].
|
||||
|
||||
gitcvs.commitmsgannotation::
|
||||
Append this string to each commit message. Set to empty string
|
||||
to disable this feature. Defaults to "via git-CVS emulator".
|
||||
|
||||
gitcvs.enabled::
|
||||
Whether the CVS server interface is enabled for this repository.
|
||||
See linkgit:git-cvsserver[1].
|
||||
@ -752,6 +893,14 @@ gui.diffcontext::
|
||||
Specifies how many context lines should be used in calls to diff
|
||||
made by the linkgit:git-gui[1]. The default is "5".
|
||||
|
||||
gui.encoding::
|
||||
Specifies the default encoding to use for displaying of
|
||||
file contents in linkgit:git-gui[1] and linkgit:gitk[1].
|
||||
It can be overridden by setting the 'encoding' attribute
|
||||
for relevant files (see linkgit:gitattributes[5]).
|
||||
If this option is not set, the tools default to the
|
||||
locale encoding.
|
||||
|
||||
gui.matchtrackingbranch::
|
||||
Determines if new branches created with linkgit:git-gui[1] should
|
||||
default to tracking remote branches with matching names or
|
||||
@ -774,6 +923,73 @@ gui.spellingdictionary::
|
||||
the linkgit:git-gui[1]. When set to "none" spell checking is turned
|
||||
off.
|
||||
|
||||
gui.fastcopyblame::
|
||||
If true, 'git gui blame' uses '-C' instead of '-C -C' for original
|
||||
location detection. It makes blame significantly faster on huge
|
||||
repositories at the expense of less thorough copy detection.
|
||||
|
||||
gui.copyblamethreshold::
|
||||
Specifies the threshold to use in 'git gui blame' original location
|
||||
detection, measured in alphanumeric characters. See the
|
||||
linkgit:git-blame[1] manual for more information on copy detection.
|
||||
|
||||
gui.blamehistoryctx::
|
||||
Specifies the radius of history context in days to show in
|
||||
linkgit:gitk[1] for the selected commit, when the `Show History
|
||||
Context` menu item is invoked from 'git gui blame'. If this
|
||||
variable is set to zero, the whole history is shown.
|
||||
|
||||
guitool.<name>.cmd::
|
||||
Specifies the shell command line to execute when the corresponding item
|
||||
of the linkgit:git-gui[1] `Tools` menu is invoked. This option is
|
||||
mandatory for every tool. The command is executed from the root of
|
||||
the working directory, and in the environment it receives the name of
|
||||
the tool as 'GIT_GUITOOL', the name of the currently selected file as
|
||||
'FILENAME', and the name of the current branch as 'CUR_BRANCH' (if
|
||||
the head is detached, 'CUR_BRANCH' is empty).
|
||||
|
||||
guitool.<name>.needsfile::
|
||||
Run the tool only if a diff is selected in the GUI. It guarantees
|
||||
that 'FILENAME' is not empty.
|
||||
|
||||
guitool.<name>.noconsole::
|
||||
Run the command silently, without creating a window to display its
|
||||
output.
|
||||
|
||||
guitool.<name>.norescan::
|
||||
Don't rescan the working directory for changes after the tool
|
||||
finishes execution.
|
||||
|
||||
guitool.<name>.confirm::
|
||||
Show a confirmation dialog before actually running the tool.
|
||||
|
||||
guitool.<name>.argprompt::
|
||||
Request a string argument from the user, and pass it to the tool
|
||||
through the 'ARGS' environment variable. Since requesting an
|
||||
argument implies confirmation, the 'confirm' option has no effect
|
||||
if this is enabled. If the option is set to 'true', 'yes', or '1',
|
||||
the dialog uses a built-in generic prompt; otherwise the exact
|
||||
value of the variable is used.
|
||||
|
||||
guitool.<name>.revprompt::
|
||||
Request a single valid revision from the user, and set the
|
||||
'REVISION' environment variable. In other aspects this option
|
||||
is similar to 'argprompt', and can be used together with it.
|
||||
|
||||
guitool.<name>.revunmerged::
|
||||
Show only unmerged branches in the 'revprompt' subdialog.
|
||||
This is useful for tools similar to merge or rebase, but not
|
||||
for things like checkout or reset.
|
||||
|
||||
guitool.<name>.title::
|
||||
Specifies the title to use for the prompt dialog. The default
|
||||
is the tool name.
|
||||
|
||||
guitool.<name>.prompt::
|
||||
Specifies the general prompt string to display at the top of
|
||||
the dialog, before subsections for 'argprompt' and 'revprompt'.
|
||||
The default value includes the actual command.
|
||||
|
||||
help.browser::
|
||||
Specify the browser that will be used to display help in the
|
||||
'web' format. See linkgit:git-help[1].
|
||||
@ -783,6 +999,15 @@ help.format::
|
||||
Values 'man', 'info', 'web' and 'html' are supported. 'man' is
|
||||
the default. 'web' and 'html' are the same.
|
||||
|
||||
help.autocorrect::
|
||||
Automatically correct and execute mistyped commands after
|
||||
waiting for the given number of deciseconds (0.1 sec). If more
|
||||
than one command can be deduced from the entered text, nothing
|
||||
will be executed. If the value of this option is negative,
|
||||
the corrected command will be executed immediately. If the
|
||||
value is 0 - the command will be just shown but not executed.
|
||||
This is the default.
|
||||
|
||||
http.proxy::
|
||||
Override the HTTP proxy, normally configured using the 'http_proxy'
|
||||
environment variable (see linkgit:curl[1]). This can be overridden
|
||||
@ -863,6 +1088,13 @@ instaweb.port::
|
||||
The port number to bind the gitweb httpd to. See
|
||||
linkgit:git-instaweb[1].
|
||||
|
||||
interactive.singlekey::
|
||||
In interactive programs, allow the user to provide one-letter
|
||||
input with a single key (i.e., without hitting enter).
|
||||
Currently this is used only by the `\--patch` mode of
|
||||
linkgit:git-add[1]. Note that this setting is silently
|
||||
ignored if portable keystroke input is not available.
|
||||
|
||||
log.date::
|
||||
Set default date-time mode for the log command. Setting log.date
|
||||
value is similar to using 'git-log'\'s --date option. The value is one of the
|
||||
@ -875,6 +1107,14 @@ log.showroot::
|
||||
Tools like linkgit:git-log[1] or linkgit:git-whatchanged[1], which
|
||||
normally hide the root commit will now show it. True by default.
|
||||
|
||||
mailmap.file::
|
||||
The location of an augmenting mailmap file. The default
|
||||
mailmap, located in the root of the repository, is loaded
|
||||
first, then the mailmap file pointed to by this variable.
|
||||
The location of the mailmap file may be in a repository
|
||||
subdirectory, or somewhere outside of the repository itself.
|
||||
See linkgit:git-shortlog[1] and linkgit:git-blame[1].
|
||||
|
||||
man.viewer::
|
||||
Specify the programs that may be used to display help in the
|
||||
'man' format. See linkgit:git-help[1].
|
||||
@ -919,6 +1159,16 @@ mergetool.keepBackup::
|
||||
is set to `false` then this file is not preserved. Defaults to
|
||||
`true` (i.e. keep the backup files).
|
||||
|
||||
mergetool.keepTemporaries::
|
||||
When invoking a custom merge tool, git uses a set of temporary
|
||||
files to pass to the tool. If the tool returns an error and this
|
||||
variable is set to `true`, then these temporary files will be
|
||||
preserved, otherwise they will be removed after the tool has
|
||||
exited. Defaults to `false`.
|
||||
|
||||
mergetool.prompt::
|
||||
Prompt before each invocation of the merge resolution program.
|
||||
|
||||
pack.window::
|
||||
The size of the window used by linkgit:git-pack-objects[1] when no
|
||||
window size is given on the command line. Defaults to 10.
|
||||
@ -989,7 +1239,7 @@ pager.<cmd>::
|
||||
particular git subcommand when writing to a tty. If
|
||||
`\--paginate` or `\--no-pager` is specified on the command line,
|
||||
it takes precedence over this option. To disable pagination for
|
||||
all commands, set `core.pager` or 'GIT_PAGER' to "`cat`".
|
||||
all commands, set `core.pager` or `GIT_PAGER` to `cat`.
|
||||
|
||||
pull.octopus::
|
||||
The default merge strategy to use when pulling multiple branches
|
||||
@ -998,6 +1248,23 @@ pull.octopus::
|
||||
pull.twohead::
|
||||
The default merge strategy to use when pulling a single branch.
|
||||
|
||||
push.default::
|
||||
Defines the action git push should take if no refspec is given
|
||||
on the command line, no refspec is configured in the remote, and
|
||||
no refspec is implied by any of the options given on the command
|
||||
line. Possible values are:
|
||||
+
|
||||
* `nothing` do not push anything.
|
||||
* `matching` push all matching branches.
|
||||
All branches having the same name in both ends are considered to be
|
||||
matching. This is the default.
|
||||
* `tracking` push the current branch to its upstream branch.
|
||||
* `current` push the current branch to a branch of the same name.
|
||||
|
||||
rebase.stat::
|
||||
Whether to show a diffstat of what changed upstream since the last
|
||||
rebase. False by default.
|
||||
|
||||
receive.fsckObjects::
|
||||
If it is set to true, git-receive-pack will check all received
|
||||
objects. It will abort in the case of a malformed object or a
|
||||
@ -1014,6 +1281,19 @@ receive.unpackLimit::
|
||||
especially on slow filesystems. If not set, the value of
|
||||
`transfer.unpackLimit` is used instead.
|
||||
|
||||
receive.denyDeletes::
|
||||
If set to true, git-receive-pack will deny a ref update that deletes
|
||||
the ref. Use this to prevent such a ref deletion via a push.
|
||||
|
||||
receive.denyCurrentBranch::
|
||||
If set to true or "refuse", receive-pack will deny a ref update
|
||||
to the currently checked out branch of a non-bare repository.
|
||||
Such a push is potentially dangerous because it brings the HEAD
|
||||
out of sync with the index and working tree. If set to "warn",
|
||||
print a warning of such a push to stderr, but allow the push to
|
||||
proceed. If set to false or "ignore", allow such pushes with no
|
||||
message. Defaults to "warn".
|
||||
|
||||
receive.denyNonFastForwards::
|
||||
If set to true, git-receive-pack will deny a ref update which is
|
||||
not a fast forward. Use this to prevent such an update via a push,
|
||||
|
@ -19,16 +19,12 @@ endif::git-format-patch[]
|
||||
|
||||
ifndef::git-format-patch[]
|
||||
-p::
|
||||
-u::
|
||||
Generate patch (see section on generating patches).
|
||||
{git-diff? This is the default.}
|
||||
endif::git-format-patch[]
|
||||
|
||||
-u::
|
||||
Synonym for "-p".
|
||||
|
||||
-U<n>::
|
||||
Shorthand for "--unified=<n>".
|
||||
|
||||
--unified=<n>::
|
||||
Generate diffs with <n> lines of context instead of
|
||||
the usual three. Implies "-p".
|
||||
@ -40,6 +36,9 @@ endif::git-format-patch[]
|
||||
--patch-with-raw::
|
||||
Synonym for "-p --raw".
|
||||
|
||||
--patience::
|
||||
Generate a diff using the "patience diff" algorithm.
|
||||
|
||||
--stat[=width[,name-width]]::
|
||||
Generate a diffstat. You can override the default
|
||||
output width for 80-column terminal by "--stat=width".
|
||||
@ -65,6 +64,9 @@ endif::git-format-patch[]
|
||||
can be set with "--dirstat=limit". Changes in a child directory is not
|
||||
counted for the parent directory, unless "--cumulative" is used.
|
||||
|
||||
--dirstat-by-file[=limit]::
|
||||
Same as --dirstat, but counts changed files instead of lines.
|
||||
|
||||
--summary::
|
||||
Output a condensed summary of extended header information
|
||||
such as creations, renames and mode changes.
|
||||
@ -92,8 +94,22 @@ endif::git-format-patch[]
|
||||
Turn off colored diff, even when the configuration file
|
||||
gives the default to color output.
|
||||
|
||||
--color-words::
|
||||
Show colored word diff, i.e. color words which have changed.
|
||||
--color-words[=<regex>]::
|
||||
Show colored word diff, i.e., color words which have changed.
|
||||
By default, words are separated by whitespace.
|
||||
+
|
||||
When a <regex> is specified, every non-overlapping match of the
|
||||
<regex> is considered a word. Anything between these matches is
|
||||
considered whitespace and ignored(!) for the purposes of finding
|
||||
differences. You may want to append `|[^[:space:]]` to your regular
|
||||
expression to make sure that it matches all non-whitespace characters.
|
||||
A match that contains a newline is silently truncated(!) at the
|
||||
newline.
|
||||
+
|
||||
The regex can also be set via a diff driver or configuration option, see
|
||||
linkgit:gitattributes[1] or linkgit:git-config[1]. Giving it explicitly
|
||||
overrides any diff driver or configuration setting. Diff drivers
|
||||
override configuration settings.
|
||||
|
||||
--no-renames::
|
||||
Turn off rename detection, even when the configuration
|
||||
@ -106,9 +122,9 @@ endif::git-format-patch[]
|
||||
--exit-code.
|
||||
|
||||
--full-index::
|
||||
Instead of the first handful characters, show full
|
||||
object name of pre- and post-image blob on the "index"
|
||||
line when generating a patch format output.
|
||||
Instead of the first handful of characters, show the full
|
||||
pre- and post-image blob object names on the "index"
|
||||
line when generating patch format output.
|
||||
|
||||
--binary::
|
||||
In addition to --full-index, output "binary diff" that
|
||||
@ -117,7 +133,7 @@ endif::git-format-patch[]
|
||||
--abbrev[=<n>]::
|
||||
Instead of showing the full 40-byte hexadecimal object
|
||||
name in diff-raw format output and diff-tree header
|
||||
lines, show only handful hexdigits prefix. This is
|
||||
lines, show only a partial prefix. This is
|
||||
independent of --full-index option above, which controls
|
||||
the diff-patch output format. Non default number of
|
||||
digits can be specified with --abbrev=<n>.
|
||||
@ -160,7 +176,10 @@ endif::git-format-patch[]
|
||||
number.
|
||||
|
||||
-S<string>::
|
||||
Look for differences that contain the change in <string>.
|
||||
Look for differences that introduce or remove an instance of
|
||||
<string>. Note that this is different than the string simply
|
||||
appearing in diff output; see the 'pickaxe' entry in
|
||||
linkgit:gitdiffcore[7] for more details.
|
||||
|
||||
--pickaxe-all::
|
||||
When -S finds a change, show all the changes in that
|
||||
@ -187,30 +206,28 @@ endif::git-format-patch[]
|
||||
can name which subdirectory to make the output relative
|
||||
to by giving a <path> as an argument.
|
||||
|
||||
-a::
|
||||
--text::
|
||||
Treat all files as text.
|
||||
|
||||
-a::
|
||||
Shorthand for "--text".
|
||||
|
||||
--ignore-space-at-eol::
|
||||
Ignore changes in whitespace at EOL.
|
||||
|
||||
-b::
|
||||
--ignore-space-change::
|
||||
Ignore changes in amount of whitespace. This ignores whitespace
|
||||
at line end, and considers all other sequences of one or
|
||||
more whitespace characters to be equivalent.
|
||||
|
||||
-b::
|
||||
Shorthand for "--ignore-space-change".
|
||||
|
||||
-w::
|
||||
--ignore-all-space::
|
||||
Ignore whitespace when comparing lines. This ignores
|
||||
differences even if one line has whitespace where the other
|
||||
line has none.
|
||||
|
||||
-w::
|
||||
Shorthand for "--ignore-all-space".
|
||||
--inter-hunk-context=<lines>::
|
||||
Show the context between diff hunks, up to the specified number
|
||||
of lines, thereby fusing hunks that are close to each other.
|
||||
|
||||
--exit-code::
|
||||
Make the program exit with codes similar to diff(1).
|
||||
|
@ -16,6 +16,7 @@ body blockquote {
|
||||
html body {
|
||||
margin: 1em 5% 1em 5%;
|
||||
line-height: 1.2;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
body div {
|
||||
@ -128,6 +129,15 @@ body pre {
|
||||
|
||||
tt.literal, code.literal {
|
||||
color: navy;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
code.literal:before { content: "'"; }
|
||||
code.literal:after { content: "'"; }
|
||||
|
||||
em {
|
||||
font-style: italic;
|
||||
color: #064;
|
||||
}
|
||||
|
||||
div.literallayout p {
|
||||
@ -137,7 +147,6 @@ div.literallayout p {
|
||||
|
||||
div.literallayout {
|
||||
font-family: monospace;
|
||||
# margin: 0.5em 10% 0.5em 1em;
|
||||
margin: 0em;
|
||||
color: navy;
|
||||
border: 1px solid silver;
|
||||
@ -187,7 +196,8 @@ dt {
|
||||
}
|
||||
|
||||
dt span.term {
|
||||
font-style: italic;
|
||||
font-style: normal;
|
||||
color: navy;
|
||||
}
|
||||
|
||||
div.variablelist dd p {
|
||||
|
@ -98,7 +98,7 @@ Use a tarball as a starting point for a new repository.::
|
||||
------------
|
||||
$ tar zxf frotz.tar.gz
|
||||
$ cd frotz
|
||||
$ git-init
|
||||
$ git init
|
||||
$ git add . <1>
|
||||
$ git commit -m "import of frotz source tree."
|
||||
$ git tag v2.43 <2>
|
||||
|
@ -9,8 +9,8 @@ SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git add' [-n] [-v] [--force | -f] [--interactive | -i] [--patch | -p]
|
||||
[--all | [--update | -u]] [--refresh] [--ignore-errors] [--]
|
||||
<filepattern>...
|
||||
[--all | [--update | -u]] [--intent-to-add | -N]
|
||||
[--refresh] [--ignore-errors] [--] <filepattern>...
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -92,6 +92,15 @@ OPTIONS
|
||||
and add all untracked files that are not ignored by '.gitignore'
|
||||
mechanism.
|
||||
|
||||
|
||||
-N::
|
||||
--intent-to-add::
|
||||
Record only the fact that the path will be added later. An entry
|
||||
for the path is placed in the index with no content. This is
|
||||
useful for, among other things, showing the unstaged content of
|
||||
such files with 'git diff' and committing them with 'git commit
|
||||
-a'.
|
||||
|
||||
--refresh::
|
||||
Don't add the file(s), but only refresh their stat()
|
||||
information in the index.
|
||||
@ -127,7 +136,7 @@ $ git add Documentation/\\*.txt
|
||||
------------
|
||||
+
|
||||
Note that the asterisk `\*` is quoted from the shell in this
|
||||
example; this lets the command to include the files from
|
||||
example; this lets the command include the files from
|
||||
subdirectories of `Documentation/` directory.
|
||||
|
||||
* Considers adding content from all git-*.sh scripts:
|
||||
@ -136,7 +145,7 @@ subdirectories of `Documentation/` directory.
|
||||
$ git add git-*.sh
|
||||
------------
|
||||
+
|
||||
Because this example lets shell expand the asterisk (i.e. you are
|
||||
Because this example lets the shell expand the asterisk (i.e. you are
|
||||
listing the files explicitly), it does not consider
|
||||
`subdir/git-foo.sh`.
|
||||
|
||||
@ -189,8 +198,8 @@ one deletion).
|
||||
|
||||
update::
|
||||
|
||||
This shows the status information and gives prompt
|
||||
"Update>>". When the prompt ends with double '>>', you can
|
||||
This shows the status information and issues an "Update>>"
|
||||
prompt. When the prompt ends with double '>>', you can
|
||||
make more than one selection, concatenated with whitespace or
|
||||
comma. Also you can say ranges. E.g. "2-5 7,9" to choose
|
||||
2,3,4,5,7,9 from the list. If the second number in a range is
|
||||
@ -229,15 +238,18 @@ add untracked::
|
||||
|
||||
patch::
|
||||
|
||||
This lets you choose one path out of 'status' like selection.
|
||||
After choosing the path, it presents diff between the index
|
||||
This lets you choose one path out of a 'status' like selection.
|
||||
After choosing the path, it presents the diff between the index
|
||||
and the working tree file and asks you if you want to stage
|
||||
the change of each hunk. You can say:
|
||||
|
||||
y - stage this hunk
|
||||
n - do not stage this hunk
|
||||
q - quit, do not stage this hunk nor any of the remaining ones
|
||||
a - stage this and all the remaining hunks in the file
|
||||
d - do not stage this hunk nor any of the remaining hunks in the file
|
||||
g - select a hunk to go to
|
||||
/ - search for a hunk matching the given regex
|
||||
j - leave this hunk undecided, see next undecided hunk
|
||||
J - leave this hunk undecided, see next hunk
|
||||
k - leave this hunk undecided, see previous undecided hunk
|
||||
@ -254,13 +266,6 @@ diff::
|
||||
This lets you review what will be committed (i.e. between
|
||||
HEAD and index).
|
||||
|
||||
Bugs
|
||||
----
|
||||
The interactive mode does not work with files whose names contain
|
||||
characters that need C-quoting. `core.quotepath` configuration can be
|
||||
used to work this limitation around to some degree, but backslash,
|
||||
double-quote and control characters will still have problems.
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkgit:git-status[1]
|
||||
|
@ -10,8 +10,10 @@ SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git am' [--signoff] [--keep] [--utf8 | --no-utf8]
|
||||
[--3way] [--interactive]
|
||||
[--whitespace=<option>] [-C<n>] [-p<n>]
|
||||
[--3way] [--interactive] [--committer-date-is-author-date]
|
||||
[--ignore-date]
|
||||
[--whitespace=<option>] [-C<n>] [-p<n>] [--directory=<dir>]
|
||||
[--reject]
|
||||
[<mbox> | <Maildir>...]
|
||||
'git am' (--skip | --resolved | --abort)
|
||||
|
||||
@ -25,8 +27,8 @@ OPTIONS
|
||||
-------
|
||||
<mbox>|<Maildir>...::
|
||||
The list of mailbox files to read patches from. If you do not
|
||||
supply this argument, reads from the standard input. If you supply
|
||||
directories, they'll be treated as Maildirs.
|
||||
supply this argument, the command reads from the standard input.
|
||||
If you supply directories, they will be treated as Maildirs.
|
||||
|
||||
-s::
|
||||
--signoff::
|
||||
@ -46,7 +48,7 @@ OPTIONS
|
||||
preferred encoding if it is not UTF-8).
|
||||
+
|
||||
This was optional in prior versions of git, but now it is the
|
||||
default. You could use `--no-utf8` to override this.
|
||||
default. You can use `--no-utf8` to override this.
|
||||
|
||||
--no-utf8::
|
||||
Pass `-n` flag to 'git-mailinfo' (see
|
||||
@ -55,17 +57,15 @@ default. You could use `--no-utf8` to override this.
|
||||
-3::
|
||||
--3way::
|
||||
When the patch does not apply cleanly, fall back on
|
||||
3-way merge, if the patch records the identity of blobs
|
||||
it is supposed to apply to, and we have those blobs
|
||||
3-way merge if the patch records the identity of blobs
|
||||
it is supposed to apply to and we have those blobs
|
||||
available locally.
|
||||
|
||||
--whitespace=<option>::
|
||||
This flag is passed to the 'git-apply' (see linkgit:git-apply[1])
|
||||
program that applies
|
||||
the patch.
|
||||
|
||||
-C<n>::
|
||||
-p<n>::
|
||||
--directory=<dir>::
|
||||
--reject::
|
||||
These flags are passed to the 'git-apply' (see linkgit:git-apply[1])
|
||||
program that applies
|
||||
the patch.
|
||||
@ -74,6 +74,20 @@ default. You could use `--no-utf8` to override this.
|
||||
--interactive::
|
||||
Run interactively.
|
||||
|
||||
--committer-date-is-author-date::
|
||||
By default the command records the date from the e-mail
|
||||
message as the commit author date, and uses the time of
|
||||
commit creation as the committer date. This allows the
|
||||
user to lie about the committer date by using the same
|
||||
timestamp as the author date.
|
||||
|
||||
--ignore-date::
|
||||
By default the command records the date from the e-mail
|
||||
message as the commit author date, and uses the time of
|
||||
commit creation as the committer date. This allows the
|
||||
user to lie about author timestamp by using the same
|
||||
timestamp as the committer date.
|
||||
|
||||
--skip::
|
||||
Skip the current patch. This is only meaningful when
|
||||
restarting an aborted patch.
|
||||
@ -107,18 +121,18 @@ the commit, after stripping common prefix "[PATCH <anything>]".
|
||||
It is supposed to describe what the commit is about concisely as
|
||||
a one line text.
|
||||
|
||||
The body of the message (iow, after a blank line that terminates
|
||||
RFC2822 headers) can begin with "Subject: " and "From: " lines
|
||||
that are different from those of the mail header, to override
|
||||
the values of these fields.
|
||||
The body of the message (the rest of the message after the blank line
|
||||
that terminates the RFC2822 headers) can begin with "Subject: " and
|
||||
"From: " lines that are different from those of the mail header,
|
||||
to override the values of these fields.
|
||||
|
||||
The commit message is formed by the title taken from the
|
||||
"Subject: ", a blank line and the body of the message up to
|
||||
where the patch begins. Excess whitespaces at the end of the
|
||||
where the patch begins. Excess whitespace characters at the end of the
|
||||
lines are automatically stripped.
|
||||
|
||||
The patch is expected to be inline, directly following the
|
||||
message. Any line that is of form:
|
||||
message. Any line that is of the form:
|
||||
|
||||
* three-dashes and end-of-line, or
|
||||
* a line that begins with "diff -", or
|
||||
@ -127,18 +141,18 @@ message. Any line that is of form:
|
||||
is taken as the beginning of a patch, and the commit log message
|
||||
is terminated before the first occurrence of such a line.
|
||||
|
||||
When initially invoking it, you give it names of the mailboxes
|
||||
to crunch. Upon seeing the first patch that does not apply, it
|
||||
aborts in the middle,. You can recover from this in one of two ways:
|
||||
When initially invoking it, you give it the names of the mailboxes
|
||||
to process. Upon seeing the first patch that does not apply, it
|
||||
aborts in the middle. You can recover from this in one of two ways:
|
||||
|
||||
. skip the current patch by re-running the command with '--skip'
|
||||
. skip the current patch by re-running the command with the '--skip'
|
||||
option.
|
||||
|
||||
. hand resolve the conflict in the working directory, and update
|
||||
the index file to bring it in a state that the patch should
|
||||
have produced. Then run the command with '--resolved' option.
|
||||
the index file to bring it into a state that the patch should
|
||||
have produced. Then run the command with the '--resolved' option.
|
||||
|
||||
The command refuses to process new mailboxes while `.git/rebase-apply`
|
||||
The command refuses to process new mailboxes while the `.git/rebase-apply`
|
||||
directory exists, so if you decide to start over from scratch,
|
||||
run `rm -f -r .git/rebase-apply` before running the command with mailbox
|
||||
names.
|
||||
|
@ -3,7 +3,7 @@ git-annotate(1)
|
||||
|
||||
NAME
|
||||
----
|
||||
git-annotate - Annotate file lines with commit info
|
||||
git-annotate - Annotate file lines with commit information
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
@ -12,11 +12,11 @@ SYNOPSIS
|
||||
DESCRIPTION
|
||||
-----------
|
||||
Annotates each line in the given file with information from the commit
|
||||
which introduced the line. Optionally annotate from a given revision.
|
||||
which introduced the line. Optionally annotates from a given revision.
|
||||
|
||||
The only difference between this command and linkgit:git-blame[1] is that
|
||||
they use slightly different output formats, and this command exists only
|
||||
for backward compatibility to support existing scripts, and provide more
|
||||
for backward compatibility to support existing scripts, and provide a more
|
||||
familiar command name for people coming from other SCM systems.
|
||||
|
||||
OPTIONS
|
||||
|
@ -10,11 +10,12 @@ SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git apply' [--stat] [--numstat] [--summary] [--check] [--index]
|
||||
[--apply] [--no-add] [--build-fake-ancestor <file>] [-R | --reverse]
|
||||
[--apply] [--no-add] [--build-fake-ancestor=<file>] [-R | --reverse]
|
||||
[--allow-binary-replacement | --binary] [--reject] [-z]
|
||||
[-pNUM] [-CNUM] [--inaccurate-eof] [--recount] [--cached]
|
||||
[--whitespace=<nowarn|warn|fix|error|error-all>]
|
||||
[--exclude=PATH] [--directory=<root>] [--verbose] [<patch>...]
|
||||
[--exclude=PATH] [--include=PATH] [--directory=<root>]
|
||||
[--verbose] [<patch>...]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -24,7 +25,7 @@ and a work tree.
|
||||
OPTIONS
|
||||
-------
|
||||
<patch>...::
|
||||
The files to read patch from. '-' can be used to read
|
||||
The files to read the patch from. '-' can be used to read
|
||||
from the standard input.
|
||||
|
||||
--stat::
|
||||
@ -32,8 +33,8 @@ OPTIONS
|
||||
input. Turns off "apply".
|
||||
|
||||
--numstat::
|
||||
Similar to \--stat, but shows number of added and
|
||||
deleted lines in decimal notation and pathname without
|
||||
Similar to \--stat, but shows the number of added and
|
||||
deleted lines in decimal notation and the pathname without
|
||||
abbreviation, to make it more machine friendly. For
|
||||
binary files, outputs two `-` instead of saying
|
||||
`0 0`. Turns off "apply".
|
||||
@ -59,15 +60,15 @@ OPTIONS
|
||||
causes the index file to be updated.
|
||||
|
||||
--cached::
|
||||
Apply a patch without touching the working tree. Instead, take the
|
||||
cached data, apply the patch, and store the result in the index,
|
||||
Apply a patch without touching the working tree. Instead take the
|
||||
cached data, apply the patch, and store the result in the index
|
||||
without using the working tree. This implies '--index'.
|
||||
|
||||
--build-fake-ancestor <file>::
|
||||
--build-fake-ancestor=<file>::
|
||||
Newer 'git-diff' output has embedded 'index information'
|
||||
for each blob to help identify the original version that
|
||||
the patch applies to. When this flag is given, and if
|
||||
the original versions of the blobs is available locally,
|
||||
the original versions of the blobs are available locally,
|
||||
builds a temporary index containing those blobs.
|
||||
+
|
||||
When a pure mode change is encountered (which has no index information),
|
||||
@ -108,13 +109,13 @@ the information is read from the current index instead.
|
||||
applying a diff generated with --unified=0. To bypass these
|
||||
checks use '--unidiff-zero'.
|
||||
+
|
||||
Note, for the reasons stated above usage of context-free patches are
|
||||
Note, for the reasons stated above usage of context-free patches is
|
||||
discouraged.
|
||||
|
||||
--apply::
|
||||
If you use any of the options marked "Turns off
|
||||
'apply'" above, 'git-apply' reads and outputs the
|
||||
information you asked without actually applying the
|
||||
requested information without actually applying the
|
||||
patch. Give this flag after those flags to also apply
|
||||
the patch.
|
||||
|
||||
@ -123,7 +124,7 @@ discouraged.
|
||||
patch. This can be used to extract the common part between
|
||||
two files by first running 'diff' on them and applying
|
||||
the result with this option, which would apply the
|
||||
deletion part but not addition part.
|
||||
deletion part but not the addition part.
|
||||
|
||||
--allow-binary-replacement::
|
||||
--binary::
|
||||
@ -137,6 +138,17 @@ discouraged.
|
||||
be useful when importing patchsets, where you want to exclude certain
|
||||
files or directories.
|
||||
|
||||
--include=<path-pattern>::
|
||||
Apply changes to files matching the given path pattern. This can
|
||||
be useful when importing patchsets, where you want to include certain
|
||||
files or directories.
|
||||
+
|
||||
When --exclude and --include patterns are used, they are examined in the
|
||||
order they appear on the command line, and the first match determines if a
|
||||
patch to each path is used. A patch to a path that does not match any
|
||||
include/exclude pattern is used by default if there is no include pattern
|
||||
on the command line, and ignored if there is any include pattern.
|
||||
|
||||
--whitespace=<action>::
|
||||
When applying a patch, detect a new or modified line that has
|
||||
whitespace errors. What are considered whitespace errors is
|
||||
@ -147,10 +159,10 @@ discouraged.
|
||||
considered whitespace errors.
|
||||
+
|
||||
By default, the command outputs warning messages but applies the patch.
|
||||
When `git-apply is used for statistics and not applying a
|
||||
When `git-apply` is used for statistics and not applying a
|
||||
patch, it defaults to `nowarn`.
|
||||
+
|
||||
You can use different `<action>` to control this
|
||||
You can use different `<action>` values to control this
|
||||
behavior:
|
||||
+
|
||||
* `nowarn` turns off the trailing whitespace warning.
|
||||
@ -158,7 +170,7 @@ behavior:
|
||||
patch as-is (default).
|
||||
* `fix` outputs warnings for a few such errors, and applies the
|
||||
patch after fixing them (`strip` is a synonym --- the tool
|
||||
used to consider only trailing whitespaces as errors, and the
|
||||
used to consider only trailing whitespace characters as errors, and the
|
||||
fix involved 'stripping' them, but modern gits do more).
|
||||
* `error` outputs warnings for a few such errors, and refuses
|
||||
to apply the patch.
|
||||
@ -183,7 +195,7 @@ behavior:
|
||||
adjusting the hunk headers appropriately).
|
||||
|
||||
--directory=<root>::
|
||||
Prepend <root> to all filenames. If a "-p" argument was passed, too,
|
||||
Prepend <root> to all filenames. If a "-p" argument was also passed,
|
||||
it is applied before prepending the new root.
|
||||
+
|
||||
For example, a patch that talks about updating `a/git-gui.sh` to `b/git-gui.sh`
|
||||
@ -209,7 +221,7 @@ ignored, i.e., they are not required to be up-to-date or clean and they
|
||||
are not updated.
|
||||
|
||||
If --index is not specified, then the submodule commits in the patch
|
||||
are ignored and only the absence of presence of the corresponding
|
||||
are ignored and only the absence or presence of the corresponding
|
||||
subdirectory is checked and (if possible) updated.
|
||||
|
||||
Author
|
||||
|
@ -10,6 +10,7 @@ SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git archive' --format=<fmt> [--list] [--prefix=<prefix>/] [<extra>]
|
||||
[--output=<file>] [--worktree-attributes]
|
||||
[--remote=<repo> [--exec=<git-upload-archive>]] <tree-ish>
|
||||
[path...]
|
||||
|
||||
@ -22,7 +23,7 @@ prepended to the filenames in the archive.
|
||||
|
||||
'git-archive' behaves differently when given a tree ID versus when
|
||||
given a commit ID or tag ID. In the first case the current time is
|
||||
used as modification time of each file in the archive. In the latter
|
||||
used as the modification time of each file in the archive. In the latter
|
||||
case the commit time as recorded in the referenced commit object is
|
||||
used instead. Additionally the commit ID is stored in a global
|
||||
extended pax header if the tar format is used; it can be extracted
|
||||
@ -47,12 +48,18 @@ OPTIONS
|
||||
--prefix=<prefix>/::
|
||||
Prepend <prefix>/ to each filename in the archive.
|
||||
|
||||
--output=<file>::
|
||||
Write the archive to <file> instead of stdout.
|
||||
|
||||
--worktree-attributes::
|
||||
Look for attributes in .gitattributes in working directory too.
|
||||
|
||||
<extra>::
|
||||
This can be any options that the archiver backend understand.
|
||||
This can be any options that the archiver backend understands.
|
||||
See next section.
|
||||
|
||||
--remote=<repo>::
|
||||
Instead of making a tar archive from local repository,
|
||||
Instead of making a tar archive from the local repository,
|
||||
retrieve a tar archive from a remote repository.
|
||||
|
||||
--exec=<git-upload-archive>::
|
||||
@ -88,12 +95,24 @@ tar.umask::
|
||||
archiving user's umask will be used instead. See umask(2) for
|
||||
details.
|
||||
|
||||
ATTRIBUTES
|
||||
----------
|
||||
|
||||
export-ignore::
|
||||
Files and directories with the attribute export-ignore won't be
|
||||
added to archive files. See linkgit:gitattributes[5] for details.
|
||||
|
||||
export-subst::
|
||||
If the attribute export-subst is set for a file then git will
|
||||
expand several placeholders when adding this file to an archive.
|
||||
See linkgit:gitattributes[5] for details.
|
||||
|
||||
EXAMPLES
|
||||
--------
|
||||
git archive --format=tar --prefix=junk/ HEAD | (cd /var/tmp/ && tar xf -)::
|
||||
|
||||
Create a tar archive that contains the contents of the
|
||||
latest commit on the current branch, and extracts it in
|
||||
latest commit on the current branch, and extract it in the
|
||||
`/var/tmp/junk` directory.
|
||||
|
||||
git archive --format=tar --prefix=git-1.4.0/ v1.4.0 | gzip >git-1.4.0.tar.gz::
|
||||
@ -110,6 +129,11 @@ git archive --format=zip --prefix=git-docs/ HEAD:Documentation/ > git-1.4.0-docs
|
||||
Put everything in the current head's Documentation/ directory
|
||||
into 'git-1.4.0-docs.zip', with the prefix 'git-docs/'.
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkgit:gitattributes[5]
|
||||
|
||||
Author
|
||||
------
|
||||
Written by Franck Bui-Huu and Rene Scharfe.
|
||||
|
@ -3,7 +3,7 @@ git-bisect(1)
|
||||
|
||||
NAME
|
||||
----
|
||||
git-bisect - Find the change that introduced a bug by binary search
|
||||
git-bisect - Find by binary search the change that introduced a bug
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
@ -19,7 +19,7 @@ on the subcommand:
|
||||
git bisect start [<bad> [<good>...]] [--] [<paths>...]
|
||||
git bisect bad [<rev>]
|
||||
git bisect good [<rev>...]
|
||||
git bisect skip [<rev>...]
|
||||
git bisect skip [(<rev>|<range>)...]
|
||||
git bisect reset [<branch>]
|
||||
git bisect visualize
|
||||
git bisect replay <logfile>
|
||||
@ -39,7 +39,8 @@ help" or "git bisect -h" to get a long usage description.
|
||||
Basic bisect commands: start, bad, good
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The way you use it is:
|
||||
Using the Linux kernel tree as an example, basic use of the bisect
|
||||
command is as follows:
|
||||
|
||||
------------------------------------------------
|
||||
$ git bisect start
|
||||
@ -48,61 +49,63 @@ $ git bisect good v2.6.13-rc2 # v2.6.13-rc2 was the last version
|
||||
# tested that was good
|
||||
------------------------------------------------
|
||||
|
||||
When you give at least one bad and one good versions, it will bisect
|
||||
the revision tree and say something like:
|
||||
When you have specified at least one bad and one good version, the
|
||||
command bisects the revision tree and outputs something similar to
|
||||
the following:
|
||||
|
||||
------------------------------------------------
|
||||
Bisecting: 675 revisions left to test after this
|
||||
------------------------------------------------
|
||||
|
||||
and check out the state in the middle. Now, compile that kernel, and
|
||||
boot it. Now, let's say that this booted kernel works fine, then just
|
||||
do
|
||||
The state in the middle of the set of revisions is then checked out.
|
||||
You would now compile that kernel and boot it. If the booted kernel
|
||||
works correctly, you would then issue the following command:
|
||||
|
||||
------------------------------------------------
|
||||
$ git bisect good # this one is good
|
||||
------------------------------------------------
|
||||
|
||||
which will now say
|
||||
The output of this command would be something similar to the following:
|
||||
|
||||
------------------------------------------------
|
||||
Bisecting: 337 revisions left to test after this
|
||||
------------------------------------------------
|
||||
|
||||
and you continue along, compiling that one, testing it, and depending
|
||||
on whether it is good or bad, you say "git bisect good" or "git bisect
|
||||
bad", and ask for the next bisection.
|
||||
You keep repeating this process, compiling the tree, testing it, and
|
||||
depending on whether it is good or bad issuing the command "git bisect good"
|
||||
or "git bisect bad" to ask for the next bisection.
|
||||
|
||||
Until you have no more left, and you'll have been left with the first
|
||||
bad kernel rev in "refs/bisect/bad".
|
||||
Eventually there will be no more revisions left to bisect, and you
|
||||
will have been left with the first bad kernel revision in "refs/bisect/bad".
|
||||
|
||||
Bisect reset
|
||||
~~~~~~~~~~~~
|
||||
|
||||
Oh, and then after you want to reset to the original head, do a
|
||||
To return to the original head after a bisect session, issue the
|
||||
following command:
|
||||
|
||||
------------------------------------------------
|
||||
$ git bisect reset
|
||||
------------------------------------------------
|
||||
|
||||
to get back to the original branch, instead of being on the bisection
|
||||
commit ("git bisect start" will do that for you too, actually: it will
|
||||
reset the bisection state).
|
||||
This resets the tree to the original branch instead of being on the
|
||||
bisection commit ("git bisect start" will also do that, as it resets
|
||||
the bisection state).
|
||||
|
||||
Bisect visualize
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
During the bisection process, you can say
|
||||
To see the currently remaining suspects in 'gitk', issue the following
|
||||
command during the bisection process:
|
||||
|
||||
------------
|
||||
$ git bisect visualize
|
||||
------------
|
||||
|
||||
to see the currently remaining suspects in 'gitk'. `visualize` is a bit
|
||||
too long to type and `view` is provided as a synonym.
|
||||
`view` may also be used as a synonym for `visualize`.
|
||||
|
||||
If 'DISPLAY' environment variable is not set, 'git log' is used
|
||||
instead. You can even give command line options such as `-p` and
|
||||
If the 'DISPLAY' environment variable is not set, 'git log' is used
|
||||
instead. You can also give command line options such as `-p` and
|
||||
`--stat`.
|
||||
|
||||
------------
|
||||
@ -112,73 +115,94 @@ $ git bisect view --stat
|
||||
Bisect log and bisect replay
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The good/bad input is logged, and
|
||||
After having marked revisions as good or bad, issue the following
|
||||
command to show what has been done so far:
|
||||
|
||||
------------
|
||||
$ git bisect log
|
||||
------------
|
||||
|
||||
shows what you have done so far. You can truncate its output somewhere
|
||||
and save it in a file, and run
|
||||
If you discover that you made a mistake in specifying the status of a
|
||||
revision, you can save the output of this command to a file, edit it to
|
||||
remove the incorrect entries, and then issue the following commands to
|
||||
return to a corrected state:
|
||||
|
||||
------------
|
||||
$ git bisect reset
|
||||
$ git bisect replay that-file
|
||||
------------
|
||||
|
||||
if you find later you made a mistake telling good/bad about a
|
||||
revision.
|
||||
|
||||
Avoiding to test a commit
|
||||
Avoiding testing a commit
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
If in a middle of bisect session, you know what the bisect suggested
|
||||
to try next is not a good one to test (e.g. the change the commit
|
||||
If, in the middle of a bisect session, you know that the next suggested
|
||||
revision is not a good one to test (e.g. the change the commit
|
||||
introduces is known not to work in your environment and you know it
|
||||
does not have anything to do with the bug you are chasing), you may
|
||||
want to find a near-by commit and try that instead.
|
||||
want to find a nearby commit and try that instead.
|
||||
|
||||
It goes something like this:
|
||||
For example:
|
||||
|
||||
------------
|
||||
$ git bisect good/bad # previous round was good/bad.
|
||||
$ git bisect good/bad # previous round was good or bad.
|
||||
Bisecting: 337 revisions left to test after this
|
||||
$ git bisect visualize # oops, that is uninteresting.
|
||||
$ git reset --hard HEAD~3 # try 3 revs before what
|
||||
$ git reset --hard HEAD~3 # try 3 revisions before what
|
||||
# was suggested
|
||||
------------
|
||||
|
||||
Then compile and test the one you chose to try. After that, tell
|
||||
bisect what the result was as usual.
|
||||
Then compile and test the chosen revision, and afterwards mark
|
||||
the revision as good or bad in the usual manner.
|
||||
|
||||
Bisect skip
|
||||
~~~~~~~~~~~~
|
||||
|
||||
Instead of choosing by yourself a nearby commit, you may just want git
|
||||
to do it for you using:
|
||||
Instead of choosing by yourself a nearby commit, you can ask git
|
||||
to do it for you by issuing the command:
|
||||
|
||||
------------
|
||||
$ git bisect skip # Current version cannot be tested
|
||||
------------
|
||||
|
||||
But computing the commit to test may be slower afterwards and git may
|
||||
eventually not be able to tell the first bad among a bad and one or
|
||||
more "skip"ped commits.
|
||||
eventually not be able to tell the first bad commit among a bad commit
|
||||
and one or more skipped commits.
|
||||
|
||||
You can even skip a range of commits, instead of just one commit,
|
||||
using the "'<commit1>'..'<commit2>'" notation. For example:
|
||||
|
||||
------------
|
||||
$ git bisect skip v2.5..v2.6
|
||||
------------
|
||||
|
||||
This tells the bisect process that no commit after `v2.5`, up to and
|
||||
including `v2.6`, should be tested.
|
||||
|
||||
Note that if you also want to skip the first commit of the range you
|
||||
would issue the command:
|
||||
|
||||
------------
|
||||
$ git bisect skip v2.5 v2.5..v2.6
|
||||
------------
|
||||
|
||||
This tells the bisect process that the commits between `v2.5` included
|
||||
and `v2.6` included should be skipped.
|
||||
|
||||
|
||||
Cutting down bisection by giving more parameters to bisect start
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
You can further cut down the number of trials if you know what part of
|
||||
the tree is involved in the problem you are tracking down, by giving
|
||||
paths parameters when you say `bisect start`, like this:
|
||||
You can further cut down the number of trials, if you know what part of
|
||||
the tree is involved in the problem you are tracking down, by specifying
|
||||
path parameters when issuing the `bisect start` command:
|
||||
|
||||
------------
|
||||
$ git bisect start -- arch/i386 include/asm-i386
|
||||
------------
|
||||
|
||||
If you know beforehand more than one good commits, you can narrow the
|
||||
bisect space down without doing the whole tree checkout every time you
|
||||
give good commits. You give the bad revision immediately after `start`
|
||||
and then you give all the good revisions you have:
|
||||
If you know beforehand more than one good commit, you can narrow the
|
||||
bisect space down by specifying all of the good commits immediately after
|
||||
the bad commit when issuing the `bisect start` command:
|
||||
|
||||
------------
|
||||
$ git bisect start v2.6.20-rc6 v2.6.20-rc4 v2.6.20-rc1 --
|
||||
@ -190,38 +214,38 @@ Bisect run
|
||||
~~~~~~~~~~
|
||||
|
||||
If you have a script that can tell if the current source code is good
|
||||
or bad, you can automatically bisect using:
|
||||
or bad, you can bisect by issuing the command:
|
||||
|
||||
------------
|
||||
$ git bisect run my_script
|
||||
$ git bisect run my_script arguments
|
||||
------------
|
||||
|
||||
Note that the "run" script (`my_script` in the above example) should
|
||||
exit with code 0 in case the current source code is good. Exit with a
|
||||
Note that the script (`my_script` in the above example) should
|
||||
exit with code 0 if the current source code is good, and exit with a
|
||||
code between 1 and 127 (inclusive), except 125, if the current
|
||||
source code is bad.
|
||||
|
||||
Any other exit code will abort the automatic bisect process. (A
|
||||
program that does "exit(-1)" leaves $? = 255, see exit(3) manual page,
|
||||
the value is chopped with "& 0377".)
|
||||
Any other exit code will abort the bisect process. It should be noted
|
||||
that a program that terminates via "exit(-1)" leaves $? = 255, (see the
|
||||
exit(3) manual page), as the value is chopped with "& 0377".
|
||||
|
||||
The special exit code 125 should be used when the current source code
|
||||
cannot be tested. If the "run" script exits with this code, the current
|
||||
revision will be skipped, see `git bisect skip` above.
|
||||
cannot be tested. If the script exits with this code, the current
|
||||
revision will be skipped (see `git bisect skip` above).
|
||||
|
||||
You may often find that during bisect you want to have near-constant
|
||||
tweaks (e.g., s/#define DEBUG 0/#define DEBUG 1/ in a header file, or
|
||||
"revision that does not have this commit needs this patch applied to
|
||||
work around other problem this bisection is not interested in")
|
||||
applied to the revision being tested.
|
||||
You may often find that during a bisect session you want to have
|
||||
temporary modifications (e.g. s/#define DEBUG 0/#define DEBUG 1/ in a
|
||||
header file, or "revision that does not have this commit needs this
|
||||
patch applied to work around another problem this bisection is not
|
||||
interested in") applied to the revision being tested.
|
||||
|
||||
To cope with such a situation, after the inner 'git bisect' finds the
|
||||
next revision to test, with the "run" script, you can apply that tweak
|
||||
before compiling, run the real test, and after the test decides if the
|
||||
revision (possibly with the needed tweaks) passed the test, rewind the
|
||||
tree to the pristine state. Finally the "run" script can exit with
|
||||
the status of the real test to let the "git bisect run" command loop to
|
||||
determine the outcome.
|
||||
next revision to test, the script can apply the patch
|
||||
before compiling, run the real test, and afterwards decide if the
|
||||
revision (possibly with the needed patch) passed the test and then
|
||||
rewind the tree to the pristine state. Finally the script should exit
|
||||
with the status of the real test to let the "git bisect run" command loop
|
||||
determine the eventual outcome of the bisect session.
|
||||
|
||||
EXAMPLES
|
||||
--------
|
||||
@ -233,44 +257,60 @@ $ git bisect start HEAD v1.2 -- # HEAD is bad, v1.2 is good
|
||||
$ git bisect run make # "make" builds the app
|
||||
------------
|
||||
|
||||
* Automatically bisect a test failure between origin and HEAD:
|
||||
+
|
||||
------------
|
||||
$ git bisect start HEAD origin -- # HEAD is bad, origin is good
|
||||
$ git bisect run make test # "make test" builds and tests
|
||||
------------
|
||||
|
||||
* Automatically bisect a broken test suite:
|
||||
+
|
||||
------------
|
||||
$ cat ~/test.sh
|
||||
#!/bin/sh
|
||||
make || exit 125 # this "skip"s broken builds
|
||||
make || exit 125 # this skips broken builds
|
||||
make test # "make test" runs the test suite
|
||||
$ git bisect start v1.3 v1.1 -- # v1.3 is bad, v1.1 is good
|
||||
$ git bisect run ~/test.sh
|
||||
------------
|
||||
+
|
||||
Here we use a "test.sh" custom script. In this script, if "make"
|
||||
fails, we "skip" the current commit.
|
||||
fails, we skip the current commit.
|
||||
+
|
||||
It's safer to use a custom script outside the repo to prevent
|
||||
It is safer to use a custom script outside the repository to prevent
|
||||
interactions between the bisect, make and test processes and the
|
||||
script.
|
||||
+
|
||||
And "make test" should "exit 0", if the test suite passes, and
|
||||
"exit 1" (for example) otherwise.
|
||||
"make test" should "exit 0", if the test suite passes, and
|
||||
"exit 1" otherwise.
|
||||
|
||||
* Automatically bisect a broken test case:
|
||||
+
|
||||
------------
|
||||
$ cat ~/test.sh
|
||||
#!/bin/sh
|
||||
make || exit 125 # this "skip"s broken builds
|
||||
make || exit 125 # this skips broken builds
|
||||
~/check_test_case.sh # does the test case passes ?
|
||||
$ git bisect start HEAD HEAD~10 -- # culprit is among the last 10
|
||||
$ git bisect run ~/test.sh
|
||||
------------
|
||||
+
|
||||
Here "check_test_case.sh" should "exit 0", if the test case passes,
|
||||
and "exit 1" (for example) otherwise.
|
||||
Here "check_test_case.sh" should "exit 0" if the test case passes,
|
||||
and "exit 1" otherwise.
|
||||
+
|
||||
It's safer if both "test.sh" and "check_test_case.sh" scripts are
|
||||
outside the repo to prevent interactions between the bisect, make and
|
||||
test processes and the scripts.
|
||||
It is safer if both "test.sh" and "check_test_case.sh" scripts are
|
||||
outside the repository to prevent interactions between the bisect,
|
||||
make and test processes and the scripts.
|
||||
|
||||
* Automatically bisect a broken test suite:
|
||||
+
|
||||
------------
|
||||
$ git bisect start HEAD HEAD~10 -- # culprit is among the last 10
|
||||
$ git bisect run sh -c "make || exit 125; ~/check_test_case.sh"
|
||||
------------
|
||||
+
|
||||
Does the same as the previous example, but on a single line.
|
||||
|
||||
Author
|
||||
------
|
||||
|
@ -10,7 +10,7 @@ SYNOPSIS
|
||||
[verse]
|
||||
'git blame' [-c] [-b] [-l] [--root] [-t] [-f] [-n] [-s] [-p] [-w] [--incremental] [-L n,m]
|
||||
[-S <revs-file>] [-M] [-C] [-C] [--since=<date>]
|
||||
[<rev> | --contents <file>] [--] <file>
|
||||
[<rev> | --contents <file> | --reverse <rev>] [--] <file>
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -18,9 +18,9 @@ DESCRIPTION
|
||||
Annotates each line in the given file with information from the revision which
|
||||
last modified the line. Optionally, start annotating from the given revision.
|
||||
|
||||
Also it can limit the range of lines annotated.
|
||||
The command can also limit the range of lines annotated.
|
||||
|
||||
This report doesn't tell you anything about lines which have been deleted or
|
||||
The report does not tell you anything about lines which have been deleted or
|
||||
replaced; you need to use a tool such as 'git-diff' or the "pickaxe"
|
||||
interface briefly mentioned in the following paragraph.
|
||||
|
||||
@ -48,26 +48,26 @@ include::blame-options.txt[]
|
||||
lines between files (see `-C`) and lines moved within a
|
||||
file (see `-M`). The first number listed is the score.
|
||||
This is the number of alphanumeric characters detected
|
||||
to be moved between or within files. This must be above
|
||||
as having been moved between or within files. This must be above
|
||||
a certain threshold for 'git-blame' to consider those lines
|
||||
of code to have been moved.
|
||||
|
||||
-f::
|
||||
--show-name::
|
||||
Show filename in the original commit. By default
|
||||
filename is shown if there is any line that came from a
|
||||
file with different name, due to rename detection.
|
||||
Show the filename in the original commit. By default
|
||||
the filename is shown if there is any line that came from a
|
||||
file with a different name, due to rename detection.
|
||||
|
||||
-n::
|
||||
--show-number::
|
||||
Show line number in the original commit (Default: off).
|
||||
Show the line number in the original commit (Default: off).
|
||||
|
||||
-s::
|
||||
Suppress author name and timestamp from the output.
|
||||
Suppress the author name and timestamp from the output.
|
||||
|
||||
-w::
|
||||
Ignore whitespace when comparing parent's version and
|
||||
child's to find where the lines came from.
|
||||
Ignore whitespace when comparing the parent's version and
|
||||
the child's to find where the lines came from.
|
||||
|
||||
|
||||
THE PORCELAIN FORMAT
|
||||
@ -79,17 +79,17 @@ header at the minimum has the first line which has:
|
||||
- 40-byte SHA-1 of the commit the line is attributed to;
|
||||
- the line number of the line in the original file;
|
||||
- the line number of the line in the final file;
|
||||
- on a line that starts a group of line from a different
|
||||
- on a line that starts a group of lines from a different
|
||||
commit than the previous one, the number of lines in this
|
||||
group. On subsequent lines this field is absent.
|
||||
|
||||
This header line is followed by the following information
|
||||
at least once for each commit:
|
||||
|
||||
- author name ("author"), email ("author-mail"), time
|
||||
- the author name ("author"), email ("author-mail"), time
|
||||
("author-time"), and timezone ("author-tz"); similarly
|
||||
for committer.
|
||||
- filename in the commit the line is attributed to.
|
||||
- the filename in the commit that the line is attributed to.
|
||||
- the first line of the commit log message ("summary").
|
||||
|
||||
The contents of the actual line is output after the above
|
||||
@ -100,23 +100,23 @@ header elements later.
|
||||
SPECIFYING RANGES
|
||||
-----------------
|
||||
|
||||
Unlike 'git-blame' and 'git-annotate' in older git, the extent
|
||||
of annotation can be limited to both line ranges and revision
|
||||
Unlike 'git-blame' and 'git-annotate' in older versions of git, the extent
|
||||
of the annotation can be limited to both line ranges and revision
|
||||
ranges. When you are interested in finding the origin for
|
||||
ll. 40-60 for file `foo`, you can use `-L` option like these
|
||||
lines 40-60 for file `foo`, you can use the `-L` option like so
|
||||
(they mean the same thing -- both ask for 21 lines starting at
|
||||
line 40):
|
||||
|
||||
git blame -L 40,60 foo
|
||||
git blame -L 40,+21 foo
|
||||
|
||||
Also you can use regular expression to specify the line range.
|
||||
Also you can use a regular expression to specify the line range:
|
||||
|
||||
git blame -L '/^sub hello {/,/^}$/' foo
|
||||
|
||||
would limit the annotation to the body of `hello` subroutine.
|
||||
which limits the annotation to the body of the `hello` subroutine.
|
||||
|
||||
When you are not interested in changes older than the version
|
||||
When you are not interested in changes older than version
|
||||
v2.6.18, or changes older than 3 weeks, you can use revision
|
||||
range specifiers similar to 'git-rev-list':
|
||||
|
||||
@ -129,7 +129,7 @@ commit v2.6.18 or the most recent commit that is more than 3
|
||||
weeks old in the above example) are blamed for that range
|
||||
boundary commit.
|
||||
|
||||
A particularly useful way is to see if an added file have lines
|
||||
A particularly useful way is to see if an added file has lines
|
||||
created by copy-and-paste from existing files. Sometimes this
|
||||
indicates that the developer was being sloppy and did not
|
||||
refactor the code properly. You can first find the commit that
|
||||
@ -162,26 +162,32 @@ annotated.
|
||||
+
|
||||
Line numbers count from 1.
|
||||
|
||||
. The first time that commit shows up in the stream, it has various
|
||||
. The first time that a commit shows up in the stream, it has various
|
||||
other information about it printed out with a one-word tag at the
|
||||
beginning of each line about that "extended commit info" (author,
|
||||
email, committer, dates, summary etc).
|
||||
beginning of each line describing the extra commit information (author,
|
||||
email, committer, dates, summary, etc.).
|
||||
|
||||
. Unlike Porcelain format, the filename information is always
|
||||
. Unlike the Porcelain format, the filename information is always
|
||||
given and terminates the entry:
|
||||
|
||||
"filename" <whitespace-quoted-filename-goes-here>
|
||||
+
|
||||
and thus it's really quite easy to parse for some line- and word-oriented
|
||||
and thus it is really quite easy to parse for some line- and word-oriented
|
||||
parser (which should be quite natural for most scripting languages).
|
||||
+
|
||||
[NOTE]
|
||||
For people who do parsing: to make it more robust, just ignore any
|
||||
lines in between the first and last one ("<sha1>" and "filename" lines)
|
||||
where you don't recognize the tag-words (or care about that particular
|
||||
lines between the first and last one ("<sha1>" and "filename" lines)
|
||||
where you do not recognize the tag words (or care about that particular
|
||||
one) at the beginning of the "extended information" lines. That way, if
|
||||
there is ever added information (like the commit encoding or extended
|
||||
commit commentary), a blame viewer won't ever care.
|
||||
commit commentary), a blame viewer will not care.
|
||||
|
||||
|
||||
MAPPING AUTHORS
|
||||
---------------
|
||||
|
||||
include::mailmap.txt[]
|
||||
|
||||
|
||||
SEE ALSO
|
||||
|
@ -18,19 +18,19 @@ SYNOPSIS
|
||||
DESCRIPTION
|
||||
-----------
|
||||
|
||||
With no arguments, existing branches are listed, the current branch will
|
||||
With no arguments, existing branches are listed and the current branch will
|
||||
be highlighted with an asterisk. Option `-r` causes the remote-tracking
|
||||
branches to be listed, and option `-a` shows both.
|
||||
|
||||
With `--contains`, shows only the branches that contains the named commit
|
||||
(in other words, the branches whose tip commits are descendant of the
|
||||
With `--contains`, shows only the branches that contain the named commit
|
||||
(in other words, the branches whose tip commits are descendants of the
|
||||
named commit). With `--merged`, only branches merged into the named
|
||||
commit (i.e. the branches whose tip commits are reachable from the named
|
||||
commit) will be listed. With `--no-merged` only branches not merged into
|
||||
the named commit will be listed. Missing <commit> argument defaults to
|
||||
'HEAD' (i.e. the tip of the current branch).
|
||||
the named commit will be listed. If the <commit> argument is missing it
|
||||
defaults to 'HEAD' (i.e. the tip of the current branch).
|
||||
|
||||
In its second form, a new branch named <branchname> will be created.
|
||||
In the command's second form, a new branch named <branchname> will be created.
|
||||
It will start out with a head equal to the one given as <start-point>.
|
||||
If no <start-point> is given, the branch will be created with a head
|
||||
equal to that of the currently checked out branch.
|
||||
@ -57,9 +57,9 @@ has a reflog then the reflog will also be deleted.
|
||||
|
||||
Use -r together with -d to delete remote-tracking branches. Note, that it
|
||||
only makes sense to delete remote-tracking branches if they no longer exist
|
||||
in remote repository or if 'git-fetch' was configured not to fetch
|
||||
them again. See also 'prune' subcommand of linkgit:git-remote[1] for way to
|
||||
clean up all obsolete remote-tracking branches.
|
||||
in the remote repository or if 'git-fetch' was configured not to fetch
|
||||
them again. See also the 'prune' subcommand of linkgit:git-remote[1] for a
|
||||
way to clean up all obsolete remote-tracking branches.
|
||||
|
||||
|
||||
OPTIONS
|
||||
@ -76,14 +76,14 @@ OPTIONS
|
||||
based sha1 expressions such as "<branchname>@\{yesterday}".
|
||||
|
||||
-f::
|
||||
Force the creation of a new branch even if it means deleting
|
||||
a branch that already exists with the same name.
|
||||
Reset <branchname> to <startpoint> if <branchname> exists
|
||||
already. Without `-f` 'git-branch' refuses to change an existing branch.
|
||||
|
||||
-m::
|
||||
Move/rename a branch and the corresponding reflog.
|
||||
|
||||
-M::
|
||||
Move/rename a branch even if the new branchname already exists.
|
||||
Move/rename a branch even if the new branch name already exists.
|
||||
|
||||
--color::
|
||||
Color branches to highlight current, local, and remote branches.
|
||||
@ -100,29 +100,34 @@ OPTIONS
|
||||
|
||||
-v::
|
||||
--verbose::
|
||||
Show sha1 and commit subject line for each head.
|
||||
Show sha1 and commit subject line for each head, along with
|
||||
relationship to upstream branch (if any). If given twice, print
|
||||
the name of the upstream branch, as well.
|
||||
|
||||
--abbrev=<length>::
|
||||
Alter minimum display length for sha1 in output listing,
|
||||
default value is 7.
|
||||
Alter the sha1's minimum display length in the output listing.
|
||||
The default value is 7.
|
||||
|
||||
--no-abbrev::
|
||||
Display the full sha1s in output listing rather than abbreviating them.
|
||||
Display the full sha1s in the output listing rather than abbreviating them.
|
||||
|
||||
--track::
|
||||
When creating a new branch, set up configuration so that 'git-pull'
|
||||
will automatically retrieve data from the start point, which must be
|
||||
a branch. Use this if you always pull from the same upstream branch
|
||||
into the new branch, and if you don't want to use "git pull
|
||||
<repository> <refspec>" explicitly. This behavior is the default
|
||||
when the start point is a remote branch. Set the
|
||||
branch.autosetupmerge configuration variable to `false` if you want
|
||||
'git-checkout' and 'git-branch' to always behave as if '--no-track' were
|
||||
given. Set it to `always` if you want this behavior when the
|
||||
start-point is either a local or remote branch.
|
||||
When creating a new branch, set up configuration to mark the
|
||||
start-point branch as "upstream" from the new branch. This
|
||||
configuration will tell git to show the relationship between the
|
||||
two branches in `git status` and `git branch -v`. Furthermore,
|
||||
it directs `git pull` without arguments to pull from the
|
||||
upstream when the new branch is checked out.
|
||||
+
|
||||
This behavior is the default when the start point is a remote branch.
|
||||
Set the branch.autosetupmerge configuration variable to `false` if you
|
||||
want `git checkout` and `git branch` to always behave as if '--no-track'
|
||||
were given. Set it to `always` if you want this behavior when the
|
||||
start-point is either a local or remote branch.
|
||||
|
||||
--no-track::
|
||||
Ignore the branch.autosetupmerge configuration variable.
|
||||
Do not set up "upstream" configuration, even if the
|
||||
branch.autosetupmerge configuration variable is true.
|
||||
|
||||
--contains <commit>::
|
||||
Only list branches which contain the specified commit.
|
||||
@ -149,13 +154,13 @@ OPTIONS
|
||||
|
||||
<newbranch>::
|
||||
The new name for an existing branch. The same restrictions as for
|
||||
<branchname> applies.
|
||||
<branchname> apply.
|
||||
|
||||
|
||||
Examples
|
||||
--------
|
||||
|
||||
Start development off of a known tag::
|
||||
Start development from a known tag::
|
||||
+
|
||||
------------
|
||||
$ git clone git://git.kernel.org/pub/scm/.../linux-2.6 my2.6
|
||||
@ -167,7 +172,7 @@ $ git checkout my2.6.14
|
||||
<1> This step and the next one could be combined into a single step with
|
||||
"checkout -b my2.6.14 v2.6.14".
|
||||
|
||||
Delete unneeded branch::
|
||||
Delete an unneeded branch::
|
||||
+
|
||||
------------
|
||||
$ git clone git://git.kernel.org/.../git.git my.git
|
||||
@ -176,21 +181,21 @@ $ git branch -d -r origin/todo origin/html origin/man <1>
|
||||
$ git branch -D test <2>
|
||||
------------
|
||||
+
|
||||
<1> Delete remote-tracking branches "todo", "html", "man". Next 'fetch' or
|
||||
'pull' will create them again unless you configure them not to. See
|
||||
linkgit:git-fetch[1].
|
||||
<2> Delete "test" branch even if the "master" branch (or whichever branch is
|
||||
currently checked out) does not have all commits from test branch.
|
||||
<1> Delete the remote-tracking branches "todo", "html" and "man". The next
|
||||
'fetch' or 'pull' will create them again unless you configure them not to.
|
||||
See linkgit:git-fetch[1].
|
||||
<2> Delete the "test" branch even if the "master" branch (or whichever branch
|
||||
is currently checked out) does not have all commits from the test branch.
|
||||
|
||||
|
||||
Notes
|
||||
-----
|
||||
|
||||
If you are creating a branch that you want to immediately checkout, it's
|
||||
If you are creating a branch that you want to checkout immediately, it is
|
||||
easier to use the git checkout command with its `-b` option to create
|
||||
a branch and check it out with a single command.
|
||||
|
||||
The options `--contains`, `--merged` and `--no-merged` serves three related
|
||||
The options `--contains`, `--merged` and `--no-merged` serve three related
|
||||
but different purposes:
|
||||
|
||||
- `--contains <commit>` is used to find all branches which will need
|
||||
|
@ -19,13 +19,13 @@ DESCRIPTION
|
||||
|
||||
Some workflows require that one or more branches of development on one
|
||||
machine be replicated on another machine, but the two machines cannot
|
||||
be directly connected so the interactive git protocols (git, ssh,
|
||||
rsync, http) cannot be used. This command provides support for
|
||||
be directly connected, and therefore the interactive git protocols (git,
|
||||
ssh, rsync, http) cannot be used. This command provides support for
|
||||
'git-fetch' and 'git-pull' to operate by packaging objects and references
|
||||
in an archive at the originating machine, then importing those into
|
||||
another repository using 'git-fetch' and 'git-pull'
|
||||
after moving the archive by some means (i.e., by sneakernet). As no
|
||||
direct connection between repositories exists, the user must specify a
|
||||
direct connection between the repositories exists, the user must specify a
|
||||
basis for the bundle that is held by the destination repository: the
|
||||
bundle assumes that all objects in the basis are already in the
|
||||
destination repository.
|
||||
@ -43,7 +43,7 @@ verify <file>::
|
||||
bundle format itself as well as checking that the prerequisite
|
||||
commits exist and are fully linked in the current repository.
|
||||
'git-bundle' prints a list of missing commits, if any, and exits
|
||||
with non-zero status.
|
||||
with a non-zero status.
|
||||
|
||||
list-heads <file>::
|
||||
Lists the references defined in the bundle. If followed by a
|
||||
@ -53,14 +53,14 @@ list-heads <file>::
|
||||
unbundle <file>::
|
||||
Passes the objects in the bundle to 'git-index-pack'
|
||||
for storage in the repository, then prints the names of all
|
||||
defined references. If a reflist is given, only references
|
||||
matching those in the given list are printed. This command is
|
||||
defined references. If a list of references is given, only
|
||||
references matching those in the list are printed. This command is
|
||||
really plumbing, intended to be called only by 'git-fetch'.
|
||||
|
||||
[git-rev-list-args...]::
|
||||
A list of arguments, acceptable to 'git-rev-parse' and
|
||||
'git-rev-list', that specify the specific objects and references
|
||||
to transport. For example, "master~10..master" causes the
|
||||
'git-rev-list', that specifies the specific objects and references
|
||||
to transport. For example, `master\~10..master` causes the
|
||||
current master reference to be packaged along with all objects
|
||||
added since its 10th ancestor commit. There is no explicit
|
||||
limit to the number of references and objects that may be
|
||||
@ -71,98 +71,134 @@ unbundle <file>::
|
||||
A list of references used to limit the references reported as
|
||||
available. This is principally of use to 'git-fetch', which
|
||||
expects to receive only those references asked for and not
|
||||
necessarily everything in the pack (in this case, 'git-bundle' is
|
||||
acting like 'git-fetch-pack').
|
||||
necessarily everything in the pack (in this case, 'git-bundle' acts
|
||||
like 'git-fetch-pack').
|
||||
|
||||
SPECIFYING REFERENCES
|
||||
---------------------
|
||||
|
||||
'git-bundle' will only package references that are shown by
|
||||
'git-show-ref': this includes heads, tags, and remote heads. References
|
||||
such as master~1 cannot be packaged, but are perfectly suitable for
|
||||
such as `master\~1` cannot be packaged, but are perfectly suitable for
|
||||
defining the basis. More than one reference may be packaged, and more
|
||||
than one basis can be specified. The objects packaged are those not
|
||||
contained in the union of the given bases. Each basis can be
|
||||
specified explicitly (e.g., ^master~10), or implicitly (e.g.,
|
||||
master~10..master, master --since=10.days.ago).
|
||||
specified explicitly (e.g. `^master\~10`), or implicitly (e.g.
|
||||
`master\~10..master`, `--since=10.days.ago master`).
|
||||
|
||||
It is very important that the basis used be held by the destination.
|
||||
It is okay to err on the side of conservatism, causing the bundle file
|
||||
to contain objects already in the destination as these are ignored
|
||||
It is okay to err on the side of caution, causing the bundle file
|
||||
to contain objects already in the destination, as these are ignored
|
||||
when unpacking at the destination.
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
|
||||
Assume two repositories exist as R1 on machine A, and R2 on machine B.
|
||||
Assume you want to transfer the history from a repository R1 on machine A
|
||||
to another repository R2 on machine B.
|
||||
For whatever reason, direct connection between A and B is not allowed,
|
||||
but we can move data from A to B via some mechanism (CD, email, etc).
|
||||
We want to update R2 with developments made on branch master in R1.
|
||||
but we can move data from A to B via some mechanism (CD, email, etc.).
|
||||
We want to update R2 with development made on the branch master in R1.
|
||||
|
||||
To create the bundle you have to specify the basis. You have some options:
|
||||
To bootstrap the process, you can first create a bundle that does not have
|
||||
any basis. You can use a tag to remember up to what commit you last
|
||||
processed, in order to make it easy to later update the other repository
|
||||
with an incremental bundle:
|
||||
|
||||
- Without basis.
|
||||
+
|
||||
This is useful when sending the whole history.
|
||||
----------------
|
||||
machineA$ cd R1
|
||||
machineA$ git bundle create file.bundle master
|
||||
machineA$ git tag -f lastR2bundle master
|
||||
----------------
|
||||
|
||||
------------
|
||||
$ git bundle create mybundle master
|
||||
------------
|
||||
Then you transfer file.bundle to the target machine B. If you are creating
|
||||
the repository on machine B, then you can clone from the bundle as if it
|
||||
were a remote repository instead of creating an empty repository and then
|
||||
pulling or fetching objects from the bundle:
|
||||
|
||||
- Using temporally tags.
|
||||
+
|
||||
We set a tag in R1 (lastR2bundle) after the previous such transport,
|
||||
and move it afterwards to help build the bundle.
|
||||
----------------
|
||||
machineB$ git clone /home/me/tmp/file.bundle R2
|
||||
----------------
|
||||
|
||||
------------
|
||||
$ git bundle create mybundle master ^lastR2bundle
|
||||
$ git tag -f lastR2bundle master
|
||||
------------
|
||||
|
||||
- Using a tag present in both repositories
|
||||
|
||||
------------
|
||||
$ git bundle create mybundle master ^v1.0.0
|
||||
------------
|
||||
|
||||
- A basis based on time.
|
||||
|
||||
------------
|
||||
$ git bundle create mybundle master --since=10.days.ago
|
||||
------------
|
||||
|
||||
- With a limit on the number of commits
|
||||
|
||||
------------
|
||||
$ git bundle create mybundle master -n 10
|
||||
------------
|
||||
|
||||
Then you move mybundle from A to B, and in R2 on B:
|
||||
|
||||
------------
|
||||
$ git bundle verify mybundle
|
||||
$ git fetch mybundle master:localRef
|
||||
------------
|
||||
|
||||
With something like this in the config in R2:
|
||||
This will define a remote called "origin" in the resulting repository that
|
||||
lets you fetch and pull from the bundle. The $GIT_DIR/config file in R2 will
|
||||
have an entry like this:
|
||||
|
||||
------------------------
|
||||
[remote "bundle"]
|
||||
url = /home/me/tmp/file.bdl
|
||||
[remote "origin"]
|
||||
url = /home/me/tmp/file.bundle
|
||||
fetch = refs/heads/*:refs/remotes/origin/*
|
||||
------------------------
|
||||
|
||||
You can first sneakernet the bundle file to ~/tmp/file.bdl and
|
||||
then these commands on machine B:
|
||||
To update the resulting mine.git repository, you can fetch or pull after
|
||||
replacing the bundle stored at /home/me/tmp/file.bundle with incremental
|
||||
updates.
|
||||
|
||||
------------
|
||||
$ git ls-remote bundle
|
||||
$ git fetch bundle
|
||||
$ git pull bundle
|
||||
------------
|
||||
After working some more in the original repository, you can create an
|
||||
incremental bundle to update the other repository:
|
||||
|
||||
would treat it as if it is talking with a remote side over the
|
||||
network.
|
||||
----------------
|
||||
machineA$ cd R1
|
||||
machineA$ git bundle create file.bundle lastR2bundle..master
|
||||
machineA$ git tag -f lastR2bundle master
|
||||
----------------
|
||||
|
||||
You then transfer the bundle to the other machine to replace
|
||||
/home/me/tmp/file.bundle, and pull from it.
|
||||
|
||||
----------------
|
||||
machineB$ cd R2
|
||||
machineB$ git pull
|
||||
----------------
|
||||
|
||||
If you know up to what commit the intended recipient repository should
|
||||
have the necessary objects, you can use that knowledge to specify the
|
||||
basis, giving a cut-off point to limit the revisions and objects that go
|
||||
in the resulting bundle. The previous example used lastR2bundle tag
|
||||
for this purpose, but you can use any other options that you would give to
|
||||
the linkgit:git-log[1] command. Here are more examples:
|
||||
|
||||
You can use a tag that is present in both:
|
||||
|
||||
----------------
|
||||
$ git bundle create mybundle v1.0.0..master
|
||||
----------------
|
||||
|
||||
You can use a basis based on time:
|
||||
|
||||
----------------
|
||||
$ git bundle create mybundle --since=10.days master
|
||||
----------------
|
||||
|
||||
You can use the number of commits:
|
||||
|
||||
----------------
|
||||
$ git bundle create mybundle -10 master
|
||||
----------------
|
||||
|
||||
You can run `git-bundle verify` to see if you can extract from a bundle
|
||||
that was created with a basis:
|
||||
|
||||
----------------
|
||||
$ git bundle verify mybundle
|
||||
----------------
|
||||
|
||||
This will list what commits you must have in order to extract from the
|
||||
bundle and will error out if you do not have them.
|
||||
|
||||
A bundle from a recipient repository's point of view is just like a
|
||||
regular repository which it fetches or pulls from. You can, for example, map
|
||||
references when fetching:
|
||||
|
||||
----------------
|
||||
$ git fetch mybundle master:localRef
|
||||
----------------
|
||||
|
||||
You can also see what references it offers.
|
||||
|
||||
----------------
|
||||
$ git ls-remote mybundle
|
||||
----------------
|
||||
|
||||
Author
|
||||
------
|
||||
|
@ -3,7 +3,7 @@ git-cat-file(1)
|
||||
|
||||
NAME
|
||||
----
|
||||
git-cat-file - Provide content or type/size information for repository objects
|
||||
git-cat-file - Provide content or type and size information for repository objects
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
@ -14,19 +14,19 @@ SYNOPSIS
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
In the first form, provides content or type of objects in the repository. The
|
||||
type is required unless '-t' or '-p' is used to find the object type, or '-s'
|
||||
is used to find the object size.
|
||||
In its first form, the command provides the content or the type of an object in
|
||||
the repository. The type is required unless '-t' or '-p' is used to find the
|
||||
object type, or '-s' is used to find the object size.
|
||||
|
||||
In the second form, a list of object (separated by LFs) is provided on stdin,
|
||||
and the SHA1, type, and size of each object is printed on stdout.
|
||||
In the second form, a list of objects (separated by linefeeds) is provided on
|
||||
stdin, and the SHA1, type, and size of each object is printed on stdout.
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
<object>::
|
||||
The name of the object to show.
|
||||
For a more complete list of ways to spell object names, see
|
||||
"SPECIFYING REVISIONS" section in linkgit:git-rev-parse[1].
|
||||
the "SPECIFYING REVISIONS" section in linkgit:git-rev-parse[1].
|
||||
|
||||
-t::
|
||||
Instead of the content, show the object type identified by
|
||||
@ -56,8 +56,8 @@ OPTIONS
|
||||
stdin. May not be combined with any other options or arguments.
|
||||
|
||||
--batch-check::
|
||||
Print the SHA1, type, and size of each object provided on stdin. May not be
|
||||
combined with any other options or arguments.
|
||||
Print the SHA1, type, and size of each object provided on stdin. May not
|
||||
be combined with any other options or arguments.
|
||||
|
||||
OUTPUT
|
||||
------
|
||||
|
@ -8,17 +8,26 @@ git-check-attr - Display gitattributes information
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git check-attr' attr... [--] pathname...
|
||||
'git check-attr' --stdin [-z] attr... < <list-of-paths>
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
For every pathname, this command will list if each attr is 'unspecified',
|
||||
For every pathname, this command will list if each attribute is 'unspecified',
|
||||
'set', or 'unset' as a gitattribute on that pathname.
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
--stdin::
|
||||
Read file names from stdin instead of from the command-line.
|
||||
|
||||
-z::
|
||||
Only meaningful with `--stdin`; paths are separated with a
|
||||
NUL character instead of a linefeed character.
|
||||
|
||||
\--::
|
||||
Interpret all preceding arguments as attributes, and all following
|
||||
Interpret all preceding arguments as attributes and all following
|
||||
arguments as path names. If not supplied, only the first argument will
|
||||
be treated as an attribute.
|
||||
|
||||
@ -28,12 +37,12 @@ OUTPUT
|
||||
The output is of the form:
|
||||
<path> COLON SP <attribute> COLON SP <info> LF
|
||||
|
||||
Where <path> is the path of a file being queried, <attribute> is an attribute
|
||||
<path> is the path of a file being queried, <attribute> is an attribute
|
||||
being queried and <info> can be either:
|
||||
|
||||
'unspecified';; when the attribute is not defined for the path.
|
||||
'unset';; when the attribute is defined to false.
|
||||
'set';; when the attribute is defined to true.
|
||||
'unset';; when the attribute is defined as false.
|
||||
'set';; when the attribute is defined as true.
|
||||
<value>;; when a value has been assigned to the attribute.
|
||||
|
||||
EXAMPLES
|
||||
@ -60,7 +69,7 @@ org/example/MyClass.java: diff: java
|
||||
org/example/MyClass.java: myAttr: set
|
||||
---------------
|
||||
|
||||
* Listing attribute for multiple files:
|
||||
* Listing an attribute for multiple files:
|
||||
---------------
|
||||
$ git check-attr myAttr -- org/example/MyClass.java org/example/NoMyAttr.java
|
||||
org/example/MyClass.java: myAttr: set
|
||||
|
@ -3,52 +3,70 @@ git-check-ref-format(1)
|
||||
|
||||
NAME
|
||||
----
|
||||
git-check-ref-format - Make sure ref name is well formed
|
||||
git-check-ref-format - Ensures that a reference name is well formed
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git check-ref-format' <refname>
|
||||
'git check-ref-format' [--branch] <branchname-shorthand>
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
Checks if a given 'refname' is acceptable, and exits non-zero if
|
||||
it is not.
|
||||
Checks if a given 'refname' is acceptable, and exits with a non-zero
|
||||
status if it is not.
|
||||
|
||||
A reference is used in git to specify branches and tags. A
|
||||
branch head is stored under `$GIT_DIR/refs/heads` directory, and
|
||||
a tag is stored under `$GIT_DIR/refs/tags` directory. git
|
||||
imposes the following rules on how refs are named:
|
||||
branch head is stored under the `$GIT_DIR/refs/heads` directory, and
|
||||
a tag is stored under the `$GIT_DIR/refs/tags` directory. git
|
||||
imposes the following rules on how references are named:
|
||||
|
||||
. It can include slash `/` for hierarchical (directory)
|
||||
. They can include slash `/` for hierarchical (directory)
|
||||
grouping, but no slash-separated component can begin with a
|
||||
dot `.`;
|
||||
dot `.`.
|
||||
|
||||
. It cannot have two consecutive dots `..` anywhere;
|
||||
. They cannot have two consecutive dots `..` anywhere.
|
||||
|
||||
. It cannot have ASCII control character (i.e. bytes whose
|
||||
. They cannot have ASCII control characters (i.e. bytes whose
|
||||
values are lower than \040, or \177 `DEL`), space, tilde `~`,
|
||||
caret `{caret}`, colon `:`, question-mark `?`, asterisk `*`,
|
||||
or open bracket `[` anywhere;
|
||||
or open bracket `[` anywhere.
|
||||
|
||||
. It cannot end with a slash `/`.
|
||||
. They cannot end with a slash `/` nor a dot `.`.
|
||||
|
||||
These rules makes it easy for shell script based tools to parse
|
||||
refnames, pathname expansion by the shell when a refname is used
|
||||
. They cannot end with the sequence `.lock`.
|
||||
|
||||
. They cannot contain a sequence `@{`.
|
||||
|
||||
These rules make it easy for shell script based tools to parse
|
||||
reference names, pathname expansion by the shell when a reference name is used
|
||||
unquoted (by mistake), and also avoids ambiguities in certain
|
||||
refname expressions (see linkgit:git-rev-parse[1]). Namely:
|
||||
reference name expressions (see linkgit:git-rev-parse[1]):
|
||||
|
||||
. double-dot `..` are often used as in `ref1..ref2`, and in some
|
||||
context this notation means `{caret}ref1 ref2` (i.e. not in
|
||||
ref1 and in ref2).
|
||||
. A double-dot `..` is often used as in `ref1..ref2`, and in some
|
||||
contexts this notation means `{caret}ref1 ref2` (i.e. not in
|
||||
`ref1` and in `ref2`).
|
||||
|
||||
. tilde `~` and caret `{caret}` are used to introduce postfix
|
||||
. A tilde `~` and caret `{caret}` are used to introduce the postfix
|
||||
'nth parent' and 'peel onion' operation.
|
||||
|
||||
. colon `:` is used as in `srcref:dstref` to mean "use srcref\'s
|
||||
. A colon `:` is used as in `srcref:dstref` to mean "use srcref\'s
|
||||
value and store it in dstref" in fetch and push operations.
|
||||
It may also be used to select a specific object such as with
|
||||
'git-cat-file': "git cat-file blob v1.3.3:refs.c".
|
||||
|
||||
. at-open-brace `@{` is used as a notation to access a reflog entry.
|
||||
|
||||
With the `--branch` option, it expands a branch name shorthand and
|
||||
prints the name of the branch the shorthand refers to.
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
|
||||
git check-ref-format --branch @{-1}::
|
||||
|
||||
Print the name of the previous branch.
|
||||
|
||||
|
||||
GIT
|
||||
---
|
||||
|
@ -8,29 +8,39 @@ git-checkout - Checkout a branch or paths to the working tree
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git checkout' [-q] [-f] [[--track | --no-track] -b <new_branch> [-l]] [-m] [<branch>]
|
||||
'git checkout' [<tree-ish>] [--] <paths>...
|
||||
'git checkout' [-q] [-f] [-m] [<branch>]
|
||||
'git checkout' [-q] [-f] [-m] [-b <new_branch>] [<start_point>]
|
||||
'git checkout' [-f|--ours|--theirs|-m|--conflict=<style>] [<tree-ish>] [--] <paths>...
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
|
||||
When <paths> are not given, this command switches branches by
|
||||
updating the index and working tree to reflect the specified
|
||||
branch, <branch>, and updating HEAD to be <branch> or, if
|
||||
specified, <new_branch>. Using -b will cause <new_branch> to
|
||||
be created; in this case you can use the --track or --no-track
|
||||
options, which will be passed to `git branch`.
|
||||
updating the index, working tree, and HEAD to reflect the specified
|
||||
branch.
|
||||
|
||||
If `-b` is given, a new branch is created and checked out, as if
|
||||
linkgit:git-branch[1] were called; in this case you can
|
||||
use the --track or --no-track options, which will be passed to `git
|
||||
branch`. As a convenience, --track without `-b` implies branch
|
||||
creation; see the description of --track below.
|
||||
|
||||
When <paths> are given, this command does *not* switch
|
||||
branches. It updates the named paths in the working tree from
|
||||
the index file (i.e. it runs `git checkout-index -f -u`), or
|
||||
from a named commit. In
|
||||
this case, the `-f` and `-b` options are meaningless and giving
|
||||
either of them results in an error. <tree-ish> argument can be
|
||||
the index file, or from a named <tree-ish> (most often a commit). In
|
||||
this case, the `-b` and `--track` options are meaningless and giving
|
||||
either of them results in an error. The <tree-ish> argument can be
|
||||
used to specify a specific tree-ish (i.e. commit, tag or tree)
|
||||
to update the index for the given paths before updating the
|
||||
working tree.
|
||||
|
||||
The index may contain unmerged entries after a failed merge. By
|
||||
default, if you try to check out such an entry from the index, the
|
||||
checkout operation will fail and nothing will be checked out.
|
||||
Using -f will ignore these unmerged entries. The contents from a
|
||||
specific side of the merge can be checked out of the index by
|
||||
using --ours or --theirs. With -m, changes made to the working tree
|
||||
file can be discarded to recreate the original conflicted merge result.
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
@ -38,38 +48,49 @@ OPTIONS
|
||||
Quiet, suppress feedback messages.
|
||||
|
||||
-f::
|
||||
Proceed even if the index or the working tree differs
|
||||
from HEAD. This is used to throw away local changes.
|
||||
When switching branches, proceed even if the index or the
|
||||
working tree differs from HEAD. This is used to throw away
|
||||
local changes.
|
||||
+
|
||||
When checking out paths from the index, do not fail upon unmerged
|
||||
entries; instead, unmerged entries are ignored.
|
||||
|
||||
--ours::
|
||||
--theirs::
|
||||
When checking out paths from the index, check out stage #2
|
||||
('ours') or #3 ('theirs') for unmerged paths.
|
||||
|
||||
-b::
|
||||
Create a new branch named <new_branch> and start it at
|
||||
<branch>. The new branch name must pass all checks defined
|
||||
by linkgit:git-check-ref-format[1]. Some of these checks
|
||||
may restrict the characters allowed in a branch name.
|
||||
<start_point>; see linkgit:git-branch[1] for details.
|
||||
|
||||
-t::
|
||||
--track::
|
||||
When creating a new branch, set up configuration so that 'git-pull'
|
||||
will automatically retrieve data from the start point, which must be
|
||||
a branch. Use this if you always pull from the same upstream branch
|
||||
into the new branch, and if you don't want to use "git pull
|
||||
<repository> <refspec>" explicitly. This behavior is the default
|
||||
when the start point is a remote branch. Set the
|
||||
branch.autosetupmerge configuration variable to `false` if you want
|
||||
'git-checkout' and 'git-branch' to always behave as if '--no-track' were
|
||||
given. Set it to `always` if you want this behavior when the
|
||||
start-point is either a local or remote branch.
|
||||
When creating a new branch, set up "upstream" configuration. See
|
||||
"--track" in linkgit:git-branch[1] for details.
|
||||
+
|
||||
If no '-b' option is given, the name of the new branch will be
|
||||
derived from the remote branch. If "remotes/" or "refs/remotes/"
|
||||
is prefixed it is stripped away, and then the part up to the
|
||||
next slash (which would be the nickname of the remote) is removed.
|
||||
This would tell us to use "hack" as the local branch when branching
|
||||
off of "origin/hack" (or "remotes/origin/hack", or even
|
||||
"refs/remotes/origin/hack"). If the given name has no slash, or the above
|
||||
guessing results in an empty name, the guessing is aborted. You can
|
||||
explicitly give a name with '-b' in such a case.
|
||||
|
||||
--no-track::
|
||||
Ignore the branch.autosetupmerge configuration variable.
|
||||
Do not set up "upstream" configuration, even if the
|
||||
branch.autosetupmerge configuration variable is true.
|
||||
|
||||
-l::
|
||||
Create the new branch's reflog. This activates recording of
|
||||
all changes made to the branch ref, enabling use of date
|
||||
based sha1 expressions such as "<branchname>@\{yesterday}".
|
||||
Create the new branch's reflog; see linkgit:git-branch[1] for
|
||||
details.
|
||||
|
||||
-m::
|
||||
If you have local modifications to one or more files that
|
||||
--merge::
|
||||
When switching branches,
|
||||
if you have local modifications to one or more files that
|
||||
are different between the current branch and the branch to
|
||||
which you are switching, the command refuses to switch
|
||||
branches in order to preserve your modifications in context.
|
||||
@ -81,16 +102,39 @@ When a merge conflict happens, the index entries for conflicting
|
||||
paths are left unmerged, and you need to resolve the conflicts
|
||||
and mark the resolved paths with `git add` (or `git rm` if the merge
|
||||
should result in deletion of the path).
|
||||
+
|
||||
When checking out paths from the index, this option lets you recreate
|
||||
the conflicted merge in the specified paths.
|
||||
|
||||
--conflict=<style>::
|
||||
The same as --merge option above, but changes the way the
|
||||
conflicting hunks are presented, overriding the
|
||||
merge.conflictstyle configuration variable. Possible values are
|
||||
"merge" (default) and "diff3" (in addition to what is shown by
|
||||
"merge" style, shows the original contents).
|
||||
|
||||
<branch>::
|
||||
Branch to checkout; if it refers to a branch (i.e., a name that,
|
||||
when prepended with "refs/heads/", is a valid ref), then that
|
||||
branch is checked out. Otherwise, if it refers to a valid
|
||||
commit, your HEAD becomes "detached" and you are no longer on
|
||||
any branch (see below for details).
|
||||
+
|
||||
As a special case, the `"@\{-N\}"` syntax for the N-th last branch
|
||||
checks out the branch (instead of detaching). You may also specify
|
||||
`-` which is synonymous with `"@\{-1\}"`.
|
||||
|
||||
<new_branch>::
|
||||
Name for the new branch.
|
||||
|
||||
<branch>::
|
||||
Branch to checkout; may be any object ID that resolves to a
|
||||
commit. Defaults to HEAD.
|
||||
+
|
||||
When this parameter names a non-branch (but still a valid commit object),
|
||||
your HEAD becomes 'detached'.
|
||||
<start_point>::
|
||||
The name of a commit at which to start the new branch; see
|
||||
linkgit:git-branch[1] for details. Defaults to HEAD.
|
||||
|
||||
<tree-ish>::
|
||||
Tree to checkout from (when paths are given). If not specified,
|
||||
the index will be used.
|
||||
|
||||
|
||||
|
||||
Detached HEAD
|
||||
@ -106,12 +150,12 @@ $ git checkout v2.6.18
|
||||
------------
|
||||
|
||||
Earlier versions of git did not allow this and asked you to
|
||||
create a temporary branch using `-b` option, but starting from
|
||||
create a temporary branch using the `-b` option, but starting from
|
||||
version 1.5.0, the above command 'detaches' your HEAD from the
|
||||
current branch and directly point at the commit named by the tag
|
||||
(`v2.6.18` in the above example).
|
||||
current branch and directly points at the commit named by the tag
|
||||
(`v2.6.18` in the example above).
|
||||
|
||||
You can use usual git commands while in this state. You can use
|
||||
You can use all git commands while in this state. You can use
|
||||
`git reset --hard $othercommit` to further move around, for
|
||||
example. You can make changes and create a new commit on top of
|
||||
a detached HEAD. You can even create a merge by using `git
|
||||
@ -145,8 +189,8 @@ $ git checkout hello.c <3>
|
||||
------------
|
||||
+
|
||||
<1> switch branch
|
||||
<2> take out a file out of other commit
|
||||
<3> restore hello.c from HEAD of current branch
|
||||
<2> take a file out of another commit
|
||||
<3> restore hello.c from the index
|
||||
+
|
||||
If you have an unfortunate branch that is named `hello.c`, this
|
||||
step would be confused as an instruction to switch to that branch.
|
||||
@ -156,7 +200,7 @@ You should instead write:
|
||||
$ git checkout -- hello.c
|
||||
------------
|
||||
|
||||
. After working in a wrong branch, switching to the correct
|
||||
. After working in the wrong branch, switching to the correct
|
||||
branch would be done using:
|
||||
+
|
||||
------------
|
||||
@ -164,7 +208,7 @@ $ git checkout mytopic
|
||||
------------
|
||||
+
|
||||
However, your "wrong" branch and correct "mytopic" branch may
|
||||
differ in files that you have locally modified, in which case,
|
||||
differ in files that you have modified locally, in which case
|
||||
the above checkout would fail like this:
|
||||
+
|
||||
------------
|
||||
@ -190,7 +234,6 @@ the `-m` option, you would see something like this:
|
||||
------------
|
||||
$ git checkout -m mytopic
|
||||
Auto-merging frotz
|
||||
merge: warning: conflicts during merge
|
||||
ERROR: Merge conflict in frotz
|
||||
fatal: merge program failed
|
||||
------------
|
||||
|
@ -7,7 +7,7 @@ git-cherry - Find commits not merged upstream
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
'git cherry' [-v] <upstream> [<head>] [<limit>]
|
||||
'git cherry' [-v] [<upstream> [<head> [<limit>]]]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -51,6 +51,7 @@ OPTIONS
|
||||
|
||||
<upstream>::
|
||||
Upstream branch to compare against.
|
||||
Defaults to the first tracked remote branch, if available.
|
||||
|
||||
<head>::
|
||||
Working branch; defaults to HEAD.
|
||||
|
@ -12,14 +12,17 @@ SYNOPSIS
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
Removes files unknown to git. This allows to clean the working tree
|
||||
from files that are not under version control. If the '-x' option is
|
||||
specified, ignored files are also removed, allowing to remove all
|
||||
build products.
|
||||
|
||||
This allows cleaning the working tree by removing files that are not
|
||||
under version control.
|
||||
|
||||
Normally, only files unknown to git are removed, but if the '-x'
|
||||
option is specified, ignored files are also removed. This can, for
|
||||
example, be useful to remove all build products.
|
||||
|
||||
If any optional `<path>...` arguments are given, only those paths
|
||||
are affected.
|
||||
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
-d::
|
||||
|
@ -90,6 +90,11 @@ then the cloned repository will become corrupt.
|
||||
Operate quietly. This flag is also passed to the `rsync'
|
||||
command when given.
|
||||
|
||||
--verbose::
|
||||
-v::
|
||||
Display the progressbar, even in case the standard output is not
|
||||
a terminal.
|
||||
|
||||
--no-checkout::
|
||||
-n::
|
||||
No checkout of HEAD is performed after the clone is complete.
|
||||
@ -112,7 +117,7 @@ then the cloned repository will become corrupt.
|
||||
--origin <name>::
|
||||
-o <name>::
|
||||
Instead of using the remote name 'origin' to keep track
|
||||
of the upstream repository, use <name> instead.
|
||||
of the upstream repository, use <name>.
|
||||
|
||||
--upload-pack <upload-pack>::
|
||||
-u <upload-pack>::
|
||||
|
@ -29,7 +29,8 @@ The content to be added can be specified in several ways:
|
||||
|
||||
3. by listing files as arguments to the 'commit' command, in which
|
||||
case the commit will ignore changes staged in the index, and instead
|
||||
record the current content of the listed files;
|
||||
record the current content of the listed files (which must already
|
||||
be known to git);
|
||||
|
||||
4. by using the -a switch with the 'commit' command to automatically
|
||||
"add" changes from all known files (i.e. all files that are already
|
||||
@ -75,8 +76,10 @@ OPTIONS
|
||||
read the message from the standard input.
|
||||
|
||||
--author=<author>::
|
||||
Override the author name used in the commit. Use
|
||||
`A U Thor <author@example.com>` format.
|
||||
Override the author name used in the commit. You can use the
|
||||
standard `A U Thor <author@example.com>` format. Otherwise,
|
||||
an existing commit that matches the given string and its author
|
||||
name is used.
|
||||
|
||||
-m <msg>::
|
||||
--message=<msg>::
|
||||
@ -143,6 +146,10 @@ It is a rough equivalent for:
|
||||
------
|
||||
but can be used to amend a merge commit.
|
||||
--
|
||||
+
|
||||
You should understand the implications of rewriting history if you
|
||||
amend a commit that has already been published. (See the "RECOVERING
|
||||
FROM UPSTREAM REBASE" section in linkgit:git-rebase[1].)
|
||||
|
||||
-i::
|
||||
--include::
|
||||
|
@ -11,7 +11,7 @@ SYNOPSIS
|
||||
[verse]
|
||||
'git config' [<file-option>] [type] [-z|--null] name [value [value_regex]]
|
||||
'git config' [<file-option>] [type] --add name value
|
||||
'git config' [<file-option>] [type] --replace-all name [value [value_regex]]
|
||||
'git config' [<file-option>] [type] --replace-all name value [value_regex]
|
||||
'git config' [<file-option>] [type] [-z|--null] --get name [value_regex]
|
||||
'git config' [<file-option>] [type] [-z|--null] --get-all name [value_regex]
|
||||
'git config' [<file-option>] [type] [-z|--null] --get-regexp name_regex [value_regex]
|
||||
@ -22,6 +22,7 @@ SYNOPSIS
|
||||
'git config' [<file-option>] [-z|--null] -l | --list
|
||||
'git config' [<file-option>] --get-color name [default]
|
||||
'git config' [<file-option>] --get-colorbool name [stdout-is-tty]
|
||||
'git config' [<file-option>] -e | --edit
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -130,6 +131,10 @@ See also <<FILES>>.
|
||||
in the config file will cause the value to be multiplied
|
||||
by 1024, 1048576, or 1073741824 prior to output.
|
||||
|
||||
--bool-or-int::
|
||||
'git-config' will ensure that the output matches the format of
|
||||
either --bool or --int, as described above.
|
||||
|
||||
-z::
|
||||
--null::
|
||||
For all options that output values and/or keys, always
|
||||
@ -157,6 +162,11 @@ See also <<FILES>>.
|
||||
output. The optional `default` parameter is used instead, if
|
||||
there is no color configured for `name`.
|
||||
|
||||
-e::
|
||||
--edit::
|
||||
Opens an editor to modify the specified config file; either
|
||||
'--system', '--global', or repository (default).
|
||||
|
||||
[[FILES]]
|
||||
FILES
|
||||
-----
|
||||
|
@ -21,8 +21,9 @@ OPTIONS
|
||||
--verbose::
|
||||
In addition to the number of loose objects and disk
|
||||
space consumed, it reports the number of in-pack
|
||||
objects, number of packs, and number of objects that can be
|
||||
removed by running `git prune-packed`.
|
||||
objects, number of packs, disk space consumed by those packs,
|
||||
and number of objects that can be removed by running
|
||||
`git prune-packed`.
|
||||
|
||||
|
||||
Author
|
||||
|
@ -24,6 +24,9 @@ repository, or incrementally import into an existing one.
|
||||
Splitting the CVS log into patch sets is done by 'cvsps'.
|
||||
At least version 2.1 is required.
|
||||
|
||||
*WARNING:* for certain situations the import leads to incorrect results.
|
||||
Please see the section <<issues,ISSUES>> for further reference.
|
||||
|
||||
You should *never* do any work of your own on the branches that are
|
||||
created by 'git-cvsimport'. By default initial import will create and populate a
|
||||
"master" branch from the CVS repository's main branch which you're free
|
||||
@ -62,7 +65,7 @@ OPTIONS
|
||||
-r <remote>::
|
||||
The git remote to import this CVS repository into.
|
||||
Moves all CVS branches into remotes/<remote>/<branch>
|
||||
akin to the 'git-clone' "--use-separate-remote" option.
|
||||
akin to the way 'git-clone' uses 'origin' by default.
|
||||
|
||||
-o <branch-for-HEAD>::
|
||||
When no remote is specified (via -r) the 'HEAD' branch
|
||||
@ -164,6 +167,39 @@ If '-v' is specified, the script reports what it is doing.
|
||||
Otherwise, success is indicated the Unix way, i.e. by simply exiting with
|
||||
a zero exit status.
|
||||
|
||||
[[issues]]
|
||||
ISSUES
|
||||
------
|
||||
Problems related to timestamps:
|
||||
|
||||
* If timestamps of commits in the cvs repository are not stable enough
|
||||
to be used for ordering commits changes may show up in the wrong
|
||||
order.
|
||||
* If any files were ever "cvs import"ed more than once (e.g., import of
|
||||
more than one vendor release) the HEAD contains the wrong content.
|
||||
* If the timestamp order of different files cross the revision order
|
||||
within the commit matching time window the order of commits may be
|
||||
wrong.
|
||||
|
||||
Problems related to branches:
|
||||
|
||||
* Branches on which no commits have been made are not imported.
|
||||
* All files from the branching point are added to a branch even if
|
||||
never added in cvs.
|
||||
* This applies to files added to the source branch *after* a daughter
|
||||
branch was created: if previously no commit was made on the daughter
|
||||
branch they will erroneously be added to the daughter branch in git.
|
||||
|
||||
Problems related to tags:
|
||||
|
||||
* Multiple tags on the same revision are not imported.
|
||||
|
||||
If you suspect that any of these issues may apply to the repository you
|
||||
want to import consider using these alternative tools which proved to be
|
||||
more stable in practice:
|
||||
|
||||
* cvs2git (part of cvs2svn), `http://cvs2svn.tigris.org`
|
||||
* parsecvs, `http://cgit.freedesktop.org/~keithp/parsecvs`
|
||||
|
||||
Author
|
||||
------
|
||||
|
@ -9,8 +9,9 @@ SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git daemon' [--verbose] [--syslog] [--export-all]
|
||||
[--timeout=n] [--init-timeout=n] [--strict-paths]
|
||||
[--base-path=path] [--user-path | --user-path=path]
|
||||
[--timeout=n] [--init-timeout=n] [--max-connections=n]
|
||||
[--strict-paths] [--base-path=path] [--base-path-relaxed]
|
||||
[--user-path | --user-path=path]
|
||||
[--interpolated-path=pathtemplate]
|
||||
[--reuseaddr] [--detach] [--pid-file=file]
|
||||
[--enable=service] [--disable=service]
|
||||
@ -47,7 +48,7 @@ OPTIONS
|
||||
'git-daemon' will refuse to start when this option is enabled and no
|
||||
whitelist is specified.
|
||||
|
||||
--base-path::
|
||||
--base-path=path::
|
||||
Remap all the path requests as relative to the given path.
|
||||
This is sort of "GIT root" - if you run 'git-daemon' with
|
||||
'--base-path=/srv/git' on example.com, then if you later try to pull
|
||||
@ -80,8 +81,8 @@ OPTIONS
|
||||
Incompatible with --port, --listen, --user and --group options.
|
||||
|
||||
--listen=host_or_ipaddr::
|
||||
Listen on an a specific IP address or hostname. IP addresses can
|
||||
be either an IPv4 address or an IPV6 address if supported. If IPv6
|
||||
Listen on a specific IP address or hostname. IP addresses can
|
||||
be either an IPv4 address or an IPv6 address if supported. If IPv6
|
||||
is not supported, then --listen=hostname is also not supported and
|
||||
--listen must be given an IPv4 address.
|
||||
Incompatible with '--inetd' option.
|
||||
@ -89,15 +90,19 @@ OPTIONS
|
||||
--port=n::
|
||||
Listen on an alternative port. Incompatible with '--inetd' option.
|
||||
|
||||
--init-timeout::
|
||||
--init-timeout=n::
|
||||
Timeout between the moment the connection is established and the
|
||||
client request is received (typically a rather low value, since
|
||||
that should be basically immediate).
|
||||
|
||||
--timeout::
|
||||
--timeout=n::
|
||||
Timeout for specific client sub-requests. This includes the time
|
||||
it takes for the server to process the sub-request and time spent
|
||||
waiting for next client's request.
|
||||
it takes for the server to process the sub-request and the time spent
|
||||
waiting for the next client's request.
|
||||
|
||||
--max-connections=n::
|
||||
Maximum number of concurrent clients, defaults to 32. Set it to
|
||||
zero for no limit.
|
||||
|
||||
--syslog::
|
||||
Log to syslog instead of stderr. Note that this option does not imply
|
||||
@ -105,9 +110,9 @@ OPTIONS
|
||||
|
||||
--user-path::
|
||||
--user-path=path::
|
||||
Allow ~user notation to be used in requests. When
|
||||
Allow {tilde}user notation to be used in requests. When
|
||||
specified with no parameter, requests to
|
||||
git://host/~alice/foo is taken as a request to access
|
||||
git://host/{tilde}alice/foo is taken as a request to access
|
||||
'foo' repository in the home directory of user `alice`.
|
||||
If `--user-path=path` is specified, the same request is
|
||||
taken as a request to access `path/foo` repository in
|
||||
@ -145,7 +150,7 @@ the facility of inet daemon to achieve the same before spawning
|
||||
Enable/disable the service site-wide per default. Note
|
||||
that a service disabled site-wide can still be enabled
|
||||
per repository if it is marked overridable and the
|
||||
repository enables the service with an configuration
|
||||
repository enables the service with a configuration
|
||||
item.
|
||||
|
||||
--allow-override=service::
|
||||
@ -265,6 +270,15 @@ selectively enable/disable services per repository::
|
||||
----------------------------------------------------------------
|
||||
|
||||
|
||||
ENVIRONMENT
|
||||
-----------
|
||||
'git-daemon' will set REMOTE_ADDR to the IP address of the client
|
||||
that connected to it, if the IP address is available. REMOTE_ADDR will
|
||||
be available in the environment of hooks called when
|
||||
services are performed.
|
||||
|
||||
|
||||
|
||||
Author
|
||||
------
|
||||
Written by Linus Torvalds <torvalds@osdl.org>, YOSHIFUJI Hideaki
|
||||
|
@ -18,6 +18,9 @@ shown. Otherwise, it suffixes the tag name with the number of
|
||||
additional commits on top of the tagged object and the
|
||||
abbreviated object name of the most recent commit.
|
||||
|
||||
By default (without --all or --tags) `git describe` only shows
|
||||
annotated tags. For more information about creating annotated tags
|
||||
see the -a and -s options to linkgit:git-tag[1].
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
@ -26,11 +29,13 @@ OPTIONS
|
||||
|
||||
--all::
|
||||
Instead of using only the annotated tags, use any ref
|
||||
found in `.git/refs/`.
|
||||
found in `.git/refs/`. This option enables matching
|
||||
any known branch, remote branch, or lightweight tag.
|
||||
|
||||
--tags::
|
||||
Instead of using only the annotated tags, use any tag
|
||||
found in `.git/refs/tags`.
|
||||
found in `.git/refs/tags`. This option enables matching
|
||||
a lightweight (non-annotated) tag.
|
||||
|
||||
--contains::
|
||||
Instead of finding the tag that predates the commit, find
|
||||
@ -38,7 +43,7 @@ OPTIONS
|
||||
Automatically implies --tags.
|
||||
|
||||
--abbrev=<n>::
|
||||
Instead of using the default 8 hexadecimal digits as the
|
||||
Instead of using the default 7 hexadecimal digits as the
|
||||
abbreviated object name, use <n> digits.
|
||||
|
||||
--candidates=<n>::
|
||||
@ -82,7 +87,7 @@ With something like git.git current tree, I get:
|
||||
v1.0.4-14-g2414721
|
||||
|
||||
i.e. the current head of my "parent" branch is based on v1.0.4,
|
||||
but since it has a handful commits on top of that,
|
||||
but since it has a few commits on top of that,
|
||||
describe has added the number of additional commits ("14") and
|
||||
an abbreviated object name for the commit itself ("2414721")
|
||||
at the end.
|
||||
|
@ -21,7 +21,10 @@ OPTIONS
|
||||
-------
|
||||
include::diff-options.txt[]
|
||||
|
||||
-1 -2 -3 or --base --ours --theirs, and -0::
|
||||
-1 --base::
|
||||
-2 --ours::
|
||||
-3 --theirs::
|
||||
-0::
|
||||
Diff against the "base" version, "our branch" or "their
|
||||
branch" respectively. With these options, diffs for
|
||||
merged entries are not shown.
|
||||
|
@ -49,13 +49,22 @@ include::diff-options.txt[]
|
||||
--stdin::
|
||||
When '--stdin' is specified, the command does not take
|
||||
<tree-ish> arguments from the command line. Instead, it
|
||||
reads either one <commit> or a list of <commit>
|
||||
separated with a single space from its standard input.
|
||||
reads lines containing either two <tree>, one <commit>, or a
|
||||
list of <commit> from its standard input. (Use a single space
|
||||
as separator.)
|
||||
+
|
||||
When a single commit is given on one line of such input, it compares
|
||||
the commit with its parents. The following flags further affects its
|
||||
behavior. The remaining commits, when given, are used as if they are
|
||||
When two trees are given, it compares the first tree with the second.
|
||||
When a single commit is given, it compares the commit with its
|
||||
parents. The remaining commits, when given, are used as if they are
|
||||
parents of the first commit.
|
||||
+
|
||||
When comparing two trees, the ID of both trees (separated by a space
|
||||
and terminated by a newline) is printed before the difference. When
|
||||
comparing commits, the ID of the first (or only) commit, followed by a
|
||||
newline, is printed.
|
||||
+
|
||||
The following flags further affect the behavior when comparing
|
||||
commits (but not trees).
|
||||
|
||||
-m::
|
||||
By default, 'git-diff-tree --stdin' does not show
|
||||
|
@ -33,6 +33,7 @@ forced by --no-index.
|
||||
commit relative to the named <commit>. Typically you
|
||||
would want comparison with the latest commit, so if you
|
||||
do not give <commit>, it defaults to HEAD.
|
||||
--staged is a synonym of --cached.
|
||||
|
||||
'git diff' [--options] <commit> [--] [<path>...]::
|
||||
|
||||
|
105
Documentation/git-difftool.txt
Normal file
105
Documentation/git-difftool.txt
Normal file
@ -0,0 +1,105 @@
|
||||
git-difftool(1)
|
||||
===============
|
||||
|
||||
NAME
|
||||
----
|
||||
git-difftool - Show changes using common diff tools
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
'git difftool' [--tool=<tool>] [-y|--no-prompt|--prompt] [<'git diff' options>]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
'git-difftool' is a git command that allows you to compare and edit files
|
||||
between revisions using common diff tools. 'git difftool' is a frontend
|
||||
to 'git-diff' and accepts the same options and arguments.
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
-y::
|
||||
--no-prompt::
|
||||
Do not prompt before launching a diff tool.
|
||||
|
||||
--prompt::
|
||||
Prompt before each invocation of the diff tool.
|
||||
This is the default behaviour; the option is provided to
|
||||
override any configuration settings.
|
||||
|
||||
-t <tool>::
|
||||
--tool=<tool>::
|
||||
Use the diff tool specified by <tool>.
|
||||
Valid merge tools are:
|
||||
kdiff3, kompare, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff,
|
||||
ecmerge, diffuse and opendiff
|
||||
+
|
||||
If a diff tool is not specified, 'git-difftool'
|
||||
will use the configuration variable `diff.tool`. If the
|
||||
configuration variable `diff.tool` is not set, 'git-difftool'
|
||||
will pick a suitable default.
|
||||
+
|
||||
You can explicitly provide a full path to the tool by setting the
|
||||
configuration variable `difftool.<tool>.path`. For example, you
|
||||
can configure the absolute path to kdiff3 by setting
|
||||
`difftool.kdiff3.path`. Otherwise, 'git-difftool' assumes the
|
||||
tool is available in PATH.
|
||||
+
|
||||
Instead of running one of the known diff tools,
|
||||
'git-difftool' can be customized to run an alternative program
|
||||
by specifying the command line to invoke in a configuration
|
||||
variable `difftool.<tool>.cmd`.
|
||||
+
|
||||
When 'git-difftool' is invoked with this tool (either through the
|
||||
`-t` or `--tool` option or the `diff.tool` configuration variable)
|
||||
the configured command line will be invoked with the following
|
||||
variables available: `$LOCAL` is set to the name of the temporary
|
||||
file containing the contents of the diff pre-image and `$REMOTE`
|
||||
is set to the name of the temporary file containing the contents
|
||||
of the diff post-image. `$BASE` is provided for compatibility
|
||||
with custom merge tool commands and has the same value as `$LOCAL`.
|
||||
|
||||
See linkgit:git-diff[1] for the full list of supported options.
|
||||
|
||||
CONFIG VARIABLES
|
||||
----------------
|
||||
'git-difftool' falls back to 'git-mergetool' config variables when the
|
||||
difftool equivalents have not been defined.
|
||||
|
||||
diff.tool::
|
||||
The default diff tool to use.
|
||||
|
||||
difftool.<tool>.path::
|
||||
Override the path for the given tool. This is useful in case
|
||||
your tool is not in the PATH.
|
||||
|
||||
difftool.<tool>.cmd::
|
||||
Specify the command to invoke the specified diff tool.
|
||||
+
|
||||
See the `--tool=<tool>` option above for more details.
|
||||
|
||||
difftool.prompt::
|
||||
Prompt before each invocation of the diff tool.
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkgit:git-diff[1]::
|
||||
Show changes between commits, commit and working tree, etc
|
||||
|
||||
linkgit:git-mergetool[1]::
|
||||
Run merge conflict resolution tools to resolve merge conflicts
|
||||
|
||||
linkgit:git-config[1]::
|
||||
Get and set repository or global options
|
||||
|
||||
|
||||
AUTHOR
|
||||
------
|
||||
Written by David Aguilar <davvid@gmail.com>.
|
||||
|
||||
Documentation
|
||||
--------------
|
||||
Documentation by David Aguilar and the git-list <git@vger.kernel.org>.
|
||||
|
||||
GIT
|
||||
---
|
||||
Part of the linkgit:git[1] suite
|
@ -15,7 +15,7 @@ DESCRIPTION
|
||||
This program dumps the given revisions in a form suitable to be piped
|
||||
into 'git-fast-import'.
|
||||
|
||||
You can use it as a human readable bundle replacement (see
|
||||
You can use it as a human-readable bundle replacement (see
|
||||
linkgit:git-bundle[1]), or as a kind of an interactive
|
||||
'git-filter-branch'.
|
||||
|
||||
|
@ -31,12 +31,17 @@ changes, which would normally have no effect. Nevertheless, this may be
|
||||
useful in the future for compensating for some git bugs or such,
|
||||
therefore such a usage is permitted.
|
||||
|
||||
*NOTE*: This command honors `.git/info/grafts`. If you have any grafts
|
||||
defined, running this command will make them permanent.
|
||||
|
||||
*WARNING*! The rewritten history will have different object names for all
|
||||
the objects and will not converge with the original branch. You will not
|
||||
be able to easily push and distribute the rewritten branch on top of the
|
||||
original branch. Please do not use this command if you do not know the
|
||||
full implications, and avoid using it anyway, if a simple single commit
|
||||
would suffice to fix your problem.
|
||||
would suffice to fix your problem. (See the "RECOVERING FROM UPSTREAM
|
||||
REBASE" section in linkgit:git-rebase[1] for further information about
|
||||
rewriting published history.)
|
||||
|
||||
Always verify that the rewritten version is correct: The original refs,
|
||||
if different from the rewritten ones, will be stored in the namespace
|
||||
@ -89,7 +94,9 @@ OPTIONS
|
||||
--index-filter <command>::
|
||||
This is the filter for rewriting the index. It is similar to the
|
||||
tree filter but does not check out the tree, which makes it much
|
||||
faster. For hairy cases, see linkgit:git-update-index[1].
|
||||
faster. Frequently used with `git rm \--cached
|
||||
\--ignore-unmatch ...`, see EXAMPLES below. For hairy
|
||||
cases, see linkgit:git-update-index[1].
|
||||
|
||||
--parent-filter <command>::
|
||||
This is the filter for rewriting the commit's parent list.
|
||||
@ -120,6 +127,10 @@ You can use the 'map' convenience function in this filter, and other
|
||||
convenience functions, too. For example, calling 'skip_commit "$@"'
|
||||
will leave out the current commit (but not its changes! If you want
|
||||
that, use 'git-rebase' instead).
|
||||
+
|
||||
You can also use the 'git_commit_non_empty_tree "$@"' instead of
|
||||
'git commit-tree "$@"' if you don't wish to keep commits with a single parent
|
||||
and that makes no change to the tree.
|
||||
|
||||
--tag-name-filter <command>::
|
||||
This is the filter for rewriting tag names. When passed,
|
||||
@ -149,6 +160,16 @@ to other tags will be rewritten to point to the underlying commit.
|
||||
The result will contain that directory (and only that) as its
|
||||
project root.
|
||||
|
||||
--prune-empty::
|
||||
Some kind of filters will generate empty commits, that left the tree
|
||||
untouched. This switch allow git-filter-branch to ignore such
|
||||
commits. Though, this switch only applies for commits that have one
|
||||
and only one parent, it will hence keep merges points. Also, this
|
||||
option is not compatible with the use of '--commit-filter'. Though you
|
||||
just need to use the function 'git_commit_non_empty_tree "$@"' instead
|
||||
of the 'git commit-tree "$@"' idiom in your commit filter to make that
|
||||
happen.
|
||||
|
||||
--original <namespace>::
|
||||
Use this option to set the namespace where the original commits
|
||||
will be stored. The default value is 'refs/original'.
|
||||
@ -188,10 +209,14 @@ However, if the file is absent from the tree of some commit,
|
||||
a simple `rm filename` will fail for that tree and commit.
|
||||
Thus you may instead want to use `rm -f filename` as the script.
|
||||
|
||||
A significantly faster version:
|
||||
Using `\--index-filter` with 'git-rm' yields a significantly faster
|
||||
version. Like with using `rm filename`, `git rm --cached filename`
|
||||
will fail if the file is absent from the tree of a commit. If you
|
||||
want to "completely forget" a file, it does not matter when it entered
|
||||
history, so we also add `\--ignore-unmatch`:
|
||||
|
||||
--------------------------------------------------------------------------
|
||||
git filter-branch --index-filter 'git rm --cached filename' HEAD
|
||||
git filter-branch --index-filter 'git rm --cached --ignore-unmatch filename' HEAD
|
||||
--------------------------------------------------------------------------
|
||||
|
||||
Now, you will get the rewritten history saved in HEAD.
|
||||
@ -318,6 +343,47 @@ git filter-branch --index-filter \
|
||||
---------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Checklist for Shrinking a Repository
|
||||
------------------------------------
|
||||
|
||||
git-filter-branch is often used to get rid of a subset of files,
|
||||
usually with some combination of `\--index-filter` and
|
||||
`\--subdirectory-filter`. People expect the resulting repository to
|
||||
be smaller than the original, but you need a few more steps to
|
||||
actually make it smaller, because git tries hard not to lose your
|
||||
objects until you tell it to. First make sure that:
|
||||
|
||||
* You really removed all variants of a filename, if a blob was moved
|
||||
over its lifetime. `git log \--name-only \--follow \--all \--
|
||||
filename` can help you find renames.
|
||||
|
||||
* You really filtered all refs: use `\--tag-name-filter cat \--
|
||||
\--all` when calling git-filter-branch.
|
||||
|
||||
Then there are two ways to get a smaller repository. A safer way is
|
||||
to clone, that keeps your original intact.
|
||||
|
||||
* Clone it with `git clone +++file:///path/to/repo+++`. The clone
|
||||
will not have the removed objects. See linkgit:git-clone[1]. (Note
|
||||
that cloning with a plain path just hardlinks everything!)
|
||||
|
||||
If you really don't want to clone it, for whatever reasons, check the
|
||||
following points instead (in this order). This is a very destructive
|
||||
approach, so *make a backup* or go back to cloning it. You have been
|
||||
warned.
|
||||
|
||||
* Remove the original refs backed up by git-filter-branch: say `git
|
||||
for-each-ref \--format="%(refname)" refs/original/ | xargs -n 1 git
|
||||
update-ref -d`.
|
||||
|
||||
* Expire all reflogs with `git reflog expire \--expire=now \--all`.
|
||||
|
||||
* Garbage collect all unreferenced objects with `git gc \--prune=now`
|
||||
(or if your git-gc is not new enough to support arguments to
|
||||
`\--prune`, use `git repack -ad; git prune` instead).
|
||||
|
||||
|
||||
Author
|
||||
------
|
||||
Written by Petr "Pasky" Baudis <pasky@suse.cz>,
|
||||
|
@ -74,6 +74,9 @@ For all objects, the following names can be used:
|
||||
|
||||
refname::
|
||||
The name of the ref (the part after $GIT_DIR/).
|
||||
For a non-ambiguous short name of the ref append `:short`.
|
||||
The option core.warnAmbiguousRefs is used to select the strict
|
||||
abbreviation mode.
|
||||
|
||||
objecttype::
|
||||
The type of the object (`blob`, `tree`, `commit`, `tag`).
|
||||
@ -84,6 +87,11 @@ objectsize::
|
||||
objectname::
|
||||
The object name (aka SHA-1).
|
||||
|
||||
upstream::
|
||||
The name of a local ref which can be considered ``upstream''
|
||||
from the displayed ref. Respects `:short` in the same way as
|
||||
`refname` above.
|
||||
|
||||
In addition to the above, for commit and tag objects, the header
|
||||
field names (`tree`, `parent`, `object`, `type`, and `tag`) can
|
||||
be used to specify the value in the header field.
|
||||
|
@ -9,9 +9,10 @@ git-format-patch - Prepare patches for e-mail submission
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git format-patch' [-k] [-o <dir> | --stdout] [--thread]
|
||||
[--attach[=<boundary>] | --inline[=<boundary>]]
|
||||
[-s | --signoff] [<common diff options>]
|
||||
'git format-patch' [-k] [(-o|--output-directory) <dir> | --stdout]
|
||||
[--thread[=<style>]]
|
||||
[(--attach|--inline)[=<boundary>] | --no-attach]
|
||||
[-s | --signoff]
|
||||
[-n | --numbered | -N | --no-numbered]
|
||||
[--start-number <n>] [--numbered-files]
|
||||
[--in-reply-to=Message-Id] [--suffix=.<sfx>]
|
||||
@ -19,6 +20,7 @@ SYNOPSIS
|
||||
[--subject-prefix=Subject-Prefix]
|
||||
[--cc=<email>]
|
||||
[--cover-letter]
|
||||
[<common diff options>]
|
||||
[ <since> | <revision range> ]
|
||||
|
||||
DESCRIPTION
|
||||
@ -39,15 +41,11 @@ There are two ways to specify which commits to operate on.
|
||||
REVISIONS" section in linkgit:git-rev-parse[1]) means the
|
||||
commits in the specified range.
|
||||
|
||||
A single commit, when interpreted as a <revision range>
|
||||
expression, means "everything that leads to that commit", but
|
||||
if you write 'git format-patch <commit>', the previous rule
|
||||
applies to that command line and you do not get "everything
|
||||
since the beginning of the time". If you want to format
|
||||
everything since project inception to one commit, say "git
|
||||
format-patch \--root <commit>" to make it clear that it is the
|
||||
latter case. If you want to format a single commit, you can do
|
||||
this with "git format-patch -1 <commit>".
|
||||
The first rule takes precedence in the case of a single <commit>. To
|
||||
apply the second rule, i.e., format everything since the beginning of
|
||||
history up until <commit>, use the '\--root' option: "git format-patch
|
||||
\--root <commit>". If you want to format only <commit> itself, you
|
||||
can do this with "git format-patch -1 <commit>".
|
||||
|
||||
By default, each output file is numbered sequentially from 1, and uses the
|
||||
first line of the commit message (massaged for pathname safety) as
|
||||
@ -59,8 +57,10 @@ output, unless the --stdout option is specified.
|
||||
If -o is specified, output files are created in <dir>. Otherwise
|
||||
they are created in the current working directory.
|
||||
|
||||
If -n is specified, instead of "[PATCH] Subject", the first line
|
||||
is formatted as "[PATCH n/m] Subject".
|
||||
By default, the subject of a single patch is "[PATCH] First Line" and
|
||||
the subject when multiple patches are output is "[PATCH n/m] First
|
||||
Line". To force 1/1 to be added for a single patch, use -n. To omit
|
||||
patch numbers from the subject, use -N
|
||||
|
||||
If given --thread, 'git-format-patch' will generate In-Reply-To and
|
||||
References headers to make the second and subsequent patch mails appear
|
||||
@ -82,7 +82,7 @@ include::diff-options.txt[]
|
||||
|
||||
-n::
|
||||
--numbered::
|
||||
Name output in '[PATCH n/m]' format.
|
||||
Name output in '[PATCH n/m]' format, even with a single patch.
|
||||
|
||||
-N::
|
||||
--no-numbered::
|
||||
@ -94,7 +94,6 @@ include::diff-options.txt[]
|
||||
--numbered-files::
|
||||
Output file names will be a simple number sequence
|
||||
without the default first line of the commit appended.
|
||||
Mutually exclusive with the --stdout option.
|
||||
|
||||
-k::
|
||||
--keep-subject::
|
||||
@ -115,15 +114,27 @@ include::diff-options.txt[]
|
||||
which is the commit message and the patch itself in the
|
||||
second part, with "Content-Disposition: attachment".
|
||||
|
||||
--no-attach::
|
||||
Disable the creation of an attachment, overriding the
|
||||
configuration setting.
|
||||
|
||||
--inline[=<boundary>]::
|
||||
Create multipart/mixed attachment, the first part of
|
||||
which is the commit message and the patch itself in the
|
||||
second part, with "Content-Disposition: inline".
|
||||
|
||||
--thread::
|
||||
--thread[=<style>]::
|
||||
Add In-Reply-To and References headers to make the second and
|
||||
subsequent mails appear as replies to the first. Also generates
|
||||
the Message-Id header to reference.
|
||||
+
|
||||
The optional <style> argument can be either `shallow` or `deep`.
|
||||
'shallow' threading makes every mail a reply to the head of the
|
||||
series, where the head is chosen from the cover letter, the
|
||||
`\--in-reply-to`, and the first patch mail, in this order. 'deep'
|
||||
threading makes every mail a reply to the previous one. If not
|
||||
specified, defaults to the 'format.thread' configuration, or `shallow`
|
||||
if that is not set.
|
||||
|
||||
--in-reply-to=Message-Id::
|
||||
Make the first mail (or all the mails with --no-thread) appear as a
|
||||
@ -147,6 +158,11 @@ include::diff-options.txt[]
|
||||
Add a "Cc:" header to the email headers. This is in addition
|
||||
to any configured headers, and may be used multiple times.
|
||||
|
||||
--add-header=<header>::
|
||||
Add an arbitrary header to the email headers. This is in addition
|
||||
to any configured headers, and may be used multiple times.
|
||||
For example, --add-header="Organization: git-foo"
|
||||
|
||||
--cover-letter::
|
||||
In addition to the patches, generate a cover letter file
|
||||
containing the shortlog and the overall diffstat. You can
|
||||
@ -155,24 +171,31 @@ include::diff-options.txt[]
|
||||
--suffix=.<sfx>::
|
||||
Instead of using `.patch` as the suffix for generated
|
||||
filenames, use specified suffix. A common alternative is
|
||||
`--suffix=.txt`.
|
||||
`--suffix=.txt`. Leaving this empty will remove the `.patch`
|
||||
suffix.
|
||||
+
|
||||
Note that you would need to include the leading dot `.` if you
|
||||
want a filename like `0001-description-of-my-change.patch`, and
|
||||
the first letter does not have to be a dot. Leaving it empty would
|
||||
not add any suffix.
|
||||
Note that the leading character does not have to be a dot; for example,
|
||||
you can use `--suffix=-patch` to get `0001-description-of-my-change-patch`.
|
||||
|
||||
--no-binary::
|
||||
Don't output contents of changes in binary files, just take note
|
||||
that they differ. Note that this disable the patch to be properly
|
||||
applied. By default the contents of changes in those files are
|
||||
encoded in the patch.
|
||||
Do not output contents of changes in binary files, instead
|
||||
display a notice that those files changed. Patches generated
|
||||
using this option cannot be applied properly, but they are
|
||||
still useful for code review.
|
||||
|
||||
--root::
|
||||
Treat the revision argument as a <revision range>, even if it
|
||||
is just a single commit (that would normally be treated as a
|
||||
<since>). Note that root commits included in the specified
|
||||
range are always formatted as creation patches, independently
|
||||
of this flag.
|
||||
|
||||
CONFIGURATION
|
||||
-------------
|
||||
You can specify extra mail header lines to be added to each message
|
||||
in the repository configuration, new defaults for the subject prefix
|
||||
and file suffix, and number patches when outputting more than one.
|
||||
You can specify extra mail header lines to be added to each message,
|
||||
defaults for the subject prefix and file suffix, number patches when
|
||||
outputting more than one patch, add "Cc:" headers, configure attachments,
|
||||
and sign off patches with configuration variables.
|
||||
|
||||
------------
|
||||
[format]
|
||||
@ -181,6 +204,8 @@ and file suffix, and number patches when outputting more than one.
|
||||
suffix = .txt
|
||||
numbered = auto
|
||||
cc = <email>
|
||||
attach [ = mime-boundary-string ]
|
||||
signoff = true
|
||||
------------
|
||||
|
||||
|
||||
@ -218,8 +243,8 @@ $ git format-patch -M -B origin
|
||||
+
|
||||
Additionally, it detects and handles renames and complete rewrites
|
||||
intelligently to produce a renaming patch. A renaming patch reduces
|
||||
the amount of text output, and generally makes it easier to review it.
|
||||
Note that the "patch" program does not understand renaming patches, so
|
||||
the amount of text output, and generally makes it easier to review.
|
||||
Note that non-git "patch" programs won't understand renaming patches, so
|
||||
use it only when you know the recipient uses git to apply your patch.
|
||||
|
||||
* Extract three topmost commits from the current branch and format them
|
||||
|
@ -79,7 +79,8 @@ that aren't readable from any of the specified head nodes.
|
||||
|
||||
So for example
|
||||
|
||||
git fsck --unreachable HEAD $(cat .git/refs/heads/*)
|
||||
git fsck --unreachable HEAD \
|
||||
$(git for-each-ref --format="%(objectname)" refs/heads)
|
||||
|
||||
will do quite a _lot_ of verification on the tree. There are a few
|
||||
extra validity tests to be added (make sure that tree objects are
|
||||
|
@ -8,7 +8,7 @@ git-gc - Cleanup unnecessary files and optimize the local repository
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
'git gc' [--aggressive] [--auto] [--quiet]
|
||||
'git gc' [--aggressive] [--auto] [--quiet] [--prune=<date> | --no-prune]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -59,6 +59,14 @@ are consolidated into a single pack by using the `-A` option of
|
||||
'git-repack'. Setting `gc.autopacklimit` to 0 disables
|
||||
automatic consolidation of packs.
|
||||
|
||||
--prune=<date>::
|
||||
Prune loose objects older than date (default is 2 weeks ago,
|
||||
overrideable by the config variable `gc.pruneExpire`). This
|
||||
option is on by default.
|
||||
|
||||
--no-prune::
|
||||
Do not prune any loose objects.
|
||||
|
||||
--quiet::
|
||||
Suppress all progress reports.
|
||||
|
||||
|
@ -15,7 +15,9 @@ SYNOPSIS
|
||||
[-E | --extended-regexp] [-G | --basic-regexp]
|
||||
[-F | --fixed-strings] [-n]
|
||||
[-l | --files-with-matches] [-L | --files-without-match]
|
||||
[-z | --null]
|
||||
[-c | --count] [--all-match]
|
||||
[--color | --no-color]
|
||||
[-A <post-context>] [-B <pre-context>] [-C <context>]
|
||||
[-f <file>] [-e] <pattern>
|
||||
[--and|--or|--not|(|)|-e <pattern>...] [<tree>...]
|
||||
@ -94,11 +96,23 @@ OPTIONS
|
||||
For better compatibility with 'git-diff', --name-only is a
|
||||
synonym for --files-with-matches.
|
||||
|
||||
-z::
|
||||
--null::
|
||||
Output \0 instead of the character that normally follows a
|
||||
file name.
|
||||
|
||||
-c::
|
||||
--count::
|
||||
Instead of showing every matched line, show the number of
|
||||
lines that match.
|
||||
|
||||
--color::
|
||||
Show colored matches.
|
||||
|
||||
--no-color::
|
||||
Turn off match highlighting, even when the configuration file
|
||||
gives the default to color output.
|
||||
|
||||
-[ABC] <context>::
|
||||
Show `context` trailing (`A` -- after), or leading (`B`
|
||||
-- before), or both (`C` -- context) lines, and place a
|
||||
|
@ -65,9 +65,28 @@ git gui blame v0.99.8 Makefile::
|
||||
example the file is read from the object database and not
|
||||
the working directory.
|
||||
|
||||
git gui blame --line=100 Makefile::
|
||||
|
||||
Loads annotations as described above and automatically
|
||||
scrolls the view to center on line '100'.
|
||||
|
||||
git gui citool::
|
||||
|
||||
Make one commit and return to the shell when it is complete.
|
||||
This command returns a non-zero exit code if the window was
|
||||
closed in any way other than by making a commit.
|
||||
|
||||
git gui citool --amend::
|
||||
|
||||
Automatically enter the 'Amend Last Commit' mode of
|
||||
the interface.
|
||||
|
||||
git gui citool --nocommit::
|
||||
|
||||
Behave as normal citool, but instead of making a commit
|
||||
simply terminate with a zero exit code. It still checks
|
||||
that the index does not contain any unmerged entries, so
|
||||
you can use it as a GUI version of linkgit:git-mergetool[1]
|
||||
|
||||
git citool::
|
||||
|
||||
|
@ -8,7 +8,9 @@ git-hash-object - Compute object ID and optionally creates a blob from a file
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
'git hash-object' [-t <type>] [-w] [--stdin | --stdin-paths] [--] <file>...
|
||||
[verse]
|
||||
'git hash-object' [-t <type>] [-w] [--path=<file>|--no-filters] [--stdin] [--] <file>...
|
||||
'git hash-object' [-t <type>] [-w] --stdin-paths < <list-of-paths>
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -35,6 +37,22 @@ OPTIONS
|
||||
--stdin-paths::
|
||||
Read file names from stdin instead of from the command-line.
|
||||
|
||||
--path::
|
||||
Hash object as it were located at the given path. The location of
|
||||
file does not directly influence on the hash value, but path is
|
||||
used to determine what git filters should be applied to the object
|
||||
before it can be placed to the object database, and, as result of
|
||||
applying filters, the actual blob put into the object database may
|
||||
differ from the given file. This option is mainly useful for hashing
|
||||
temporary files located outside of the working directory or files
|
||||
read from stdin.
|
||||
|
||||
--no-filters::
|
||||
Hash the contents as is, ignoring any input filter that would
|
||||
have been chosen by the attributes mechanism, including crlf
|
||||
conversion. If the file is read from standard input then this
|
||||
is always implied, unless the --path option is given.
|
||||
|
||||
Author
|
||||
------
|
||||
Written by Junio C Hamano <gitster@pobox.com>
|
||||
|
@ -112,7 +112,9 @@ For example, this configuration:
|
||||
will try to use konqueror first. But this may fail (for example if
|
||||
DISPLAY is not set) and in that case emacs' woman mode will be tried.
|
||||
|
||||
If everything fails the 'man' program will be tried anyway.
|
||||
If everything fails, or if no viewer is configured, the viewer specified
|
||||
in the GIT_MAN_VIEWER environment variable will be tried. If that
|
||||
fails too, the 'man' program will be tried anyway.
|
||||
|
||||
man.<tool>.path
|
||||
~~~~~~~~~~~~~~~
|
||||
|
@ -3,7 +3,7 @@ git-imap-send(1)
|
||||
|
||||
NAME
|
||||
----
|
||||
git-imap-send - Dump a mailbox from stdin into an imap folder
|
||||
git-imap-send - Send a collection of patches from stdin to an IMAP folder
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
@ -13,9 +13,9 @@ SYNOPSIS
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
This command uploads a mailbox generated with git-format-patch
|
||||
into an imap drafts folder. This allows patches to be sent as
|
||||
other email is sent with mail clients that cannot read mailbox
|
||||
This command uploads a mailbox generated with 'git-format-patch'
|
||||
into an IMAP drafts folder. This allows patches to be sent as
|
||||
other email is when using mail clients that cannot read mailbox
|
||||
files directly.
|
||||
|
||||
Typical usage is something like:
|
||||
@ -26,23 +26,98 @@ git format-patch --signoff --stdout --attach origin | git imap-send
|
||||
CONFIGURATION
|
||||
-------------
|
||||
|
||||
'git-imap-send' requires the following values in the repository
|
||||
configuration file (shown with examples):
|
||||
To use the tool, imap.folder and either imap.tunnel or imap.host must be set
|
||||
to appropriate values.
|
||||
|
||||
Variables
|
||||
~~~~~~~~~
|
||||
|
||||
imap.folder::
|
||||
The folder to drop the mails into, which is typically the Drafts
|
||||
folder. For example: "INBOX.Drafts", "INBOX/Drafts" or
|
||||
"[Gmail]/Drafts". Required to use imap-send.
|
||||
|
||||
imap.tunnel::
|
||||
Command used to setup a tunnel to the IMAP server through which
|
||||
commands will be piped instead of using a direct network connection
|
||||
to the server. Required when imap.host is not set to use imap-send.
|
||||
|
||||
imap.host::
|
||||
A URL identifying the server. Use a `imap://` prefix for non-secure
|
||||
connections and a `imaps://` prefix for secure connections.
|
||||
Ignored when imap.tunnel is set, but required to use imap-send
|
||||
otherwise.
|
||||
|
||||
imap.user::
|
||||
The username to use when logging in to the server.
|
||||
|
||||
imap.pass::
|
||||
The password to use when logging in to the server.
|
||||
|
||||
imap.port::
|
||||
An integer port number to connect to on the server.
|
||||
Defaults to 143 for imap:// hosts and 993 for imaps:// hosts.
|
||||
Ignored when imap.tunnel is set.
|
||||
|
||||
imap.sslverify::
|
||||
A boolean to enable/disable verification of the server certificate
|
||||
used by the SSL/TLS connection. Default is `true`. Ignored when
|
||||
imap.tunnel is set.
|
||||
|
||||
imap.preformattedHTML::
|
||||
A boolean to enable/disable the use of html encoding when sending
|
||||
a patch. An html encoded patch will be bracketed with <pre>
|
||||
and have a content type of text/html. Ironically, enabling this
|
||||
option causes Thunderbird to send the patch as a plain/text,
|
||||
format=fixed email. Default is `false`.
|
||||
|
||||
Examples
|
||||
~~~~~~~~
|
||||
|
||||
Using tunnel mode:
|
||||
|
||||
..........................
|
||||
[imap]
|
||||
Folder = "INBOX.Drafts"
|
||||
|
||||
[imap]
|
||||
Tunnel = "ssh -q user@server.com /usr/bin/imapd ./Maildir 2> /dev/null"
|
||||
|
||||
[imap]
|
||||
Host = imap.server.com
|
||||
User = bob
|
||||
Pass = pwd
|
||||
Port = 143
|
||||
folder = "INBOX.Drafts"
|
||||
tunnel = "ssh -q -C user@example.com /usr/bin/imapd ./Maildir 2> /dev/null"
|
||||
..........................
|
||||
|
||||
Using direct mode:
|
||||
|
||||
.........................
|
||||
[imap]
|
||||
folder = "INBOX.Drafts"
|
||||
host = imap://imap.example.com
|
||||
user = bob
|
||||
pass = p4ssw0rd
|
||||
..........................
|
||||
|
||||
Using direct mode with SSL:
|
||||
|
||||
.........................
|
||||
[imap]
|
||||
folder = "INBOX.Drafts"
|
||||
host = imaps://imap.example.com
|
||||
user = bob
|
||||
pass = p4ssw0rd
|
||||
port = 123
|
||||
sslverify = false
|
||||
..........................
|
||||
|
||||
|
||||
CAUTION
|
||||
-------
|
||||
It is still your responsibility to make sure that the email message
|
||||
sent by your email program meets the standards of your project.
|
||||
Many projects do not like patches to be attached. Some mail
|
||||
agents will transform patches (e.g. wrap lines, send them as
|
||||
format=flowed) in ways that make them fail. You will get angry
|
||||
flames ridiculing you if you don't check this.
|
||||
|
||||
Thunderbird in particular is known to be problematic. Thunderbird
|
||||
users may wish to visit this web page for more information:
|
||||
http://kb.mozillazine.org/Plain_text_e-mail_-_Thunderbird#Completely_plain_email
|
||||
|
||||
|
||||
BUGS
|
||||
----
|
||||
|
@ -54,15 +54,21 @@ is given:
|
||||
|
||||
- 'group' (or 'true'): Make the repository group-writable, (and g+sx, since
|
||||
the git group may be not the primary group of all users).
|
||||
This is used to loosen the permissions of an otherwise safe umask(2) value.
|
||||
Note that the umask still applies to the other permission bits (e.g. if
|
||||
umask is '0022', using 'group' will not remove read privileges from other
|
||||
(non-group) users). See '0xxx' for how to exactly specify the repository
|
||||
permissions.
|
||||
|
||||
- 'all' (or 'world' or 'everybody'): Same as 'group', but make the repository
|
||||
readable by all users.
|
||||
|
||||
- '0xxx': '0xxx' is an octal number and each file will have mode '0xxx'
|
||||
Any option except 'umask' can be set using this option. '0xxx' will
|
||||
override users umask(2) value, and thus, users with a safe umask (0077)
|
||||
can use this option. '0640' will create a repository which is group-readable
|
||||
but not writable. '0660' is equivalent to 'group'.
|
||||
- '0xxx': '0xxx' is an octal number and each file will have mode '0xxx'.
|
||||
'0xxx' will override users' umask(2) value (and not only loosen permissions
|
||||
as 'group' and 'all' does). '0640' will create a repository which is
|
||||
group-readable, but not group-writable or accessible to others. '0660' will
|
||||
create a repo that is readable and writable to the current user and group,
|
||||
but inaccessible to others.
|
||||
|
||||
By default, the configuration flag receive.denyNonFastForwards is enabled
|
||||
in shared repositories, so that you cannot force a non fast-forwarding push
|
||||
|
@ -40,6 +40,10 @@ include::diff-options.txt[]
|
||||
--decorate::
|
||||
Print out the ref names of any commits that are shown.
|
||||
|
||||
--source::
|
||||
Print out the ref name given on the command line by which each
|
||||
commit was reached.
|
||||
|
||||
--full-diff::
|
||||
Without this flag, "git log -p <path>..." shows commits that
|
||||
touch the specified paths, and diffs about the same specified
|
||||
|
@ -126,7 +126,7 @@ OPTIONS
|
||||
|
||||
--abbrev[=<n>]::
|
||||
Instead of showing the full 40-byte hexadecimal object
|
||||
lines, show only handful hexdigits prefix.
|
||||
lines, show only a partial prefix.
|
||||
Non default number of digits can be specified with --abbrev=<n>.
|
||||
|
||||
\--::
|
||||
|
@ -10,7 +10,7 @@ SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git ls-tree' [-d] [-r] [-t] [-l] [-z]
|
||||
[--name-only] [--name-status] [--full-name] [--abbrev=[<n>]]
|
||||
[--name-only] [--name-status] [--full-name] [--full-tree] [--abbrev=[<n>]]
|
||||
<tree-ish> [paths...]
|
||||
|
||||
DESCRIPTION
|
||||
@ -30,6 +30,8 @@ in the current working directory. Note that:
|
||||
'sub/dir' in 'HEAD'). You don't want to give a tree that is not at the
|
||||
root level (e.g. 'git ls-tree -r HEAD:sub dir') in this case, as that
|
||||
would result in asking for 'sub/sub/dir' in the 'HEAD' commit.
|
||||
However, the current working directory can be ignored by passing
|
||||
--full-tree option.
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
@ -59,13 +61,17 @@ OPTIONS
|
||||
|
||||
--abbrev[=<n>]::
|
||||
Instead of showing the full 40-byte hexadecimal object
|
||||
lines, show only handful hexdigits prefix.
|
||||
lines, show only a partial prefix.
|
||||
Non default number of digits can be specified with --abbrev=<n>.
|
||||
|
||||
--full-name::
|
||||
Instead of showing the path names relative to the current working
|
||||
directory, show the full path names.
|
||||
|
||||
--full-tree::
|
||||
Do not limit the listing to the current working directory.
|
||||
Implies --full-name.
|
||||
|
||||
paths::
|
||||
When paths are given, show them (note that this isn't really raw
|
||||
pathnames, but rather a list of patterns to match). Otherwise
|
||||
|
@ -8,26 +8,80 @@ git-merge-base - Find as good common ancestors as possible for a merge
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
'git merge-base' [--all] <commit> <commit>
|
||||
'git merge-base' [--all] <commit> <commit>...
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
|
||||
'git-merge-base' finds as good a common ancestor as possible between
|
||||
the two commits. That is, given two commits A and B, `git merge-base A
|
||||
B` will output a commit which is reachable from both A and B through
|
||||
the parent relationship.
|
||||
'git-merge-base' finds best common ancestor(s) between two commits to use
|
||||
in a three-way merge. One common ancestor is 'better' than another common
|
||||
ancestor if the latter is an ancestor of the former. A common ancestor
|
||||
that does not have any better common ancestor is a 'best common
|
||||
ancestor', i.e. a 'merge base'. Note that there can be more than one
|
||||
merge base for a pair of commits.
|
||||
|
||||
Given a selection of equally good common ancestors it should not be
|
||||
relied on to decide in any particular way.
|
||||
|
||||
The 'git-merge-base' algorithm is still in flux - use the source...
|
||||
Among the two commits to compute the merge base from, one is specified by
|
||||
the first commit argument on the command line; the other commit is a
|
||||
(possibly hypothetical) commit that is a merge across all the remaining
|
||||
commits on the command line. As the most common special case, specifying only
|
||||
two commits on the command line means computing the merge base between
|
||||
the given two commits.
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
--all::
|
||||
Output all common ancestors for the two commits instead of
|
||||
just one.
|
||||
Output all merge bases for the commits, instead of just one.
|
||||
|
||||
DISCUSSION
|
||||
----------
|
||||
|
||||
Given two commits 'A' and 'B', `git merge-base A B` will output a commit
|
||||
which is reachable from both 'A' and 'B' through the parent relationship.
|
||||
|
||||
For example, with this topology:
|
||||
|
||||
o---o---o---B
|
||||
/
|
||||
---o---1---o---o---o---A
|
||||
|
||||
the merge base between 'A' and 'B' is '1'.
|
||||
|
||||
Given three commits 'A', 'B' and 'C', `git merge-base A B C` will compute the
|
||||
merge base between 'A' and a hypothetical commit 'M', which is a merge
|
||||
between 'B' and 'C'. For example, with this topology:
|
||||
|
||||
o---o---o---o---C
|
||||
/
|
||||
/ o---o---o---B
|
||||
/ /
|
||||
---2---1---o---o---o---A
|
||||
|
||||
the result of `git merge-base A B C` is '1'. This is because the
|
||||
equivalent topology with a merge commit 'M' between 'B' and 'C' is:
|
||||
|
||||
|
||||
o---o---o---o---o
|
||||
/ \
|
||||
/ o---o---o---o---M
|
||||
/ /
|
||||
---2---1---o---o---o---A
|
||||
|
||||
and the result of `git merge-base A M` is '1'. Commit '2' is also a
|
||||
common ancestor between 'A' and 'M', but '1' is a better common ancestor,
|
||||
because '2' is an ancestor of '1'. Hence, '2' is not a merge base.
|
||||
|
||||
When the history involves criss-cross merges, there can be more than one
|
||||
'best' common ancestor for two commits. For example, with this topology:
|
||||
|
||||
---1---o---A
|
||||
\ /
|
||||
X
|
||||
/ \
|
||||
---2---o---o---B
|
||||
|
||||
both '1' and '2' are merge-bases of A and B. Neither one is better than
|
||||
the other (both are 'best' merge bases). When the `--all` option is not given,
|
||||
it is unspecified which best one is output.
|
||||
|
||||
Author
|
||||
------
|
||||
|
@ -15,17 +15,17 @@ SYNOPSIS
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
'git-file-merge' incorporates all changes that lead from the `<base-file>`
|
||||
'git-merge-file' incorporates all changes that lead from the `<base-file>`
|
||||
to `<other-file>` into `<current-file>`. The result ordinarily goes into
|
||||
`<current-file>`. 'git-merge-file' is useful for combining separate changes
|
||||
to an original. Suppose `<base-file>` is the original, and both
|
||||
`<current-file>` and `<other-file>` are modifications of `<base-file>`.
|
||||
Then 'git-merge-file' combines both changes.
|
||||
`<current-file>` and `<other-file>` are modifications of `<base-file>`,
|
||||
then 'git-merge-file' combines both changes.
|
||||
|
||||
A conflict occurs if both `<current-file>` and `<other-file>` have changes
|
||||
in a common segment of lines. If a conflict is found, 'git-merge-file'
|
||||
normally outputs a warning and brackets the conflict with <<<<<<< and
|
||||
>>>>>>> lines. A typical conflict will look like this:
|
||||
normally outputs a warning and brackets the conflict with lines containing
|
||||
<<<<<<< and >>>>>>> markers. A typical conflict will look like this:
|
||||
|
||||
<<<<<<< A
|
||||
lines in file A
|
||||
@ -60,7 +60,7 @@ OPTIONS
|
||||
`<current-file>`.
|
||||
|
||||
-q::
|
||||
Quiet; do not warn about conflicts.
|
||||
Quiet; do not warn about conflicts.
|
||||
|
||||
|
||||
EXAMPLES
|
||||
|
@ -29,11 +29,11 @@ OPTIONS
|
||||
Instead of stopping at the first failed merge, do all of them
|
||||
in one shot - continue with merging even when previous merges
|
||||
returned errors, and only return the error code after all the
|
||||
merges are over.
|
||||
merges.
|
||||
|
||||
-q::
|
||||
Do not complain about failed merge program (the merge program
|
||||
failure usually indicates conflicts during merge). This is for
|
||||
Do not complain about a failed merge program (a merge program
|
||||
failure usually indicates conflicts during the merge). This is for
|
||||
porcelains which might want to emit custom messages.
|
||||
|
||||
If 'git-merge-index' is called with multiple <file>s (or -a) then it
|
||||
|
@ -14,14 +14,14 @@ DESCRIPTION
|
||||
-----------
|
||||
Reads three treeish, and output trivial merge results and
|
||||
conflicting stages to the standard output. This is similar to
|
||||
what three-way read-tree -m does, but instead of storing the
|
||||
what three-way 'git read-tree -m' does, but instead of storing the
|
||||
results in the index, the command outputs the entries to the
|
||||
standard output.
|
||||
|
||||
This is meant to be used by higher level scripts to compute
|
||||
merge results outside index, and stuff the results back into the
|
||||
merge results outside of the index, and stuff the results back into the
|
||||
index. For this reason, the output from the command omits
|
||||
entries that match <branch1> tree.
|
||||
entries that match the <branch1> tree.
|
||||
|
||||
Author
|
||||
------
|
||||
|
@ -40,8 +40,8 @@ include::merge-options.txt[]
|
||||
include::merge-strategies.txt[]
|
||||
|
||||
|
||||
If you tried a merge which resulted in a complex conflicts and
|
||||
would want to start over, you can recover with 'git-reset'.
|
||||
If you tried a merge which resulted in complex conflicts and
|
||||
want to start over, you can recover with 'git-reset'.
|
||||
|
||||
CONFIGURATION
|
||||
-------------
|
||||
@ -69,20 +69,20 @@ Three kinds of merge can happen:
|
||||
simplest case, called "Already up-to-date."
|
||||
|
||||
* `HEAD` is already contained in the merged commit. This is the
|
||||
most common case especially when involved through 'git pull':
|
||||
you are tracking an upstream repository, committed no local
|
||||
most common case especially when invoked from 'git pull':
|
||||
you are tracking an upstream repository, have committed no local
|
||||
changes and now you want to update to a newer upstream revision.
|
||||
Your `HEAD` (and the index) is updated to at point the merged
|
||||
Your `HEAD` (and the index) is updated to point at the merged
|
||||
commit, without creating an extra merge commit. This is
|
||||
called "Fast-forward".
|
||||
|
||||
* Both the merged commit and `HEAD` are independent and must be
|
||||
tied together by a merge commit that has them both as its parents.
|
||||
tied together by a merge commit that has both of them as its parents.
|
||||
The rest of this section describes this "True merge" case.
|
||||
|
||||
The chosen merge strategy merges the two commits into a single
|
||||
new source tree.
|
||||
When things cleanly merge, these things happen:
|
||||
When things merge cleanly, this is what happens:
|
||||
|
||||
1. The results are updated both in the index file and in your
|
||||
working tree;
|
||||
@ -91,16 +91,16 @@ When things cleanly merge, these things happen:
|
||||
4. The `HEAD` pointer gets advanced.
|
||||
|
||||
Because of 2., we require that the original state of the index
|
||||
file to match exactly the current `HEAD` commit; otherwise we
|
||||
file matches exactly the current `HEAD` commit; otherwise we
|
||||
will write out your local changes already registered in your
|
||||
index file along with the merge result, which is not good.
|
||||
Because 1. involves only the paths different between your
|
||||
Because 1. involves only those paths differing between your
|
||||
branch and the remote branch you are pulling from during the
|
||||
merge (which is typically a fraction of the whole tree), you can
|
||||
have local modifications in your working tree as long as they do
|
||||
not overlap with what the merge updates.
|
||||
|
||||
When there are conflicts, these things happen:
|
||||
When there are conflicts, the following happens:
|
||||
|
||||
1. `HEAD` stays the same.
|
||||
|
||||
@ -111,28 +111,105 @@ When there are conflicts, these things happen:
|
||||
versions; stage1 stores the version from the common ancestor,
|
||||
stage2 from `HEAD`, and stage3 from the remote branch (you
|
||||
can inspect the stages with `git ls-files -u`). The working
|
||||
tree files have the result of "merge" program; i.e. 3-way
|
||||
merge result with familiar conflict markers `<<< === >>>`.
|
||||
tree files contain the result of the "merge" program; i.e. 3-way
|
||||
merge results with familiar conflict markers `<<< === >>>`.
|
||||
|
||||
4. No other changes are done. In particular, the local
|
||||
modifications you had before you started merge will stay the
|
||||
same and the index entries for them stay as they were,
|
||||
i.e. matching `HEAD`.
|
||||
|
||||
HOW CONFLICTS ARE PRESENTED
|
||||
---------------------------
|
||||
|
||||
During a merge, the working tree files are updated to reflect the result
|
||||
of the merge. Among the changes made to the common ancestor's version,
|
||||
non-overlapping ones (that is, you changed an area of the file while the
|
||||
other side left that area intact, or vice versa) are incorporated in the
|
||||
final result verbatim. When both sides made changes to the same area,
|
||||
however, git cannot randomly pick one side over the other, and asks you to
|
||||
resolve it by leaving what both sides did to that area.
|
||||
|
||||
By default, git uses the same style as that is used by "merge" program
|
||||
from the RCS suite to present such a conflicted hunk, like this:
|
||||
|
||||
------------
|
||||
Here are lines that are either unchanged from the common
|
||||
ancestor, or cleanly resolved because only one side changed.
|
||||
<<<<<<< yours:sample.txt
|
||||
Conflict resolution is hard;
|
||||
let's go shopping.
|
||||
=======
|
||||
Git makes conflict resolution easy.
|
||||
>>>>>>> theirs:sample.txt
|
||||
And here is another line that is cleanly resolved or unmodified.
|
||||
------------
|
||||
|
||||
The area where a pair of conflicting changes happened is marked with markers
|
||||
`<<<<<<<`, `=======`, and `>>>>>>>`. The part before the `=======`
|
||||
is typically your side, and the part afterwards is typically their side.
|
||||
|
||||
The default format does not show what the original said in the conflicting
|
||||
area. You cannot tell how many lines are deleted and replaced with
|
||||
Barbie's remark on your side. The only thing you can tell is that your
|
||||
side wants to say it is hard and you'd prefer to go shopping, while the
|
||||
other side wants to claim it is easy.
|
||||
|
||||
An alternative style can be used by setting the "merge.conflictstyle"
|
||||
configuration variable to "diff3". In "diff3" style, the above conflict
|
||||
may look like this:
|
||||
|
||||
------------
|
||||
Here are lines that are either unchanged from the common
|
||||
ancestor, or cleanly resolved because only one side changed.
|
||||
<<<<<<< yours:sample.txt
|
||||
Conflict resolution is hard;
|
||||
let's go shopping.
|
||||
|||||||
|
||||
Conflict resolution is hard.
|
||||
=======
|
||||
Git makes conflict resolution easy.
|
||||
>>>>>>> theirs:sample.txt
|
||||
And here is another line that is cleanly resolved or unmodified.
|
||||
------------
|
||||
|
||||
In addition to the `<<<<<<<`, `=======`, and `>>>>>>>` markers, it uses
|
||||
another `|||||||` marker that is followed by the original text. You can
|
||||
tell that the original just stated a fact, and your side simply gave in to
|
||||
that statement and gave up, while the other side tried to have a more
|
||||
positive attitude. You can sometimes come up with a better resolution by
|
||||
viewing the original.
|
||||
|
||||
|
||||
HOW TO RESOLVE CONFLICTS
|
||||
------------------------
|
||||
|
||||
After seeing a conflict, you can do two things:
|
||||
|
||||
* Decide not to merge. The only clean-up you need are to reset
|
||||
* Decide not to merge. The only clean-ups you need are to reset
|
||||
the index file to the `HEAD` commit to reverse 2. and to clean
|
||||
up working tree changes made by 2. and 3.; 'git-reset --hard' can
|
||||
be used for this.
|
||||
|
||||
* Resolve the conflicts. `git diff` would report only the
|
||||
conflicting paths because of the above 2. and 3.
|
||||
Edit the working tree files into a desirable shape
|
||||
('git mergetool' can ease this task), 'git-add' or 'git-rm'
|
||||
them, to make the index file contain what the merge result
|
||||
should be, and run 'git-commit' to commit the result.
|
||||
* Resolve the conflicts. Git will mark the conflicts in
|
||||
the working tree. Edit the files into shape and
|
||||
'git-add' them to the index. Use 'git-commit' to seal the deal.
|
||||
|
||||
You can work through the conflict with a number of tools:
|
||||
|
||||
* Use a mergetool. 'git mergetool' to launch a graphical
|
||||
mergetool which will work you through the merge.
|
||||
|
||||
* Look at the diffs. 'git diff' will show a three-way diff,
|
||||
highlighting changes from both the HEAD and remote versions.
|
||||
|
||||
* Look at the diffs on their own. 'git log --merge -p <path>'
|
||||
will show diffs first for the HEAD version and then the
|
||||
remote version.
|
||||
|
||||
* Look at the originals. 'git show :1:filename' shows the
|
||||
common ancestor, 'git show :2:filename' shows the HEAD
|
||||
version and 'git show :3:filename' shows the remote version.
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
|
54
Documentation/git-mergetool--lib.txt
Normal file
54
Documentation/git-mergetool--lib.txt
Normal file
@ -0,0 +1,54 @@
|
||||
git-mergetool--lib(1)
|
||||
=====================
|
||||
|
||||
NAME
|
||||
----
|
||||
git-mergetool--lib - Common git merge tool shell scriptlets
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
'TOOL_MODE=(diff|merge) . "$(git --exec-path)/git-mergetool--lib"'
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
|
||||
This is not a command the end user would want to run. Ever.
|
||||
This documentation is meant for people who are studying the
|
||||
Porcelain-ish scripts and/or are writing new ones.
|
||||
|
||||
The 'git-mergetool--lib' scriptlet is designed to be sourced (using
|
||||
`.`) by other shell scripts to set up functions for working
|
||||
with git merge tools.
|
||||
|
||||
Before sourcing 'git-mergetool--lib', your script must set `TOOL_MODE`
|
||||
to define the operation mode for the functions listed below.
|
||||
'diff' and 'merge' are valid values.
|
||||
|
||||
FUNCTIONS
|
||||
---------
|
||||
get_merge_tool::
|
||||
returns a merge tool.
|
||||
|
||||
get_merge_tool_cmd::
|
||||
returns the custom command for a merge tool.
|
||||
|
||||
get_merge_tool_path::
|
||||
returns the custom path for a merge tool.
|
||||
|
||||
run_merge_tool::
|
||||
launches a merge tool given the tool name and a true/false
|
||||
flag to indicate whether a merge base is present.
|
||||
'$MERGED', '$LOCAL', '$REMOTE', and '$BASE' must be defined
|
||||
for use by the merge tool.
|
||||
|
||||
Author
|
||||
------
|
||||
Written by David Aguilar <davvid@gmail.com>
|
||||
|
||||
Documentation
|
||||
--------------
|
||||
Documentation by David Aguilar and the git-list <git@vger.kernel.org>.
|
||||
|
||||
GIT
|
||||
---
|
||||
Part of the linkgit:git[1] suite
|
@ -7,7 +7,7 @@ git-mergetool - Run merge conflict resolution tools to resolve merge conflicts
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
'git mergetool' [--tool=<tool>] [<file>]...
|
||||
'git mergetool' [--tool=<tool>] [-y|--no-prompt|--prompt] [<file>]...
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -22,10 +22,12 @@ with merge conflicts.
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
-t or --tool=<tool>::
|
||||
-t <tool>::
|
||||
--tool=<tool>::
|
||||
Use the merge resolution program specified by <tool>.
|
||||
Valid merge tools are:
|
||||
kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge, and opendiff
|
||||
kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge,
|
||||
diffuse, tortoisemerge and opendiff
|
||||
+
|
||||
If a merge resolution program is not specified, 'git-mergetool'
|
||||
will use the configuration variable `merge.tool`. If the
|
||||
@ -38,7 +40,7 @@ can configure the absolute path to kdiff3 by setting
|
||||
`mergetool.kdiff3.path`. Otherwise, 'git-mergetool' assumes the
|
||||
tool is available in PATH.
|
||||
+
|
||||
Instead of running one of the known merge tool programs
|
||||
Instead of running one of the known merge tool programs,
|
||||
'git-mergetool' can be customized to run an alternative program
|
||||
by specifying the command line to invoke in a configuration
|
||||
variable `mergetool.<tool>.cmd`.
|
||||
@ -55,11 +57,21 @@ of the file to which the merge tool should write the result of the
|
||||
merge resolution.
|
||||
+
|
||||
If the custom merge tool correctly indicates the success of a
|
||||
merge resolution with its exit code then the configuration
|
||||
merge resolution with its exit code, then the configuration
|
||||
variable `mergetool.<tool>.trustExitCode` can be set to `true`.
|
||||
Otherwise, 'git-mergetool' will prompt the user to indicate the
|
||||
success of the resolution after the custom tool has exited.
|
||||
|
||||
-y::
|
||||
--no-prompt::
|
||||
Don't prompt before each invocation of the merge resolution
|
||||
program.
|
||||
|
||||
--prompt::
|
||||
Prompt before each invocation of the merge resolution program.
|
||||
This is the default behaviour; the option is provided to
|
||||
override any configuration settings.
|
||||
|
||||
Author
|
||||
------
|
||||
Written by Theodore Y Ts'o <tytso@mit.edu>
|
||||
|
@ -26,7 +26,7 @@ problem by stashing the refs in a single file,
|
||||
traditional `$GIT_DIR/refs` hierarchy, it is looked up in this
|
||||
file and used if found.
|
||||
|
||||
Subsequent updates to branches always creates new file under
|
||||
Subsequent updates to branches always create new files under
|
||||
`$GIT_DIR/refs` hierarchy.
|
||||
|
||||
A recommended practice to deal with a repository with too many
|
||||
@ -35,7 +35,7 @@ occasionally run `git pack-refs \--prune`. Tags are by
|
||||
definition stationary and are not expected to change. Branch
|
||||
heads will be packed with the initial `pack-refs --all`, but
|
||||
only the currently active branch heads will become unpacked,
|
||||
and next `pack-refs` (without `--all`) will leave them
|
||||
and the next `pack-refs` (without `--all`) will leave them
|
||||
unpacked.
|
||||
|
||||
|
||||
|
@ -20,7 +20,7 @@ IOW, you can use this thing to look for likely duplicate commits.
|
||||
|
||||
When dealing with 'git-diff-tree' output, it takes advantage of
|
||||
the fact that the patch is prefixed with the object name of the
|
||||
commit, and outputs two 40-byte hexadecimal string. The first
|
||||
commit, and outputs two 40-byte hexadecimal strings. The first
|
||||
string is the patch ID, and the second string is the commit ID.
|
||||
This can be used to make a mapping from patch ID to commit ID.
|
||||
|
||||
|
@ -8,7 +8,7 @@ git-prune - Prune all unreachable objects from the object database
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
'git-prune' [-n] [--expire <expire>] [--] [<head>...]
|
||||
'git-prune' [-n] [-v] [--expire <expire>] [--] [<head>...]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -34,6 +34,9 @@ OPTIONS
|
||||
Do not remove anything; just report what it would
|
||||
remove.
|
||||
|
||||
-v::
|
||||
Report all removed objects.
|
||||
|
||||
\--::
|
||||
Do not interpret any more arguments as options.
|
||||
|
||||
|
@ -9,7 +9,7 @@ git-push - Update remote refs along with associated objects
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git push' [--all | --mirror] [--dry-run] [--tags] [--receive-pack=<git-receive-pack>]
|
||||
'git push' [--all | --mirror | --tags] [--dry-run] [--receive-pack=<git-receive-pack>]
|
||||
[--repo=<repository>] [-f | --force] [-v | --verbose]
|
||||
[<repository> <refspec>...]
|
||||
|
||||
@ -24,40 +24,45 @@ every time you push into it, by setting up 'hooks' there. See
|
||||
documentation for linkgit:git-receive-pack[1].
|
||||
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
OPTIONS[[OPTIONS]]
|
||||
------------------
|
||||
<repository>::
|
||||
The "remote" repository that is destination of a push
|
||||
operation. See the section <<URLS,GIT URLS>> below.
|
||||
operation. This parameter can be either a URL
|
||||
(see the section <<URLS,GIT URLS>> below) or the name
|
||||
of a remote (see the section <<REMOTES,REMOTES>> below).
|
||||
|
||||
<refspec>...::
|
||||
The canonical format of a <refspec> parameter is
|
||||
`+?<src>:<dst>`; that is, an optional plus `{plus}`, followed
|
||||
by the source ref, followed by a colon `:`, followed by
|
||||
the destination ref.
|
||||
The format of a <refspec> parameter is an optional plus
|
||||
`{plus}`, followed by the source ref <src>, followed
|
||||
by a colon `:`, followed by the destination ref <dst>.
|
||||
It is used to specify with what <src> object the <dst> ref
|
||||
in the remote repository is to be updated.
|
||||
+
|
||||
The <src> side represents the source branch (or arbitrary
|
||||
"SHA1 expression", such as `master~4` (four parents before the
|
||||
tip of `master` branch); see linkgit:git-rev-parse[1]) that you
|
||||
want to push. The <dst> side represents the destination location.
|
||||
The <src> is often the name of the branch you would want to push, but
|
||||
it can be any arbitrary "SHA-1 expression", such as `master~4` or
|
||||
`HEAD` (see linkgit:git-rev-parse[1]).
|
||||
+
|
||||
The local ref that matches <src> is used
|
||||
to fast forward the remote ref that matches <dst> (or, if no <dst> was
|
||||
specified, the same ref that <src> referred to locally). If
|
||||
the optional leading plus `+` is used, the remote ref is updated
|
||||
even if it does not result in a fast forward update.
|
||||
The <dst> tells which ref on the remote side is updated with this
|
||||
push. Arbitrary expressions cannot be used here, an actual ref must
|
||||
be named. If `:`<dst> is omitted, the same ref as <src> will be
|
||||
updated.
|
||||
+
|
||||
The object referenced by <src> is used to update the <dst> reference
|
||||
on the remote side, but by default this is only allowed if the
|
||||
update can fast forward <dst>. By having the optional leading `{plus}`,
|
||||
you can tell git to update the <dst> ref even when the update is not a
|
||||
fast forward. This does *not* attempt to merge <src> into <dst>. See
|
||||
EXAMPLES below for details.
|
||||
+
|
||||
`tag <tag>` means the same as `refs/tags/<tag>:refs/tags/<tag>`.
|
||||
+
|
||||
A parameter <ref> without a colon pushes the <ref> from the source
|
||||
repository to the destination repository under the same name.
|
||||
+
|
||||
Pushing an empty <src> allows you to delete the <dst> ref from
|
||||
the remote repository.
|
||||
+
|
||||
The special refspec `:` (or `+:` to allow non-fast forward updates)
|
||||
directs git to push "matching" heads: for every head that exists on
|
||||
the local side, the remote side is updated if a head of the same name
|
||||
The special refspec `:` (or `{plus}:` to allow non-fast forward updates)
|
||||
directs git to push "matching" branches: for every branch that exists on
|
||||
the local side, the remote side is updated if a branch of the same name
|
||||
already exists on the remote side. This is the default operation mode
|
||||
if no explicit refspec is found (that is neither on the command line
|
||||
nor in any Push line of the corresponding remotes file---see below).
|
||||
@ -86,14 +91,12 @@ nor in any Push line of the corresponding remotes file---see below).
|
||||
line.
|
||||
|
||||
--receive-pack=<git-receive-pack>::
|
||||
--exec=<git-receive-pack>::
|
||||
Path to the 'git-receive-pack' program on the remote
|
||||
end. Sometimes useful when pushing to a remote
|
||||
repository over ssh, and you do not have the program in
|
||||
a directory on the default $PATH.
|
||||
|
||||
--exec=<git-receive-pack>::
|
||||
Same as \--receive-pack=<git-receive-pack>.
|
||||
|
||||
-f::
|
||||
--force::
|
||||
Usually, the command refuses to update a remote ref that is
|
||||
@ -184,6 +187,28 @@ reason::
|
||||
Examples
|
||||
--------
|
||||
|
||||
git push::
|
||||
Works like `git push <remote>`, where <remote> is the
|
||||
current branch's remote (or `origin`, if no remote is
|
||||
configured for the current branch).
|
||||
|
||||
git push origin::
|
||||
Without additional configuration, works like
|
||||
`git push origin :`.
|
||||
+
|
||||
The default behavior of this command when no <refspec> is given can be
|
||||
configured by setting the `push` option of the remote.
|
||||
+
|
||||
For example, to default to pushing only the current branch to `origin`
|
||||
use `git config remote.origin.push HEAD`. Any valid <refspec> (like
|
||||
the ones in the examples below) can be configured as the default for
|
||||
`git push origin`.
|
||||
|
||||
git push origin :::
|
||||
Push "matching" branches to `origin`. See
|
||||
<refspec> in the <<OPTIONS,OPTIONS>> section above for a
|
||||
description of "matching" branches.
|
||||
|
||||
git push origin master::
|
||||
Find a ref that matches `master` in the source repository
|
||||
(most likely, it would find `refs/heads/master`), and update
|
||||
@ -191,9 +216,9 @@ git push origin master::
|
||||
with it. If `master` did not exist remotely, it would be
|
||||
created.
|
||||
|
||||
git push origin :experimental::
|
||||
Find a ref that matches `experimental` in the `origin` repository
|
||||
(e.g. `refs/heads/experimental`), and delete it.
|
||||
git push origin HEAD::
|
||||
A handy way to push the current branch to the same name on the
|
||||
remote.
|
||||
|
||||
git push origin master:satellite/master dev:satellite/dev::
|
||||
Use the source ref that matches `master` (e.g. `refs/heads/master`)
|
||||
@ -201,6 +226,11 @@ git push origin master:satellite/master dev:satellite/dev::
|
||||
`refs/remotes/satellite/master`) in the `origin` repository, then
|
||||
do the same for `dev` and `satellite/dev`.
|
||||
|
||||
git push origin HEAD:master::
|
||||
Push the current branch to the remote ref matching `master` in the
|
||||
`origin` repository. This form is convenient to push the current
|
||||
branch without thinking about its local name.
|
||||
|
||||
git push origin master:refs/heads/experimental::
|
||||
Create the branch `experimental` in the `origin` repository
|
||||
by copying the current `master` branch. This form is only
|
||||
@ -208,6 +238,35 @@ git push origin master:refs/heads/experimental::
|
||||
the local name and the remote name are different; otherwise,
|
||||
the ref name on its own will work.
|
||||
|
||||
git push origin :experimental::
|
||||
Find a ref that matches `experimental` in the `origin` repository
|
||||
(e.g. `refs/heads/experimental`), and delete it.
|
||||
|
||||
git push origin {plus}dev:master::
|
||||
Update the origin repository's master branch with the dev branch,
|
||||
allowing non-fast forward updates. *This can leave unreferenced
|
||||
commits dangling in the origin repository.* Consider the
|
||||
following situation, where a fast forward is not possible:
|
||||
+
|
||||
----
|
||||
o---o---o---A---B origin/master
|
||||
\
|
||||
X---Y---Z dev
|
||||
----
|
||||
+
|
||||
The above command would change the origin repository to
|
||||
+
|
||||
----
|
||||
A---B (unnamed branch)
|
||||
/
|
||||
o---o---o---X---Y---Z master
|
||||
----
|
||||
+
|
||||
Commits A and B would no longer belong to a branch with a symbolic name,
|
||||
and so would be unreachable. As such, these commits would be removed by
|
||||
a `git gc` command on the origin repository.
|
||||
|
||||
|
||||
Author
|
||||
------
|
||||
Written by Junio C Hamano <gitster@pobox.com>, later rewritten in C
|
||||
|
@ -212,7 +212,7 @@ output after two-tree merge.
|
||||
|
||||
Case #3 is slightly tricky and needs explanation. The result from this
|
||||
rule logically should be to remove the path if the user staged the removal
|
||||
of the path and then swiching to a new branch. That however will prevent
|
||||
of the path and then switching to a new branch. That however will prevent
|
||||
the initial checkout from happening, so the rule is modified to use M (new
|
||||
tree) only when the contents of the index is empty. Otherwise the removal
|
||||
of the path is kept as long as $H and $M are the same.
|
||||
|
@ -8,10 +8,11 @@ git-rebase - Forward-port local commits to the updated upstream head
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git rebase' [-i | --interactive] [-v | --verbose] [-m | --merge]
|
||||
[-s <strategy> | --strategy=<strategy>]
|
||||
[-C<n>] [ --whitespace=<option>] [-p | --preserve-merges]
|
||||
[--onto <newbase>] <upstream> [<branch>]
|
||||
'git rebase' [-i | --interactive] [options] [--onto <newbase>]
|
||||
<upstream> [<branch>]
|
||||
'git rebase' [-i | --interactive] [options] --onto <newbase>
|
||||
--root [<branch>]
|
||||
|
||||
'git rebase' --continue | --skip | --abort
|
||||
|
||||
DESCRIPTION
|
||||
@ -22,7 +23,8 @@ it remains on the current branch.
|
||||
|
||||
All changes made by commits in the current branch but that are not
|
||||
in <upstream> are saved to a temporary area. This is the same set
|
||||
of commits that would be shown by `git log <upstream>..HEAD`.
|
||||
of commits that would be shown by `git log <upstream>..HEAD` (or
|
||||
`git log HEAD`, if --root is specified).
|
||||
|
||||
The current branch is reset to <upstream>, or <newbase> if the
|
||||
--onto option was supplied. This has the exact same effect as
|
||||
@ -92,7 +94,7 @@ branch to another, to pretend that you forked the topic branch
|
||||
from the latter branch, using `rebase --onto`.
|
||||
|
||||
First let's assume your 'topic' is based on branch 'next'.
|
||||
For example feature developed in 'topic' depends on some
|
||||
For example, a feature developed in 'topic' depends on some
|
||||
functionality which is found in 'next'.
|
||||
|
||||
------------
|
||||
@ -103,9 +105,9 @@ functionality which is found in 'next'.
|
||||
o---o---o topic
|
||||
------------
|
||||
|
||||
We would want to make 'topic' forked from branch 'master',
|
||||
for example because the functionality 'topic' branch depend on
|
||||
got merged into more stable 'master' branch, like this:
|
||||
We want to make 'topic' forked from branch 'master'; for example,
|
||||
because the functionality on which 'topic' depends was merged into the
|
||||
more stable 'master' branch. We want our tree to look like this:
|
||||
|
||||
------------
|
||||
o---o---o---o---o master
|
||||
@ -190,6 +192,13 @@ Alternatively, you can undo the 'git-rebase' with
|
||||
|
||||
git rebase --abort
|
||||
|
||||
CONFIGURATION
|
||||
-------------
|
||||
|
||||
rebase.stat::
|
||||
Whether to show a diffstat of what changed upstream since the last
|
||||
rebase. False by default.
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
<newbase>::
|
||||
@ -230,7 +239,18 @@ OPTIONS
|
||||
|
||||
-v::
|
||||
--verbose::
|
||||
Display a diffstat of what changed upstream since the last rebase.
|
||||
Be verbose. Implies --stat.
|
||||
|
||||
--stat::
|
||||
Show a diffstat of what changed upstream since the last rebase. The
|
||||
diffstat is also controlled by the configuration option rebase.stat.
|
||||
|
||||
-n::
|
||||
--no-stat::
|
||||
Do not show a diffstat as part of the rebase process.
|
||||
|
||||
--no-verify::
|
||||
This option bypasses the pre-rebase hook. See also linkgit:githooks[5].
|
||||
|
||||
-C<n>::
|
||||
Ensure at least <n> lines of surrounding context match before
|
||||
@ -238,9 +258,22 @@ OPTIONS
|
||||
context exist they all must match. By default no context is
|
||||
ever ignored.
|
||||
|
||||
--whitespace=<nowarn|warn|error|error-all|strip>::
|
||||
-f::
|
||||
--force-rebase::
|
||||
Force the rebase even if the current branch is a descendant
|
||||
of the commit you are rebasing onto. Normally the command will
|
||||
exit with the message "Current branch is up to date" in such a
|
||||
situation.
|
||||
|
||||
--whitespace=<option>::
|
||||
This flag is passed to the 'git-apply' program
|
||||
(see linkgit:git-apply[1]) that applies the patch.
|
||||
Incompatible with the --interactive option.
|
||||
|
||||
--committer-date-is-author-date::
|
||||
--ignore-date::
|
||||
These flags are passed to 'git-am' to easily change the dates
|
||||
of the rebased commits (see linkgit:git-am[1]).
|
||||
|
||||
-i::
|
||||
--interactive::
|
||||
@ -250,18 +283,25 @@ OPTIONS
|
||||
|
||||
-p::
|
||||
--preserve-merges::
|
||||
Instead of ignoring merges, try to recreate them. This option
|
||||
only works in interactive mode.
|
||||
Instead of ignoring merges, try to recreate them.
|
||||
|
||||
--root::
|
||||
Rebase all commits reachable from <branch>, instead of
|
||||
limiting them with an <upstream>. This allows you to rebase
|
||||
the root commit(s) on a branch. Must be used with --onto, and
|
||||
will skip changes already contained in <newbase> (instead of
|
||||
<upstream>). When used together with --preserve-merges, 'all'
|
||||
root commits will be rewritten to have <newbase> as parent
|
||||
instead.
|
||||
|
||||
include::merge-strategies.txt[]
|
||||
|
||||
NOTES
|
||||
-----
|
||||
When you rebase a branch, you are changing its history in a way that
|
||||
will cause problems for anyone who already has a copy of the branch
|
||||
in their repository and tries to pull updates from you. You should
|
||||
understand the implications of using 'git-rebase' on a repository that
|
||||
you share.
|
||||
|
||||
You should understand the implications of using 'git-rebase' on a
|
||||
repository that you share. See also RECOVERING FROM UPSTREAM REBASE
|
||||
below.
|
||||
|
||||
When the git-rebase command is run, it will first execute a "pre-rebase"
|
||||
hook if one exists. You can use this hook to do sanity checks and
|
||||
@ -396,6 +436,127 @@ consistent (they compile, pass the testsuite, etc.) you should use
|
||||
after each commit, test, and amend the commit if fixes are necessary.
|
||||
|
||||
|
||||
RECOVERING FROM UPSTREAM REBASE
|
||||
-------------------------------
|
||||
|
||||
Rebasing (or any other form of rewriting) a branch that others have
|
||||
based work on is a bad idea: anyone downstream of it is forced to
|
||||
manually fix their history. This section explains how to do the fix
|
||||
from the downstream's point of view. The real fix, however, would be
|
||||
to avoid rebasing the upstream in the first place.
|
||||
|
||||
To illustrate, suppose you are in a situation where someone develops a
|
||||
'subsystem' branch, and you are working on a 'topic' that is dependent
|
||||
on this 'subsystem'. You might end up with a history like the
|
||||
following:
|
||||
|
||||
------------
|
||||
o---o---o---o---o---o---o---o---o master
|
||||
\
|
||||
o---o---o---o---o subsystem
|
||||
\
|
||||
*---*---* topic
|
||||
------------
|
||||
|
||||
If 'subsystem' is rebased against 'master', the following happens:
|
||||
|
||||
------------
|
||||
o---o---o---o---o---o---o---o master
|
||||
\ \
|
||||
o---o---o---o---o o'--o'--o'--o'--o' subsystem
|
||||
\
|
||||
*---*---* topic
|
||||
------------
|
||||
|
||||
If you now continue development as usual, and eventually merge 'topic'
|
||||
to 'subsystem', the commits from 'subsystem' will remain duplicated forever:
|
||||
|
||||
------------
|
||||
o---o---o---o---o---o---o---o master
|
||||
\ \
|
||||
o---o---o---o---o o'--o'--o'--o'--o'--M subsystem
|
||||
\ /
|
||||
*---*---*-..........-*--* topic
|
||||
------------
|
||||
|
||||
Such duplicates are generally frowned upon because they clutter up
|
||||
history, making it harder to follow. To clean things up, you need to
|
||||
transplant the commits on 'topic' to the new 'subsystem' tip, i.e.,
|
||||
rebase 'topic'. This becomes a ripple effect: anyone downstream from
|
||||
'topic' is forced to rebase too, and so on!
|
||||
|
||||
There are two kinds of fixes, discussed in the following subsections:
|
||||
|
||||
Easy case: The changes are literally the same.::
|
||||
|
||||
This happens if the 'subsystem' rebase was a simple rebase and
|
||||
had no conflicts.
|
||||
|
||||
Hard case: The changes are not the same.::
|
||||
|
||||
This happens if the 'subsystem' rebase had conflicts, or used
|
||||
`\--interactive` to omit, edit, or squash commits; or if the
|
||||
upstream used one of `commit \--amend`, `reset`, or
|
||||
`filter-branch`.
|
||||
|
||||
|
||||
The easy case
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
Only works if the changes (patch IDs based on the diff contents) on
|
||||
'subsystem' are literally the same before and after the rebase
|
||||
'subsystem' did.
|
||||
|
||||
In that case, the fix is easy because 'git-rebase' knows to skip
|
||||
changes that are already present in the new upstream. So if you say
|
||||
(assuming you're on 'topic')
|
||||
------------
|
||||
$ git rebase subsystem
|
||||
------------
|
||||
you will end up with the fixed history
|
||||
------------
|
||||
o---o---o---o---o---o---o---o master
|
||||
\
|
||||
o'--o'--o'--o'--o' subsystem
|
||||
\
|
||||
*---*---* topic
|
||||
------------
|
||||
|
||||
|
||||
The hard case
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
Things get more complicated if the 'subsystem' changes do not exactly
|
||||
correspond to the ones before the rebase.
|
||||
|
||||
NOTE: While an "easy case recovery" sometimes appears to be successful
|
||||
even in the hard case, it may have unintended consequences. For
|
||||
example, a commit that was removed via `git rebase
|
||||
\--interactive` will be **resurrected**!
|
||||
|
||||
The idea is to manually tell 'git-rebase' "where the old 'subsystem'
|
||||
ended and your 'topic' began", that is, what the old merge-base
|
||||
between them was. You will have to find a way to name the last commit
|
||||
of the old 'subsystem', for example:
|
||||
|
||||
* With the 'subsystem' reflog: after 'git-fetch', the old tip of
|
||||
'subsystem' is at `subsystem@\{1}`. Subsequent fetches will
|
||||
increase the number. (See linkgit:git-reflog[1].)
|
||||
|
||||
* Relative to the tip of 'topic': knowing that your 'topic' has three
|
||||
commits, the old tip of 'subsystem' must be `topic~3`.
|
||||
|
||||
You can then transplant the old `subsystem..topic` to the new tip by
|
||||
saying (for the reflog case, and assuming you are on 'topic' already):
|
||||
------------
|
||||
$ git rebase --onto subsystem subsystem@{1}
|
||||
------------
|
||||
|
||||
The ripple effect of a "hard case" recovery is especially bad:
|
||||
'everyone' downstream from 'topic' will now have to perform a "hard
|
||||
case" recovery too!
|
||||
|
||||
|
||||
Authors
|
||||
------
|
||||
Written by Junio C Hamano <gitster@pobox.com> and
|
||||
|
@ -11,10 +11,12 @@ SYNOPSIS
|
||||
[verse]
|
||||
'git remote' [-v | --verbose]
|
||||
'git remote add' [-t <branch>] [-m <master>] [-f] [--mirror] <name> <url>
|
||||
'git remote rename' <old> <new>
|
||||
'git remote rm' <name>
|
||||
'git remote set-head' <name> [-a | -d | <branch>]
|
||||
'git remote show' [-n] <name>
|
||||
'git remote prune' [-n | --dry-run] <name>
|
||||
'git remote update' [group]
|
||||
'git remote update' [-p | --prune] [group | remote]...
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -52,8 +54,7 @@ is created. You can give more than one `-t <branch>` to track
|
||||
multiple branches without grabbing all branches.
|
||||
+
|
||||
With `-m <master>` option, `$GIT_DIR/remotes/<name>/HEAD` is set
|
||||
up to point at remote's `<master>` branch instead of whatever
|
||||
branch the `HEAD` at the remote repository actually points at.
|
||||
up to point at remote's `<master>` branch. See also the set-head command.
|
||||
+
|
||||
In mirror mode, enabled with `\--mirror`, the refs will not be stored
|
||||
in the 'refs/remotes/' namespace, but in 'refs/heads/'. This option
|
||||
@ -61,11 +62,44 @@ only makes sense in bare repositories. If a remote uses mirror
|
||||
mode, furthermore, `git push` will always behave as if `\--mirror`
|
||||
was passed.
|
||||
|
||||
'rename'::
|
||||
|
||||
Rename the remote named <old> to <new>. All remote tracking branches and
|
||||
configuration settings for the remote are updated.
|
||||
+
|
||||
In case <old> and <new> are the same, and <old> is a file under
|
||||
`$GIT_DIR/remotes` or `$GIT_DIR/branches`, the remote is converted to
|
||||
the configuration file format.
|
||||
|
||||
'rm'::
|
||||
|
||||
Remove the remote named <name>. All remote tracking branches and
|
||||
configuration settings for the remote are removed.
|
||||
|
||||
'set-head'::
|
||||
|
||||
Sets or deletes the default branch (`$GIT_DIR/remotes/<name>/HEAD`) for
|
||||
the named remote. Having a default branch for a remote is not required,
|
||||
but allows the name of the remote to be specified in lieu of a specific
|
||||
branch. For example, if the default branch for `origin` is set to
|
||||
`master`, then `origin` may be specified wherever you would normally
|
||||
specify `origin/master`.
|
||||
+
|
||||
With `-d`, `$GIT_DIR/remotes/<name>/HEAD` is deleted.
|
||||
+
|
||||
With `-a`, the remote is queried to determine its `HEAD`, then
|
||||
`$GIT_DIR/remotes/<name>/HEAD` is set to the same branch. e.g., if the remote
|
||||
`HEAD` is pointed at `next`, "`git remote set-head origin -a`" will set
|
||||
`$GIT_DIR/refs/remotes/origin/HEAD` to `refs/remotes/origin/next`. This will
|
||||
only work if `refs/remotes/origin/next` already exists; if not it must be
|
||||
fetched first.
|
||||
+
|
||||
Use `<branch>` to set `$GIT_DIR/remotes/<name>/HEAD` explicitly. e.g., "git
|
||||
remote set-head origin master" will set `$GIT_DIR/refs/remotes/origin/HEAD` to
|
||||
`refs/remotes/origin/master`. This will only work if
|
||||
`refs/remotes/origin/master` already exists; if not it must be fetched first.
|
||||
+
|
||||
|
||||
'show'::
|
||||
|
||||
Gives some information about the remote <name>.
|
||||
@ -91,6 +125,8 @@ the configuration parameter remotes.default will get used; if
|
||||
remotes.default is not defined, all remotes which do not have the
|
||||
configuration parameter remote.<name>.skipDefaultUpdate set to true will
|
||||
be updated. (See linkgit:git-config[1]).
|
||||
+
|
||||
With `--prune` option, prune all the remotes that are updated.
|
||||
|
||||
|
||||
DISCUSSION
|
||||
|
@ -8,7 +8,7 @@ git-reset - Reset current HEAD to the specified state
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git reset' [--mixed | --soft | --hard] [-q] [<commit>]
|
||||
'git reset' [--mixed | --soft | --hard | --merge] [-q] [<commit>]
|
||||
'git reset' [-q] [<commit>] [--] <paths>...
|
||||
|
||||
DESCRIPTION
|
||||
@ -45,6 +45,11 @@ OPTIONS
|
||||
switched to. Any changes to tracked files in the working tree
|
||||
since <commit> are lost.
|
||||
|
||||
--merge::
|
||||
Resets the index to match the tree recorded by the named commit,
|
||||
and updates the files that are different between the named commit
|
||||
and the current commit in the working tree.
|
||||
|
||||
-q::
|
||||
Be quiet, only report errors.
|
||||
|
||||
@ -82,7 +87,9 @@ $ git reset --hard HEAD~3 <1>
|
||||
+
|
||||
<1> The last three commits (HEAD, HEAD^, and HEAD~2) were bad
|
||||
and you do not want to ever see them again. Do *not* do this if
|
||||
you have already given these commits to somebody else.
|
||||
you have already given these commits to somebody else. (See the
|
||||
"RECOVERING FROM UPSTREAM REBASE" section in linkgit:git-rebase[1] for
|
||||
the implications of doing so.)
|
||||
|
||||
Undo a commit, making it a topic branch::
|
||||
+
|
||||
@ -128,7 +135,7 @@ Undo a merge or pull::
|
||||
$ git pull <1>
|
||||
Auto-merging nitfol
|
||||
CONFLICT (content): Merge conflict in nitfol
|
||||
Automatic merge failed/prevented; fix up by hand
|
||||
Automatic merge failed; fix conflicts and then commit the result.
|
||||
$ git reset --hard <2>
|
||||
$ git pull . topic/branch <3>
|
||||
Updating from 41223... to 13134...
|
||||
@ -150,6 +157,28 @@ tip of the current branch in ORIG_HEAD, so resetting hard to it
|
||||
brings your index file and the working tree back to that state,
|
||||
and resets the tip of the branch to that commit.
|
||||
|
||||
Undo a merge or pull inside a dirty work tree::
|
||||
+
|
||||
------------
|
||||
$ git pull <1>
|
||||
Auto-merging nitfol
|
||||
Merge made by recursive.
|
||||
nitfol | 20 +++++----
|
||||
...
|
||||
$ git reset --merge ORIG_HEAD <2>
|
||||
------------
|
||||
+
|
||||
<1> Even if you may have local modifications in your
|
||||
working tree, you can safely say "git pull" when you know
|
||||
that the change in the other branch does not overlap with
|
||||
them.
|
||||
<2> After inspecting the result of the merge, you may find
|
||||
that the change in the other branch is unsatisfactory. Running
|
||||
"git reset --hard ORIG_HEAD" will let you go back to where you
|
||||
were, but it will discard your local changes, which you do not
|
||||
want. "git reset --merge" keeps your local changes.
|
||||
|
||||
|
||||
Interrupted workflow::
|
||||
+
|
||||
Suppose you are interrupted by an urgent fix request while you
|
||||
@ -175,6 +204,8 @@ $ git reset <3>
|
||||
<3> At this point the index file still has all the WIP changes you
|
||||
committed as 'snapshot WIP'. This updates the index to show your
|
||||
WIP files as uncommitted.
|
||||
+
|
||||
See also linkgit:git-stash[1].
|
||||
|
||||
Reset a single file in the index::
|
||||
+
|
||||
|
@ -84,6 +84,11 @@ OPTIONS
|
||||
unfortunately named tag "master"), and show them as full
|
||||
refnames (e.g. "refs/heads/master").
|
||||
|
||||
--abbrev-ref[={strict|loose}]::
|
||||
A non-ambiguous short name of the objects name.
|
||||
The option core.warnAmbiguousRefs is used to select the strict
|
||||
abbreviation mode.
|
||||
|
||||
--all::
|
||||
Show all refs found in `$GIT_DIR/refs`.
|
||||
|
||||
@ -212,6 +217,9 @@ when you run 'git-merge'.
|
||||
reflog of the current branch. For example, if you are on the
|
||||
branch 'blabla', then '@\{1\}' means the same as 'blabla@\{1\}'.
|
||||
|
||||
* The special construct '@\{-<n>\}' means the <n>th branch checked out
|
||||
before the current one.
|
||||
|
||||
* A suffix '{caret}' to a revision parameter means the first parent of
|
||||
that commit object. '{caret}<n>' means the <n>th parent (i.e.
|
||||
'rev{caret}'
|
||||
@ -296,18 +304,18 @@ previous section means the set of commits reachable from that
|
||||
commit, following the commit ancestry chain.
|
||||
|
||||
To exclude commits reachable from a commit, a prefix `{caret}`
|
||||
notation is used. E.g. "`{caret}r1 r2`" means commits reachable
|
||||
notation is used. E.g. `{caret}r1 r2` means commits reachable
|
||||
from `r2` but exclude the ones reachable from `r1`.
|
||||
|
||||
This set operation appears so often that there is a shorthand
|
||||
for it. When you have two commits `r1` and `r2` (named according
|
||||
to the syntax explained in SPECIFYING REVISIONS above), you can ask
|
||||
for commits that are reachable from r2 excluding those that are reachable
|
||||
from r1 by "`{caret}r1 r2`" and it can be written as "`r1..r2`".
|
||||
from r1 by `{caret}r1 r2` and it can be written as `r1..r2`.
|
||||
|
||||
A similar notation "`r1\...r2`" is called symmetric difference
|
||||
A similar notation `r1\...r2` is called symmetric difference
|
||||
of `r1` and `r2` and is defined as
|
||||
"`r1 r2 --not $(git merge-base --all r1 r2)`".
|
||||
`r1 r2 --not $(git merge-base --all r1 r2)`.
|
||||
It is the set of commits that are reachable from either one of
|
||||
`r1` or `r2` but not from both.
|
||||
|
||||
|
@ -44,6 +44,14 @@ OPTIONS
|
||||
option specifies the parent number (starting from 1) of
|
||||
the mainline and allows revert to reverse the change
|
||||
relative to the specified parent.
|
||||
+
|
||||
Reverting a merge commit declares that you will never want the tree changes
|
||||
brought in by the merge. As a result, later merges will only bring in tree
|
||||
changes introduced by commits that are not ancestors of the previously
|
||||
reverted merge. This may or may not be what you want.
|
||||
+
|
||||
See the link:howto/revert-a-faulty-merge.txt[revert-a-faulty-merge How-To] for
|
||||
more details.
|
||||
|
||||
--no-edit::
|
||||
With this option, 'git-revert' will not start the commit
|
||||
|
@ -8,8 +8,7 @@ git-send-email - Send a collection of patches as emails
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
'git send-email' [options] <file|directory> [... file|directory]
|
||||
|
||||
'git send-email' [options] <file|directory|rev-list options>...
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
@ -20,70 +19,110 @@ The header of the email is configurable by command line options. If not
|
||||
specified on the command line, the user will be prompted with a ReadLine
|
||||
enabled interface to provide the necessary information.
|
||||
|
||||
There are two formats accepted for patch files:
|
||||
|
||||
1. mbox format files
|
||||
+
|
||||
This is what linkgit:git-format-patch[1] generates. Most headers and MIME
|
||||
formatting are ignored.
|
||||
|
||||
2. The original format used by Greg Kroah-Hartman's 'send_lots_of_email.pl'
|
||||
script
|
||||
+
|
||||
This format expects the first line of the file to contain the "Cc:" value
|
||||
and the "Subject:" of the message as the second line.
|
||||
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
The options available are:
|
||||
|
||||
--bcc::
|
||||
Specify a "Bcc:" value for each email.
|
||||
Composing
|
||||
~~~~~~~~~
|
||||
|
||||
--bcc=<address>::
|
||||
Specify a "Bcc:" value for each email. Default is the value of
|
||||
'sendemail.bcc'.
|
||||
+
|
||||
The --bcc option must be repeated for each user you want on the bcc list.
|
||||
|
||||
--cc::
|
||||
--cc=<address>::
|
||||
Specify a starting "Cc:" value for each email.
|
||||
Default is the value of 'sendemail.cc'.
|
||||
+
|
||||
The --cc option must be repeated for each user you want on the cc list.
|
||||
|
||||
--cc-cmd::
|
||||
Specify a command to execute once per patch file which
|
||||
should generate patch file specific "Cc:" entries.
|
||||
Output of this command must be single email address per line.
|
||||
Default is the value of 'sendemail.cccmd' configuration value.
|
||||
|
||||
--chain-reply-to::
|
||||
--no-chain-reply-to::
|
||||
If this is set, each email will be sent as a reply to the previous
|
||||
email sent. If disabled with "--no-chain-reply-to", all emails after
|
||||
the first will be sent as replies to the first email sent. When using
|
||||
this, it is recommended that the first file given be an overview of the
|
||||
entire patch series.
|
||||
Default is the value of the 'sendemail.chainreplyto' configuration
|
||||
value; if that is unspecified, default to --chain-reply-to.
|
||||
--annotate::
|
||||
Review each patch you're about to send in an editor. The setting
|
||||
'sendemail.multiedit' defines if this will spawn one editor per patch
|
||||
or one for all of them at once.
|
||||
|
||||
--compose::
|
||||
Use $GIT_EDITOR, core.editor, $VISUAL, or $EDITOR to edit an
|
||||
introductory message for the patch series.
|
||||
+
|
||||
When '--compose' is used, git send-email will use the From, Subject, and
|
||||
In-Reply-To headers specified in the message. If the body of the message
|
||||
(what you type after the headers and a blank line) only contains blank
|
||||
(or GIT: prefixed) lines the summary won't be sent, but From, Subject,
|
||||
and In-Reply-To headers will be used unless they are removed.
|
||||
+
|
||||
Missing From or In-Reply-To headers will be prompted for.
|
||||
|
||||
--from::
|
||||
--from=<address>::
|
||||
Specify the sender of the emails. This will default to
|
||||
the value GIT_COMMITTER_IDENT, as returned by "git var -l".
|
||||
The user will still be prompted to confirm this entry.
|
||||
|
||||
--in-reply-to::
|
||||
--in-reply-to=<identifier>::
|
||||
Specify the contents of the first In-Reply-To header.
|
||||
Subsequent emails will refer to the previous email
|
||||
instead of this if --chain-reply-to is set (the default)
|
||||
Only necessary if --compose is also set. If --compose
|
||||
is not set, this will be prompted for.
|
||||
|
||||
--signed-off-by-cc::
|
||||
--no-signed-off-by-cc::
|
||||
If this is set, add emails found in Signed-off-by: or Cc: lines to the
|
||||
cc list.
|
||||
Default is the value of 'sendemail.signedoffcc' configuration value;
|
||||
if that is unspecified, default to --signed-off-by-cc.
|
||||
--subject=<string>::
|
||||
Specify the initial subject of the email thread.
|
||||
Only necessary if --compose is also set. If --compose
|
||||
is not set, this will be prompted for.
|
||||
|
||||
--quiet::
|
||||
Make git-send-email less verbose. One line per email should be
|
||||
all that is output.
|
||||
--to=<address>::
|
||||
Specify the primary recipient of the emails generated. Generally, this
|
||||
will be the upstream maintainer of the project involved. Default is the
|
||||
value of the 'sendemail.to' configuration value; if that is unspecified,
|
||||
this will be prompted for.
|
||||
+
|
||||
The --to option must be repeated for each user you want on the to list.
|
||||
|
||||
--identity::
|
||||
A configuration identity. When given, causes values in the
|
||||
'sendemail.<identity>' subsection to take precedence over
|
||||
values in the 'sendemail' section. The default identity is
|
||||
the value of 'sendemail.identity'.
|
||||
|
||||
--smtp-server::
|
||||
Sending
|
||||
~~~~~~~
|
||||
|
||||
--envelope-sender=<address>::
|
||||
Specify the envelope sender used to send the emails.
|
||||
This is useful if your default address is not the address that is
|
||||
subscribed to a list. If you use the sendmail binary, you must have
|
||||
suitable privileges for the -f parameter. Default is the value of
|
||||
the 'sendemail.envelopesender' configuration variable; if that is
|
||||
unspecified, choosing the envelope sender is left to your MTA.
|
||||
|
||||
--smtp-encryption=<encryption>::
|
||||
Specify the encryption to use, either 'ssl' or 'tls'. Any other
|
||||
value reverts to plain SMTP. Default is the value of
|
||||
'sendemail.smtpencryption'.
|
||||
|
||||
--smtp-pass[=<password>]::
|
||||
Password for SMTP-AUTH. The argument is optional: If no
|
||||
argument is specified, then the empty string is used as
|
||||
the password. Default is the value of 'sendemail.smtppass',
|
||||
however '--smtp-pass' always overrides this value.
|
||||
+
|
||||
Furthermore, passwords need not be specified in configuration files
|
||||
or on the command line. If a username has been specified (with
|
||||
'--smtp-user' or a 'sendemail.smtpuser'), but no password has been
|
||||
specified (with '--smtp-pass' or 'sendemail.smtppass'), then the
|
||||
user is prompted for a password while the input is masked for privacy.
|
||||
|
||||
--smtp-server=<host>::
|
||||
If set, specifies the outgoing SMTP server to use (e.g.
|
||||
`smtp.example.com` or a raw IP address). Alternatively it can
|
||||
specify a full pathname of a sendmail-like program instead;
|
||||
@ -93,114 +132,129 @@ The --cc option must be repeated for each user you want on the cc list.
|
||||
`/usr/lib/sendmail` if such program is available, or
|
||||
`localhost` otherwise.
|
||||
|
||||
--smtp-server-port::
|
||||
--smtp-server-port=<port>::
|
||||
Specifies a port different from the default port (SMTP
|
||||
servers typically listen to smtp port 25 and ssmtp port
|
||||
465).
|
||||
|
||||
--smtp-user::
|
||||
Username for SMTP-AUTH. In place of this option, the following
|
||||
configuration variables can be specified:
|
||||
+
|
||||
--
|
||||
* sendemail.smtpuser
|
||||
* sendemail.<identity>.smtpuser (see sendemail.identity).
|
||||
--
|
||||
+
|
||||
However, --smtp-user always overrides these variables.
|
||||
+
|
||||
If a username is not specified (with --smtp-user or a
|
||||
configuration variable), then authentication is not attempted.
|
||||
|
||||
--smtp-pass::
|
||||
Password for SMTP-AUTH. The argument is optional: If no
|
||||
argument is specified, then the empty string is used as
|
||||
the password.
|
||||
+
|
||||
In place of this option, the following configuration variables
|
||||
can be specified:
|
||||
+
|
||||
--
|
||||
* sendemail.smtppass
|
||||
* sendemail.<identity>.smtppass (see sendemail.identity).
|
||||
--
|
||||
+
|
||||
However, --smtp-pass always overrides these variables.
|
||||
+
|
||||
Furthermore, passwords need not be specified in configuration files
|
||||
or on the command line. If a username has been specified (with
|
||||
--smtp-user or a configuration variable), but no password has been
|
||||
specified (with --smtp-pass or a configuration variable), then the
|
||||
user is prompted for a password while the input is masked for privacy.
|
||||
|
||||
--smtp-encryption::
|
||||
Specify the encryption to use, either 'ssl' or 'tls'. Any other
|
||||
value reverts to plain SMTP. Default is the value of
|
||||
'sendemail.smtpencryption'.
|
||||
465). This can be set with 'sendemail.smtpserverport'.
|
||||
|
||||
--smtp-ssl::
|
||||
Legacy alias for '--smtp-encryption=ssl'.
|
||||
Legacy alias for '--smtp-encryption ssl'.
|
||||
|
||||
--subject::
|
||||
Specify the initial subject of the email thread.
|
||||
Only necessary if --compose is also set. If --compose
|
||||
is not set, this will be prompted for.
|
||||
--smtp-user=<user>::
|
||||
Username for SMTP-AUTH. Default is the value of 'sendemail.smtpuser';
|
||||
if a username is not specified (with '--smtp-user' or 'sendemail.smtpuser'),
|
||||
then authentication is not attempted.
|
||||
|
||||
--suppress-from::
|
||||
--no-suppress-from::
|
||||
If this is set, do not add the From: address to the cc: list.
|
||||
Default is the value of 'sendemail.suppressfrom' configuration value;
|
||||
if that is unspecified, default to --no-suppress-from.
|
||||
|
||||
--suppress-cc::
|
||||
Automating
|
||||
~~~~~~~~~~
|
||||
|
||||
--cc-cmd=<command>::
|
||||
Specify a command to execute once per patch file which
|
||||
should generate patch file specific "Cc:" entries.
|
||||
Output of this command must be single email address per line.
|
||||
Default is the value of 'sendemail.cccmd' configuration value.
|
||||
|
||||
--[no-]chain-reply-to=<identifier>::
|
||||
If this is set, each email will be sent as a reply to the previous
|
||||
email sent. If disabled with "--no-chain-reply-to", all emails after
|
||||
the first will be sent as replies to the first email sent. When using
|
||||
this, it is recommended that the first file given be an overview of the
|
||||
entire patch series. Default is the value of the 'sendemail.chainreplyto'
|
||||
configuration value; if that is unspecified, default to --chain-reply-to.
|
||||
|
||||
--identity=<identity>::
|
||||
A configuration identity. When given, causes values in the
|
||||
'sendemail.<identity>' subsection to take precedence over
|
||||
values in the 'sendemail' section. The default identity is
|
||||
the value of 'sendemail.identity'.
|
||||
|
||||
--[no-]signed-off-by-cc::
|
||||
If this is set, add emails found in Signed-off-by: or Cc: lines to the
|
||||
cc list. Default is the value of 'sendemail.signedoffbycc' configuration
|
||||
value; if that is unspecified, default to --signed-off-by-cc.
|
||||
|
||||
--suppress-cc=<category>::
|
||||
Specify an additional category of recipients to suppress the
|
||||
auto-cc of. 'self' will avoid including the sender, 'author' will
|
||||
avoid including the patch author, 'cc' will avoid including anyone
|
||||
mentioned in Cc lines in the patch, 'sob' will avoid including
|
||||
anyone mentioned in Signed-off-by lines, and 'cccmd' will avoid
|
||||
running the --cc-cmd. 'all' will suppress all auto cc values.
|
||||
Default is the value of 'sendemail.suppresscc' configuration value;
|
||||
if that is unspecified, default to 'self' if --suppress-from is
|
||||
specified, as well as 'sob' if --no-signed-off-cc is specified.
|
||||
auto-cc of:
|
||||
+
|
||||
--
|
||||
- 'author' will avoid including the patch author
|
||||
- 'self' will avoid including the sender
|
||||
- 'cc' will avoid including anyone mentioned in Cc lines in the patch header
|
||||
except for self (use 'self' for that).
|
||||
- 'ccbody' will avoid including anyone mentioned in Cc lines in the
|
||||
patch body (commit message) except for self (use 'self' for that).
|
||||
- 'sob' will avoid including anyone mentioned in Signed-off-by lines except
|
||||
for self (use 'self' for that).
|
||||
- 'cccmd' will avoid running the --cc-cmd.
|
||||
- 'body' is equivalent to 'sob' + 'ccbody'
|
||||
- 'all' will suppress all auto cc values.
|
||||
--
|
||||
+
|
||||
Default is the value of 'sendemail.suppresscc' configuration value; if
|
||||
that is unspecified, default to 'self' if --suppress-from is
|
||||
specified, as well as 'body' if --no-signed-off-cc is specified.
|
||||
|
||||
--thread::
|
||||
--no-thread::
|
||||
--[no-]suppress-from::
|
||||
If this is set, do not add the From: address to the cc: list.
|
||||
Default is the value of 'sendemail.suppressfrom' configuration
|
||||
value; if that is unspecified, default to --no-suppress-from.
|
||||
|
||||
--[no-]thread::
|
||||
If this is set, the In-Reply-To header will be set on each email sent.
|
||||
If disabled with "--no-thread", no emails will have the In-Reply-To
|
||||
header set.
|
||||
Default is the value of the 'sendemail.thread' configuration value;
|
||||
if that is unspecified, default to --thread.
|
||||
header set. Default is the value of the 'sendemail.thread' configuration
|
||||
value; if that is unspecified, default to --thread.
|
||||
|
||||
|
||||
Administering
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
--confirm=<mode>::
|
||||
Confirm just before sending:
|
||||
+
|
||||
--
|
||||
- 'always' will always confirm before sending
|
||||
- 'never' will never confirm before sending
|
||||
- 'cc' will confirm before sending when send-email has automatically
|
||||
added addresses from the patch to the Cc list
|
||||
- 'compose' will confirm before sending the first message when using --compose.
|
||||
- 'auto' is equivalent to 'cc' + 'compose'
|
||||
--
|
||||
+
|
||||
Default is the value of 'sendemail.confirm' configuration value; if that
|
||||
is unspecified, default to 'auto' unless any of the suppress options
|
||||
have been specified, in which case default to 'compose'.
|
||||
|
||||
--dry-run::
|
||||
Do everything except actually send the emails.
|
||||
|
||||
--envelope-sender::
|
||||
Specify the envelope sender used to send the emails.
|
||||
This is useful if your default address is not the address that is
|
||||
subscribed to a list. If you use the sendmail binary, you must have
|
||||
suitable privileges for the -f parameter.
|
||||
Default is the value of the 'sendemail.envelopesender' configuration
|
||||
variable; if that is unspecified, choosing the envelope sender is left
|
||||
to your MTA.
|
||||
--quiet::
|
||||
Make git-send-email less verbose. One line per email should be
|
||||
all that is output.
|
||||
|
||||
--to::
|
||||
Specify the primary recipient of the emails generated.
|
||||
Generally, this will be the upstream maintainer of the
|
||||
project involved.
|
||||
Default is the value of the 'sendemail.to' configuration value;
|
||||
if that is unspecified, this will be prompted for.
|
||||
--[no-]validate::
|
||||
Perform sanity checks on patches.
|
||||
Currently, validation means the following:
|
||||
+
|
||||
The --to option must be repeated for each user you want on the to list.
|
||||
--
|
||||
* Warn of patches that contain lines longer than 998 characters; this
|
||||
is due to SMTP limits as described by http://www.ietf.org/rfc/rfc2821.txt.
|
||||
--
|
||||
+
|
||||
Default is the value of 'sendemail.validate'; if this is not set,
|
||||
default to '--validate'.
|
||||
|
||||
--[no-]format-patch::
|
||||
When an argument may be understood either as a reference or as a file name,
|
||||
choose to understand it as a format-patch argument ('--format-patch')
|
||||
or as a file name ('--no-format-patch'). By default, when such a conflict
|
||||
occurs, git send-email will fail.
|
||||
|
||||
|
||||
CONFIGURATION
|
||||
-------------
|
||||
sendemail.identity::
|
||||
The default configuration identity. When specified,
|
||||
'sendemail.<identity>.<item>' will have higher precedence than
|
||||
'sendemail.<item>'. This is useful to declare multiple SMTP
|
||||
identities and to hoist sensitive authentication information
|
||||
out of the repository and into the global configuration file.
|
||||
|
||||
sendemail.aliasesfile::
|
||||
To avoid typing long email addresses, point this to one or more
|
||||
@ -208,40 +262,19 @@ sendemail.aliasesfile::
|
||||
|
||||
sendemail.aliasfiletype::
|
||||
Format of the file(s) specified in sendemail.aliasesfile. Must be
|
||||
one of 'mutt', 'mailrc', 'pine', or 'gnus'.
|
||||
one of 'mutt', 'mailrc', 'pine', 'elm', or 'gnus'.
|
||||
|
||||
sendemail.to::
|
||||
Email address (or alias) to always send to.
|
||||
sendemail.multiedit::
|
||||
If true (default), a single editor instance will be spawned to edit
|
||||
files you have to edit (patches when '--annotate' is used, and the
|
||||
summary when '--compose' is used). If false, files will be edited one
|
||||
after the other, spawning a new editor each time.
|
||||
|
||||
sendemail.cccmd::
|
||||
Command to execute to generate per patch file specific "Cc:"s.
|
||||
sendemail.confirm::
|
||||
Sets the default for whether to confirm before sending. Must be
|
||||
one of 'always', 'never', 'cc', 'compose', or 'auto'. See '--confirm'
|
||||
in the previous section for the meaning of these values.
|
||||
|
||||
sendemail.bcc::
|
||||
Email address (or alias) to always bcc.
|
||||
|
||||
sendemail.chainreplyto::
|
||||
Boolean value specifying the default to the '--chain_reply_to'
|
||||
parameter.
|
||||
|
||||
sendemail.smtpserver::
|
||||
Default SMTP server to use.
|
||||
|
||||
sendemail.smtpserverport::
|
||||
Default SMTP server port to use.
|
||||
|
||||
sendemail.smtpuser::
|
||||
Default SMTP-AUTH username.
|
||||
|
||||
sendemail.smtppass::
|
||||
Default SMTP-AUTH password.
|
||||
|
||||
sendemail.smtpencryption::
|
||||
Default encryption method. Use 'ssl' for SSL (and specify an
|
||||
appropriate port), or 'tls' for TLS. Takes precedence over
|
||||
'smtpssl' if both are specified.
|
||||
|
||||
sendemail.smtpssl::
|
||||
Legacy boolean that sets 'smtpencryption=ssl' if enabled.
|
||||
|
||||
Author
|
||||
------
|
||||
@ -250,10 +283,12 @@ Written by Ryan Anderson <ryan@michonline.com>
|
||||
git-send-email is originally based upon
|
||||
send_lots_of_email.pl by Greg Kroah-Hartman.
|
||||
|
||||
|
||||
Documentation
|
||||
--------------
|
||||
Documentation by Ryan Anderson
|
||||
|
||||
|
||||
GIT
|
||||
---
|
||||
Part of the linkgit:git[1] suite
|
||||
|
@ -18,8 +18,9 @@ of server-side GIT commands implementing the pull/push functionality.
|
||||
The commands can be executed only by the '-c' option; the shell is not
|
||||
interactive.
|
||||
|
||||
Currently, only the 'git-receive-pack' and 'git-upload-pack' commands
|
||||
are permitted to be called, with a single required argument.
|
||||
Currently, only four commands are permitted to be called, 'git-receive-pack'
|
||||
'git-upload-pack' and 'git-upload-archive' with a single required argument, or
|
||||
'cvs server' (to invoke 'git-cvsserver').
|
||||
|
||||
Author
|
||||
------
|
||||
|
@ -45,19 +45,16 @@ OPTIONS
|
||||
and subsequent lines are indented by `indent2` spaces. `width`,
|
||||
`indent1`, and `indent2` default to 76, 6 and 9 respectively.
|
||||
|
||||
FILES
|
||||
-----
|
||||
|
||||
If the file `.mailmap` exists, it will be used for mapping author
|
||||
email addresses to a real author name. One mapping per line, first
|
||||
the author name followed by the email address enclosed by
|
||||
'<' and '>'. Use hash '#' for comments. Example:
|
||||
MAPPING AUTHORS
|
||||
---------------
|
||||
|
||||
The `.mailmap` feature is used to coalesce together commits by the same
|
||||
person in the shortlog, where their name and/or email address was
|
||||
spelled differently.
|
||||
|
||||
include::mailmap.txt[]
|
||||
|
||||
------------
|
||||
# Keep alphabetized
|
||||
Adam Morrow <adam@localhost.localdomain>
|
||||
Eve Jones <eve@laptop.(none)>
|
||||
------------
|
||||
|
||||
Author
|
||||
------
|
||||
|
@ -99,12 +99,12 @@ OPTIONS
|
||||
will show the revisions given by "git rev-list {caret}master
|
||||
topic1 topic2"
|
||||
|
||||
-g::
|
||||
--reflog[=<n>[,<base>]] [<ref>]::
|
||||
Shows <n> most recent ref-log entries for the given
|
||||
ref. If <base> is given, <n> entries going back from
|
||||
that entry. <base> can be specified as count or date.
|
||||
`-g` can be used as a short-hand for this option. When
|
||||
no explicit <ref> parameter is given, it defaults to the
|
||||
When no explicit <ref> parameter is given, it defaults to the
|
||||
current branch (or `HEAD` if it is detached).
|
||||
|
||||
Note that --more, --list, --independent and --merge-base options
|
||||
@ -148,9 +148,10 @@ $ git show-branch master fixes mhf
|
||||
------------------------------------------------
|
||||
|
||||
These three branches all forked from a common commit, [master],
|
||||
whose commit message is "Add 'git show-branch'. "fixes" branch
|
||||
adds one commit 'Introduce "reset type"'. "mhf" branch has many
|
||||
other commits. The current branch is "master".
|
||||
whose commit message is "Add \'git show-branch\'". The "fixes"
|
||||
branch adds one commit "Introduce "reset type" flag to "git reset"".
|
||||
The "mhf" branch adds many other commits. The current branch
|
||||
is "master".
|
||||
|
||||
|
||||
EXAMPLE
|
||||
@ -172,7 +173,7 @@ only the primary branches. In addition, if you happen to be on
|
||||
your topic branch, it is shown as well.
|
||||
|
||||
------------
|
||||
$ git show-branch --reflog='10,1 hour ago' --list master
|
||||
$ git show-branch --reflog="10,1 hour ago" --list master
|
||||
------------
|
||||
|
||||
shows 10 reflog entries going back from the tip as of 1 hour ago.
|
||||
|
19
Documentation/git-stage.txt
Normal file
19
Documentation/git-stage.txt
Normal file
@ -0,0 +1,19 @@
|
||||
git-stage(1)
|
||||
==============
|
||||
|
||||
NAME
|
||||
----
|
||||
git-stage - Add file contents to the staging area
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git stage' args...
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
|
||||
This is a synonym for linkgit:git-add[1]. Please refer to the
|
||||
documentation of that command.
|
@ -12,8 +12,10 @@ SYNOPSIS
|
||||
'git submodule' [--quiet] add [-b branch] [--] <repository> <path>
|
||||
'git submodule' [--quiet] status [--cached] [--] [<path>...]
|
||||
'git submodule' [--quiet] init [--] [<path>...]
|
||||
'git submodule' [--quiet] update [--init] [--] [<path>...]
|
||||
'git submodule' [--quiet] update [--init] [-N|--no-fetch] [--] [<path>...]
|
||||
'git submodule' [--quiet] summary [--summary-limit <n>] [commit] [--] [<path>...]
|
||||
'git submodule' [--quiet] foreach <command>
|
||||
'git submodule' [--quiet] sync [--] [<path>...]
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
@ -123,6 +125,30 @@ summary::
|
||||
in the submodule between the given super project commit and the
|
||||
index or working tree (switched by --cached) are shown.
|
||||
|
||||
foreach::
|
||||
Evaluates an arbitrary shell command in each checked out submodule.
|
||||
The command has access to the variables $path and $sha1:
|
||||
$path is the name of the submodule directory relative to the
|
||||
superproject, and $sha1 is the commit as recorded in the superproject.
|
||||
Any submodules defined in the superproject but not checked out are
|
||||
ignored by this command. Unless given --quiet, foreach prints the name
|
||||
of each submodule before evaluating the command.
|
||||
A non-zero return from the command in any submodule causes
|
||||
the processing to terminate. This can be overridden by adding '|| :'
|
||||
to the end of the command.
|
||||
+
|
||||
As an example, "git submodule foreach 'echo $path `git rev-parse HEAD`' will
|
||||
show the path and currently checked out commit for each submodule.
|
||||
|
||||
sync::
|
||||
Synchronizes submodules' remote URL configuration setting
|
||||
to the value specified in .gitmodules. This is useful when
|
||||
submodule URLs change upstream and you need to update your local
|
||||
repositories accordingly.
|
||||
+
|
||||
"git submodule sync" synchronizes all submodules while
|
||||
"git submodule sync -- A" synchronizes submodule "A" only.
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
-q::
|
||||
@ -146,6 +172,11 @@ OPTIONS
|
||||
(the default). This limit only applies to modified submodules. The
|
||||
size is always limited to 1 for added/deleted/typechanged submodules.
|
||||
|
||||
-N::
|
||||
--no-fetch::
|
||||
This option is only valid for the update command.
|
||||
Don't fetch new objects from the remote site.
|
||||
|
||||
<path>...::
|
||||
Paths to submodule(s). When specified this will restrict the command
|
||||
to only operate on the submodules found at the specified paths.
|
||||
|
@ -85,6 +85,10 @@ COMMANDS
|
||||
specified, the prefix must include a trailing slash.
|
||||
Setting a prefix is useful if you wish to track multiple
|
||||
projects that share a common repository.
|
||||
--ignore-paths=<regex>;;
|
||||
When passed to 'init' or 'clone' this regular expression will
|
||||
be preserved as a config key. See 'fetch' for a description
|
||||
of '--ignore-paths'.
|
||||
|
||||
'fetch'::
|
||||
Fetch unfetched revisions from the Subversion remote we are
|
||||
@ -92,6 +96,41 @@ COMMANDS
|
||||
.git/config file may be specified as an optional command-line
|
||||
argument.
|
||||
|
||||
--localtime;;
|
||||
Store Git commit times in the local timezone instead of UTC. This
|
||||
makes 'git-log' (even without --date=local) show the same times
|
||||
that `svn log` would in the local timezone.
|
||||
|
||||
--parent;;
|
||||
Fetch only from the SVN parent of the current HEAD.
|
||||
|
||||
This doesn't interfere with interoperating with the Subversion
|
||||
repository you cloned from, but if you wish for your local Git
|
||||
repository to be able to interoperate with someone else's local Git
|
||||
repository, either don't use this option or you should both use it in
|
||||
the same local timezone.
|
||||
|
||||
--ignore-paths=<regex>;;
|
||||
This allows one to specify a Perl regular expression that will
|
||||
cause skipping of all matching paths from checkout from SVN.
|
||||
The '--ignore-paths' option should match for every 'fetch'
|
||||
(including automatic fetches due to 'clone', 'dcommit',
|
||||
'rebase', etc) on a given repository.
|
||||
|
||||
config key: svn-remote.<name>.ignore-paths
|
||||
|
||||
If the ignore-paths config key is set and the command
|
||||
line option is also given, both regular expressions
|
||||
will be used.
|
||||
|
||||
Examples:
|
||||
|
||||
--ignore-paths="^doc" - skip "doc*" directory for every
|
||||
fetch.
|
||||
|
||||
--ignore-paths="^[^/]+/(?:branches|tags)" - skip
|
||||
"branches" and "tags" of first level directories.
|
||||
|
||||
'clone'::
|
||||
Runs 'init' and 'fetch'. It will automatically create a
|
||||
directory based on the basename of the URL passed to it;
|
||||
@ -145,10 +184,30 @@ and have no uncommitted changes.
|
||||
reused if a user is later given access to an alternate transport
|
||||
method (e.g. `svn+ssh://` or `https://`) for commit.
|
||||
|
||||
config key: svn-remote.<name>.commiturl
|
||||
|
||||
config key: svn.commiturl (overwrites all svn-remote.<name>.commiturl options)
|
||||
|
||||
Using this option for any other purpose (don't ask)
|
||||
is very strongly discouraged.
|
||||
--
|
||||
|
||||
'branch'::
|
||||
Create a branch in the SVN repository.
|
||||
|
||||
-m;;
|
||||
--message;;
|
||||
Allows to specify the commit message.
|
||||
|
||||
-t;;
|
||||
--tag;;
|
||||
Create a tag by using the tags_subdir instead of the branches_subdir
|
||||
specified during git svn init.
|
||||
|
||||
'tag'::
|
||||
Create a tag in the SVN repository. This is a shorthand for
|
||||
'branch -t'.
|
||||
|
||||
'log'::
|
||||
This should make it easy to look up svn log messages when svn
|
||||
users refer to -r/--revision numbers.
|
||||
@ -341,7 +400,8 @@ config key: svn.authorsfile
|
||||
|
||||
-q::
|
||||
--quiet::
|
||||
Make 'git-svn' less verbose.
|
||||
Make 'git-svn' less verbose. Specify a second time to make it
|
||||
even less verbose.
|
||||
|
||||
--repack[=<n>]::
|
||||
--repack-flags=<flags>::
|
||||
@ -372,7 +432,8 @@ Passed directly to 'git-rebase' when using 'dcommit' if a
|
||||
-n::
|
||||
--dry-run::
|
||||
|
||||
This can be used with the 'dcommit' and 'rebase' commands.
|
||||
This can be used with the 'dcommit', 'rebase', 'branch' and 'tag'
|
||||
commands.
|
||||
|
||||
For 'dcommit', print out the series of git arguments that would show
|
||||
which diffs would be committed to SVN.
|
||||
@ -381,6 +442,9 @@ For 'rebase', display the local branch associated with the upstream svn
|
||||
repository associated with the current branch and the URL of svn
|
||||
repository that will be fetched from.
|
||||
|
||||
For 'branch' and 'tag', display the urls that will be used for copying when
|
||||
creating the branch or tag.
|
||||
|
||||
--
|
||||
|
||||
ADVANCED OPTIONS
|
||||
@ -455,6 +519,14 @@ svn-remote.<name>.rewriteRoot::
|
||||
the repository with a public http:// or svn:// URL in the
|
||||
metadata so users of it will see the public URL.
|
||||
|
||||
svn.brokenSymlinkWorkaround::
|
||||
This disables potentially expensive checks to workaround broken symlinks
|
||||
checked into SVN by broken clients. Set this option to "false" if you
|
||||
track a SVN repository with many empty blobs that are not symlinks.
|
||||
This option may be changed while "git-svn" is running and take effect on
|
||||
the next revision fetched. If unset, git-svn assumes this option to be
|
||||
"true".
|
||||
|
||||
--
|
||||
|
||||
Since the noMetadata, rewriteRoot, useSvnsyncProps and useSvmProps
|
||||
@ -498,6 +570,8 @@ Tracking and contributing to an entire Subversion-managed project
|
||||
git svn clone http://svn.example.com/project -T trunk -b branches -t tags
|
||||
# View all branches and tags you have cloned:
|
||||
git branch -r
|
||||
# Create a new branch in SVN
|
||||
git svn branch waldo
|
||||
# Reset your master to trunk (or any other branch, replacing 'trunk'
|
||||
# with the appropriate name):
|
||||
git reset --hard remotes/trunk
|
||||
@ -614,14 +688,14 @@ listed below are allowed:
|
||||
------------------------------------------------------------------------
|
||||
[svn-remote "project-a"]
|
||||
url = http://server.org/svn
|
||||
fetch = trunk/project-a:refs/remotes/project-a/trunk
|
||||
branches = branches/*/project-a:refs/remotes/project-a/branches/*
|
||||
tags = tags/*/project-a:refs/remotes/project-a/tags/*
|
||||
trunk = trunk/project-a:refs/remotes/project-a/trunk
|
||||
------------------------------------------------------------------------
|
||||
|
||||
Keep in mind that the '*' (asterisk) wildcard of the local ref
|
||||
Keep in mind that the '\*' (asterisk) wildcard of the local ref
|
||||
(right of the ':') *must* be the farthest right path component;
|
||||
however the remote wildcard may be anywhere as long as it's own
|
||||
however the remote wildcard may be anywhere as long as it's an
|
||||
independent path component (surrounded by '/' or EOL). This
|
||||
type of configuration is not automatically created by 'init' and
|
||||
should be manually entered with a text-editor or using 'git-config'.
|
||||
|
@ -12,7 +12,7 @@ SYNOPSIS
|
||||
'git tag' [-a | -s | -u <key-id>] [-f] [-m <msg> | -F <file>]
|
||||
<name> [<commit> | <object>]
|
||||
'git tag' -d <name>...
|
||||
'git tag' [-n[<num>]] -l [<pattern>]
|
||||
'git tag' [-n[<num>]] -l [--contains <commit>] [<pattern>]
|
||||
'git tag' -v <name>...
|
||||
|
||||
DESCRIPTION
|
||||
@ -63,14 +63,18 @@ OPTIONS
|
||||
are printed when using -l.
|
||||
The default is not to print any annotation lines.
|
||||
If no number is given to `-n`, only the first line is printed.
|
||||
If the tag is not annotated, the commit message is displayed instead.
|
||||
|
||||
-l <pattern>::
|
||||
List tags with names that match the given pattern (or all if no pattern is given).
|
||||
Typing "git tag" without arguments, also lists all tags.
|
||||
|
||||
--contains <commit>::
|
||||
Only list tags which contain the specified commit.
|
||||
|
||||
-m <msg>::
|
||||
Use the given tag message (instead of prompting).
|
||||
If multiple `-m` options are given, there values are
|
||||
If multiple `-m` options are given, their values are
|
||||
concatenated as separate paragraphs.
|
||||
Implies `-a` if none of `-a`, `-s`, or `-u <key-id>`
|
||||
is given.
|
||||
@ -207,7 +211,7 @@ determines who are interested in whose tags.
|
||||
|
||||
A one-shot pull is a sign that a commit history is now crossing
|
||||
the boundary between one circle of people (e.g. "people who are
|
||||
primarily interested in networking part of the kernel") who may
|
||||
primarily interested in the networking part of the kernel") who may
|
||||
have their own set of tags (e.g. "this is the third release
|
||||
candidate from the networking group to be proposed for general
|
||||
consumption with 2.6.21 release") to another circle of people
|
||||
|
@ -39,12 +39,6 @@ what they are for:
|
||||
* info/refs
|
||||
|
||||
|
||||
BUGS
|
||||
----
|
||||
When you remove an existing ref, the command fails to update
|
||||
info/refs file unless `--force` flag is given.
|
||||
|
||||
|
||||
Author
|
||||
------
|
||||
Written by Junio C Hamano <gitster@pobox.com>
|
||||
|
@ -26,6 +26,7 @@ The following browsers (or commands) are currently supported:
|
||||
* lynx
|
||||
* dillo
|
||||
* open (this is the default under Mac OS X GUI)
|
||||
* start (this is the default under MinGW)
|
||||
|
||||
Custom commands may also be specified.
|
||||
|
||||
|
@ -9,7 +9,7 @@ git - the stupid content tracker
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git' [--version] [--exec-path[=GIT_EXEC_PATH]]
|
||||
'git' [--version] [--exec-path[=GIT_EXEC_PATH]] [--html-path]
|
||||
[-p|--paginate|--no-pager]
|
||||
[--bare] [--git-dir=GIT_DIR] [--work-tree=GIT_WORK_TREE]
|
||||
[--help] COMMAND [ARGS]
|
||||
@ -43,16 +43,37 @@ unreleased) version of git, that is available from 'master'
|
||||
branch of the `git.git` repository.
|
||||
Documentation for older releases are available here:
|
||||
|
||||
* link:v1.6.0.2/git.html[documentation for release 1.6.0.2]
|
||||
* link:v1.6.2.3/git.html[documentation for release 1.6.2.3]
|
||||
|
||||
* release notes for
|
||||
link:RelNotes-1.6.2.3.txt[1.6.2.3],
|
||||
link:RelNotes-1.6.2.2.txt[1.6.2.2],
|
||||
link:RelNotes-1.6.2.1.txt[1.6.2.1],
|
||||
link:RelNotes-1.6.2.txt[1.6.2].
|
||||
|
||||
* link:v1.6.1.3/git.html[documentation for release 1.6.1.3]
|
||||
|
||||
* release notes for
|
||||
link:RelNotes-1.6.1.3.txt[1.6.1.3],
|
||||
link:RelNotes-1.6.1.2.txt[1.6.1.2],
|
||||
link:RelNotes-1.6.1.1.txt[1.6.1.1],
|
||||
link:RelNotes-1.6.1.txt[1.6.1].
|
||||
|
||||
* link:v1.6.0.6/git.html[documentation for release 1.6.0.6]
|
||||
|
||||
* release notes for
|
||||
link:RelNotes-1.6.0.6.txt[1.6.0.6],
|
||||
link:RelNotes-1.6.0.5.txt[1.6.0.5],
|
||||
link:RelNotes-1.6.0.4.txt[1.6.0.4],
|
||||
link:RelNotes-1.6.0.3.txt[1.6.0.3],
|
||||
link:RelNotes-1.6.0.2.txt[1.6.0.2],
|
||||
link:RelNotes-1.6.0.1.txt[1.6.0.1],
|
||||
link:RelNotes-1.6.0.txt[1.6.0].
|
||||
|
||||
* link:v1.5.6.5/git.html[documentation for release 1.5.6.5]
|
||||
* link:v1.5.6.6/git.html[documentation for release 1.5.6.6]
|
||||
|
||||
* release notes for
|
||||
link:RelNotes-1.5.6.6.txt[1.5.6.6],
|
||||
link:RelNotes-1.5.6.5.txt[1.5.6.5],
|
||||
link:RelNotes-1.5.6.4.txt[1.5.6.4],
|
||||
link:RelNotes-1.5.6.3.txt[1.5.6.3],
|
||||
@ -60,18 +81,22 @@ Documentation for older releases are available here:
|
||||
link:RelNotes-1.5.6.1.txt[1.5.6.1],
|
||||
link:RelNotes-1.5.6.txt[1.5.6].
|
||||
|
||||
* link:v1.5.5.4/git.html[documentation for release 1.5.5.4]
|
||||
* link:v1.5.5.6/git.html[documentation for release 1.5.5.6]
|
||||
|
||||
* release notes for
|
||||
link:RelNotes-1.5.5.6.txt[1.5.5.6],
|
||||
link:RelNotes-1.5.5.5.txt[1.5.5.5],
|
||||
link:RelNotes-1.5.5.4.txt[1.5.5.4],
|
||||
link:RelNotes-1.5.5.3.txt[1.5.5.3],
|
||||
link:RelNotes-1.5.5.2.txt[1.5.5.2],
|
||||
link:RelNotes-1.5.5.1.txt[1.5.5.1],
|
||||
link:RelNotes-1.5.5.txt[1.5.5].
|
||||
|
||||
* link:v1.5.4.5/git.html[documentation for release 1.5.4.5]
|
||||
* link:v1.5.4.7/git.html[documentation for release 1.5.4.7]
|
||||
|
||||
* release notes for
|
||||
link:RelNotes-1.5.4.7.txt[1.5.4.7],
|
||||
link:RelNotes-1.5.4.6.txt[1.5.4.6],
|
||||
link:RelNotes-1.5.4.5.txt[1.5.4.5],
|
||||
link:RelNotes-1.5.4.4.txt[1.5.4.4],
|
||||
link:RelNotes-1.5.4.3.txt[1.5.4.3],
|
||||
@ -155,6 +180,10 @@ help ...`.
|
||||
environment variable. If no path is given, 'git' will print
|
||||
the current setting and then exit.
|
||||
|
||||
--html-path::
|
||||
Print the path to wherever your git HTML documentation is installed
|
||||
and exit.
|
||||
|
||||
-p::
|
||||
--paginate::
|
||||
Pipe all output into 'less' (or if set, $PAGER).
|
||||
|
@ -18,10 +18,10 @@ A `gitattributes` file is a simple text file that gives
|
||||
|
||||
Each line in `gitattributes` file is of form:
|
||||
|
||||
glob attr1 attr2 ...
|
||||
pattern attr1 attr2 ...
|
||||
|
||||
That is, a glob pattern followed by an attributes list,
|
||||
separated by whitespaces. When the glob pattern matches the
|
||||
That is, a pattern followed by an attributes list,
|
||||
separated by whitespaces. When the pattern matches the
|
||||
path in question, the attributes listed on the line are given to
|
||||
the path.
|
||||
|
||||
@ -48,20 +48,21 @@ Set to a value::
|
||||
|
||||
Unspecified::
|
||||
|
||||
No glob pattern matches the path, and nothing says if
|
||||
No pattern matches the path, and nothing says if
|
||||
the path has or does not have the attribute, the
|
||||
attribute for the path is said to be Unspecified.
|
||||
|
||||
When more than one glob pattern matches the path, a later line
|
||||
When more than one pattern matches the path, a later line
|
||||
overrides an earlier line. This overriding is done per
|
||||
attribute.
|
||||
attribute. The rules how the pattern matches paths are the
|
||||
same as in `.gitignore` files; see linkgit:gitignore[5].
|
||||
|
||||
When deciding what attributes are assigned to a path, git
|
||||
consults `$GIT_DIR/info/attributes` file (which has the highest
|
||||
precedence), `.gitattributes` file in the same directory as the
|
||||
path in question, and its parent directories (the further the
|
||||
directory that contains `.gitattributes` is from the path in
|
||||
question, the lower its precedence).
|
||||
path in question, and its parent directories up to the toplevel of the
|
||||
work tree (the further the directory that contains `.gitattributes`
|
||||
is from the path in question, the lower its precedence).
|
||||
|
||||
If you wish to affect only a single repository (i.e., to assign
|
||||
attributes to files that are particular to one user's workflow), then
|
||||
@ -216,10 +217,12 @@ Generating diff text
|
||||
`diff`
|
||||
^^^^^^
|
||||
|
||||
The attribute `diff` affects if 'git-diff' generates textual
|
||||
patch for the path or just says `Binary files differ`. It also
|
||||
can affect what line is shown on the hunk header `@@ -k,l +n,m @@`
|
||||
line.
|
||||
The attribute `diff` affects how 'git' generates diffs for particular
|
||||
files. It can tell git whether to generate a textual patch for the path
|
||||
or to treat the path as a binary file. It can also affect what line is
|
||||
shown on the hunk header `@@ -k,l +n,m @@` line, tell git to use an
|
||||
external command to generate the diff, or ask git to convert binary
|
||||
files to a text format before generating the diff.
|
||||
|
||||
Set::
|
||||
|
||||
@ -230,7 +233,8 @@ Set::
|
||||
Unset::
|
||||
|
||||
A path to which the `diff` attribute is unset will
|
||||
generate `Binary files differ`.
|
||||
generate `Binary files differ` (or a binary patch, if
|
||||
binary patches are enabled).
|
||||
|
||||
Unspecified::
|
||||
|
||||
@ -241,21 +245,21 @@ Unspecified::
|
||||
|
||||
String::
|
||||
|
||||
Diff is shown using the specified custom diff driver.
|
||||
The driver program is given its input using the same
|
||||
calling convention as used for GIT_EXTERNAL_DIFF
|
||||
program. This name is also used for custom hunk header
|
||||
selection.
|
||||
Diff is shown using the specified diff driver. Each driver may
|
||||
specify one or more options, as described in the following
|
||||
section. The options for the diff driver "foo" are defined
|
||||
by the configuration variables in the "diff.foo" section of the
|
||||
git config file.
|
||||
|
||||
|
||||
Defining a custom diff driver
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Defining an external diff driver
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
The definition of a diff driver is done in `gitconfig`, not
|
||||
`gitattributes` file, so strictly speaking this manual page is a
|
||||
wrong place to talk about it. However...
|
||||
|
||||
To define a custom diff driver `jcdiff`, add a section to your
|
||||
To define an external diff driver `jcdiff`, add a section to your
|
||||
`$GIT_DIR/config` file (or `$HOME/.gitconfig` file) like this:
|
||||
|
||||
----------------------------------------------------------------
|
||||
@ -293,7 +297,8 @@ for paths.
|
||||
|
||||
Then, you would define a "diff.tex.xfuncname" configuration to
|
||||
specify a regular expression that matches a line that you would
|
||||
want to appear as the hunk header "TEXT", like this:
|
||||
want to appear as the hunk header "TEXT". Add a section to your
|
||||
`$GIT_DIR/config` file (or `$HOME/.gitconfig` file) like this:
|
||||
|
||||
------------------------
|
||||
[diff "tex"]
|
||||
@ -314,15 +319,83 @@ patterns are available:
|
||||
|
||||
- `bibtex` suitable for files with BibTeX coded references.
|
||||
|
||||
- `cpp` suitable for source code in the C and C++ languages.
|
||||
|
||||
- `html` suitable for HTML/XHTML documents.
|
||||
|
||||
- `java` suitable for source code in the Java language.
|
||||
|
||||
- `objc` suitable for source code in the Objective-C language.
|
||||
|
||||
- `pascal` suitable for source code in the Pascal/Delphi language.
|
||||
|
||||
- `php` suitable for source code in the PHP language.
|
||||
|
||||
- `python` suitable for source code in the Python language.
|
||||
|
||||
- `ruby` suitable for source code in the Ruby language.
|
||||
|
||||
- `tex` suitable for source code for LaTeX documents.
|
||||
|
||||
|
||||
Customizing word diff
|
||||
^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
You can customize the rules that `git diff --color-words` uses to
|
||||
split words in a line, by specifying an appropriate regular expression
|
||||
in the "diff.*.wordRegex" configuration variable. For example, in TeX
|
||||
a backslash followed by a sequence of letters forms a command, but
|
||||
several such commands can be run together without intervening
|
||||
whitespace. To separate them, use a regular expression in your
|
||||
`$GIT_DIR/config` file (or `$HOME/.gitconfig` file) like this:
|
||||
|
||||
------------------------
|
||||
[diff "tex"]
|
||||
wordRegex = "\\\\[a-zA-Z]+|[{}]|\\\\.|[^\\{}[:space:]]+"
|
||||
------------------------
|
||||
|
||||
A built-in pattern is provided for all languages listed in the
|
||||
previous section.
|
||||
|
||||
|
||||
Performing text diffs of binary files
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Sometimes it is desirable to see the diff of a text-converted
|
||||
version of some binary files. For example, a word processor
|
||||
document can be converted to an ASCII text representation, and
|
||||
the diff of the text shown. Even though this conversion loses
|
||||
some information, the resulting diff is useful for human
|
||||
viewing (but cannot be applied directly).
|
||||
|
||||
The `textconv` config option is used to define a program for
|
||||
performing such a conversion. The program should take a single
|
||||
argument, the name of a file to convert, and produce the
|
||||
resulting text on stdout.
|
||||
|
||||
For example, to show the diff of the exif information of a
|
||||
file instead of the binary information (assuming you have the
|
||||
exif tool installed), add the following section to your
|
||||
`$GIT_DIR/config` file (or `$HOME/.gitconfig` file):
|
||||
|
||||
------------------------
|
||||
[diff "jpg"]
|
||||
textconv = exif
|
||||
------------------------
|
||||
|
||||
NOTE: The text conversion is generally a one-way conversion;
|
||||
in this example, we lose the actual image contents and focus
|
||||
just on the text data. This means that diffs generated by
|
||||
textconv are _not_ suitable for applying. For this reason,
|
||||
only `git diff` and the `git log` family of commands (i.e.,
|
||||
log, whatchanged, show) will perform text conversion. `git
|
||||
format-patch` will never generate this output. If you want to
|
||||
send somebody a text-converted diff of a binary file (e.g.,
|
||||
because it quickly conveys the changes you have made), you
|
||||
should generate it separately and send it as a comment _in
|
||||
addition to_ the usual binary diff that you might send.
|
||||
|
||||
|
||||
Performing a three-way merge
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
@ -487,6 +560,23 @@ in the file. E.g. the string `$Format:%H$` will be replaced by the
|
||||
commit hash.
|
||||
|
||||
|
||||
Viewing files in GUI tools
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
`encoding`
|
||||
^^^^^^^^^^
|
||||
|
||||
The value of this attribute specifies the character encoding that should
|
||||
be used by GUI tools (e.g. linkgit:gitk[1] and linkgit:git-gui[1]) to
|
||||
display the contents of the relevant file. Note that due to performance
|
||||
considerations linkgit:gitk[1] does not use this attribute unless you
|
||||
manually enable per-file encodings in its options.
|
||||
|
||||
If this attribute is not set or has an invalid value, the value of the
|
||||
`gui.encoding` configuration variable is used instead
|
||||
(See linkgit:git-config[1]).
|
||||
|
||||
|
||||
USING ATTRIBUTE MACROS
|
||||
----------------------
|
||||
|
||||
|
@ -46,20 +46,20 @@ Here are the rules regarding the "flags" that you should follow when you are
|
||||
scripting git:
|
||||
|
||||
* it's preferred to use the non dashed form of git commands, which means that
|
||||
you should prefer `"git foo"` to `"git-foo"`.
|
||||
you should prefer `git foo` to `git-foo`.
|
||||
|
||||
* splitting short options to separate words (prefer `"git foo -a -b"`
|
||||
to `"git foo -ab"`, the latter may not even work).
|
||||
* splitting short options to separate words (prefer `git foo -a -b`
|
||||
to `git foo -ab`, the latter may not even work).
|
||||
|
||||
* when a command line option takes an argument, use the 'sticked' form. In
|
||||
other words, write `"git foo -oArg"` instead of `"git foo -o Arg"` for short
|
||||
options, and `"git foo --long-opt=Arg"` instead of `"git foo --long-opt Arg"`
|
||||
other words, write `git foo -oArg` instead of `git foo -o Arg` for short
|
||||
options, and `git foo --long-opt=Arg` instead of `git foo --long-opt Arg`
|
||||
for long options. An option that takes optional option-argument must be
|
||||
written in the 'sticked' form.
|
||||
|
||||
* when you give a revision parameter to a command, make sure the parameter is
|
||||
not ambiguous with a name of a file in the work tree. E.g. do not write
|
||||
`"git log -1 HEAD"` but write `"git log -1 HEAD --"`; the former will not work
|
||||
`git log -1 HEAD` but write `git log -1 HEAD --`; the former will not work
|
||||
if you happen to have a file called `HEAD` in the work tree.
|
||||
|
||||
|
||||
@ -99,17 +99,17 @@ usage: git-describe [options] <committish>*
|
||||
|
||||
Negating options
|
||||
~~~~~~~~~~~~~~~~
|
||||
Options with long option names can be negated by prefixing `"--no-"`. For
|
||||
example, `"git branch"` has the option `"--track"` which is 'on' by default. You
|
||||
can use `"--no-track"` to override that behaviour. The same goes for `"--color"`
|
||||
and `"--no-color"`.
|
||||
Options with long option names can be negated by prefixing `--no-`. For
|
||||
example, `git branch` has the option `--track` which is 'on' by default. You
|
||||
can use `--no-track` to override that behaviour. The same goes for `--color`
|
||||
and `--no-color`.
|
||||
|
||||
|
||||
Aggregating short options
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Commands that support the enhanced option parser allow you to aggregate short
|
||||
options. This means that you can for example use `"git rm -rf"` or
|
||||
`"git clean -fdx"`.
|
||||
options. This means that you can for example use `git rm -rf` or
|
||||
`git clean -fdx`.
|
||||
|
||||
|
||||
Separating argument from the option
|
||||
|
@ -899,7 +899,7 @@ file, which had no differences in the `mybranch` branch), and say:
|
||||
----------------
|
||||
Auto-merging hello
|
||||
CONFLICT (content): Merge conflict in hello
|
||||
Automatic merge failed; fix up by hand
|
||||
Automatic merge failed; fix conflicts and then commit the result.
|
||||
----------------
|
||||
|
||||
It tells you that it did an "Automatic merge", which
|
||||
@ -993,7 +993,7 @@ would be different)
|
||||
|
||||
----------------
|
||||
Updating from ae3a2da... to a80b4aa....
|
||||
Fast forward
|
||||
Fast forward (no commit created; -m option ignored)
|
||||
example | 1 +
|
||||
hello | 1 +
|
||||
2 files changed, 2 insertions(+), 0 deletions(-)
|
||||
@ -1243,10 +1243,10 @@ $ git ls-files --stage
|
||||
------------
|
||||
|
||||
In our example of only two files, we did not have unchanged
|
||||
files so only 'example' resulted in collapsing, but in real-life
|
||||
large projects, only small number of files change in one commit,
|
||||
and this 'collapsing' tends to trivially merge most of the paths
|
||||
fairly quickly, leaving only a handful the real changes in non-zero
|
||||
files so only 'example' resulted in collapsing. But in real-life
|
||||
large projects, when only a small number of files change in one commit,
|
||||
this 'collapsing' tends to trivially merge most of the paths
|
||||
fairly quickly, leaving only a handful of real changes in non-zero
|
||||
stages.
|
||||
|
||||
To look at only non-zero stages, use `\--unmerged` flag:
|
||||
@ -1265,9 +1265,8 @@ file, using 3-way merge. This is done by giving
|
||||
|
||||
------------
|
||||
$ git merge-index git-merge-one-file hello
|
||||
Auto-merging hello.
|
||||
merge: warning: conflicts during merge
|
||||
ERROR: Merge conflict in hello.
|
||||
Auto-merging hello
|
||||
ERROR: Merge conflict in hello
|
||||
fatal: merge program failed
|
||||
------------
|
||||
|
||||
@ -1447,7 +1446,7 @@ public repository you might want to repack & prune often, or
|
||||
never.
|
||||
|
||||
If you run `git repack` again at this point, it will say
|
||||
"Nothing to pack". Once you continue your development and
|
||||
"Nothing new to pack.". Once you continue your development and
|
||||
accumulate the changes, running `git repack` again will create a
|
||||
new pack, that contains objects created since you packed your
|
||||
repository the last time. We recommend that you pack your project
|
||||
@ -1693,6 +1692,7 @@ SEE ALSO
|
||||
linkgit:gittutorial[7],
|
||||
linkgit:gittutorial-2[7],
|
||||
linkgit:gitcvs-migration[7],
|
||||
linkgit:git-help[1],
|
||||
link:everyday.html[Everyday git],
|
||||
link:user-manual.html[The Git User's Manual]
|
||||
|
||||
|
@ -118,7 +118,7 @@ Importing a CVS archive
|
||||
First, install version 2.1 or higher of cvsps from
|
||||
link:http://www.cobite.com/cvsps/[http://www.cobite.com/cvsps/] and make
|
||||
sure it is in your path. Then cd to a checked out CVS working directory
|
||||
of the project you are interested in and run 'git-cvsimport':
|
||||
of the project you are interested in and run linkgit:git-cvsimport[1]:
|
||||
|
||||
-------------------------------------------
|
||||
$ git cvsimport -C <destination> <module>
|
||||
|
@ -15,11 +15,15 @@ DESCRIPTION
|
||||
|
||||
Hooks are little scripts you can place in `$GIT_DIR/hooks`
|
||||
directory to trigger action at certain points. When
|
||||
'git-init' is run, a handful example hooks are copied in the
|
||||
'git-init' is run, a handful of example hooks are copied into the
|
||||
`hooks` directory of the new repository, but by default they are
|
||||
all disabled. To enable a hook, rename it by removing its `.sample`
|
||||
suffix.
|
||||
|
||||
NOTE: It is also a requirement for a given hook to be executable.
|
||||
However - in a freshly initialized repository - the `.sample` files are
|
||||
executable by default.
|
||||
|
||||
This document describes the currently defined hooks.
|
||||
|
||||
applypatch-msg
|
||||
@ -86,7 +90,7 @@ This hook is invoked by 'git-commit' right after preparing the
|
||||
default log message, and before the editor is started.
|
||||
|
||||
It takes one to three parameters. The first is the name of the file
|
||||
that the commit log message. The second is the source of the commit
|
||||
that contains the commit log message. The second is the source of the commit
|
||||
message, and can be: `message` (if a `-m` or `-F` option was
|
||||
given); `template` (if a `-t` option was given or the
|
||||
configuration option `commit.template` is set); `merge` (if the
|
||||
@ -147,6 +151,10 @@ indicating whether the checkout was a branch checkout (changing branches,
|
||||
flag=1) or a file checkout (retrieving a file from the index, flag=0).
|
||||
This hook cannot affect the outcome of 'git-checkout'.
|
||||
|
||||
It is also run after 'git-clone', unless the --no-checkout (-n) option is
|
||||
used. The first parameter given to the hook is the null-ref, the second the
|
||||
ref of the new HEAD and the flag is always 1.
|
||||
|
||||
This hook can be used to perform repository validity checks, auto-display
|
||||
differences from the previous HEAD if different, or set working dir metadata
|
||||
properties.
|
||||
|
@ -31,8 +31,8 @@ precedence, the last matching pattern decides the outcome):
|
||||
|
||||
* Patterns read from a `.gitignore` file in the same directory
|
||||
as the path, or in any parent directory, with patterns in the
|
||||
higher level files (up to the root) being overridden by those in
|
||||
lower level files down to the directory containing the file.
|
||||
higher level files (up to the toplevel of the work tree) being overridden
|
||||
by those in lower level files down to the directory containing the file.
|
||||
These patterns match relative to the location of the
|
||||
`.gitignore` file. A project normally includes such
|
||||
`.gitignore` files in its repository, containing patterns for
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user