Documentation: add git user's manual

The goals are:

	- Readable from beginning to end in order without having read
	  any other git documentation beforehand.
	- Helpful section names and cross-references, so it's not too
	  hard to skip around some if you need to.
	- Organized to allow it to grow much larger (unlike the
	  tutorials)

It's more liesurely than tutorial.txt, but tries to stay focused on
practical how-to stuff.  It adds a discussion of how to resolve merge
conflicts, and partial instructions on setting up and dealing with a
public repository.

I've lifted a little bit from "branching and merging" (e.g., some of the
discussion of history diagrams), and could probably steal more if that's
OK.  (Similarly anyone should of course feel free to reuse bits of this
if any parts seem more useful than the whole.)

There's a lot of detail on managing branches and using git-fetch, just
because those are essential even to people needing read-only access
(e.g., kernel testers).  I think those sections will be much shorter
once the new "git remote" command and the disconnected checkouts are
taken into account.

I do feel bad about adding yet another piece of documentation, but I we
need something that goes through all the basics in a logical order, and
I wasn't seeing how to grow the tutorials into that.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
4 files changed
tree: 8226b4f70f272eaed7538e33d626e6aa2252bae1
  1. arm/
  2. compat/
  3. contrib/
  4. Documentation/
  5. gitweb/
  6. mozilla-sha1/
  7. perl/
  8. ppc/
  9. t/
  10. templates/
  11. xdiff/
  12. .gitignore
  13. .mailmap
  14. alloc.c
  15. archive-tar.c
  16. archive-zip.c
  17. archive.h
  18. base85.c
  19. blob.c
  20. blob.h
  21. builtin-add.c
  22. builtin-annotate.c
  23. builtin-apply.c
  24. builtin-archive.c
  25. builtin-blame.c
  26. builtin-branch.c
  27. builtin-cat-file.c
  28. builtin-check-ref-format.c
  29. builtin-checkout-index.c
  30. builtin-commit-tree.c
  31. builtin-count-objects.c
  32. builtin-diff-files.c
  33. builtin-diff-index.c
  34. builtin-diff-stages.c
  35. builtin-diff-tree.c
  36. builtin-diff.c
  37. builtin-fmt-merge-msg.c
  38. builtin-for-each-ref.c
  39. builtin-grep.c
  40. builtin-init-db.c
  41. builtin-log.c
  42. builtin-ls-files.c
  43. builtin-ls-tree.c
  44. builtin-mailinfo.c
  45. builtin-mailsplit.c
  46. builtin-merge-file.c
  47. builtin-mv.c
  48. builtin-name-rev.c
  49. builtin-pack-objects.c
  50. builtin-pack-refs.c
  51. builtin-prune-packed.c
  52. builtin-prune.c
  53. builtin-push.c
  54. builtin-read-tree.c
  55. builtin-reflog.c
  56. builtin-repo-config.c
  57. builtin-rerere.c
  58. builtin-rev-list.c
  59. builtin-rev-parse.c
  60. builtin-rm.c
  61. builtin-runstatus.c
  62. builtin-shortlog.c
  63. builtin-show-branch.c
  64. builtin-show-ref.c
  65. builtin-stripspace.c
  66. builtin-symbolic-ref.c
  67. builtin-tar-tree.c
  68. builtin-unpack-objects.c
  69. builtin-update-index.c
  70. builtin-update-ref.c
  71. builtin-upload-archive.c
  72. builtin-verify-pack.c
  73. builtin-write-tree.c
  74. builtin.h
  75. cache-tree.c
  76. cache-tree.h
  77. cache.h
  78. check-builtins.sh
  79. check-racy.c
  80. color.c
  81. color.h
  82. combine-diff.c
  83. commit.c
  84. commit.h
  85. config.c
  86. config.mak.in
  87. configure.ac
  88. connect.c
  89. convert-objects.c
  90. copy.c
  91. COPYING
  92. csum-file.c
  93. csum-file.h
  94. ctype.c
  95. daemon.c
  96. date.c
  97. delta.h
  98. describe.c
  99. diff-delta.c
  100. diff-lib.c
  101. diff.c
  102. diff.h
  103. diffcore-break.c
  104. diffcore-delta.c
  105. diffcore-order.c
  106. diffcore-pickaxe.c
  107. diffcore-rename.c
  108. diffcore.h
  109. dir.c
  110. dir.h
  111. dump-cache-tree.c
  112. entry.c
  113. environment.c
  114. exec_cmd.c
  115. exec_cmd.h
  116. fetch-pack.c
  117. fetch.c
  118. fetch.h
  119. fsck-objects.c
  120. generate-cmdlist.sh
  121. git-add--interactive.perl
  122. git-am.sh
  123. git-applymbox.sh
  124. git-applypatch.sh
  125. git-archimport.perl
  126. git-bisect.sh
  127. git-checkout.sh
  128. git-clean.sh
  129. git-clone.sh
  130. git-commit.sh
  131. git-compat-util.h
  132. git-cvsexportcommit.perl
  133. git-cvsimport.perl
  134. git-cvsserver.perl
  135. git-fetch.sh
  136. git-gc.sh
  137. git-instaweb.sh
  138. git-lost-found.sh
  139. git-ls-remote.sh
  140. git-merge-octopus.sh
  141. git-merge-one-file.sh
  142. git-merge-ours.sh
  143. git-merge-resolve.sh
  144. git-merge-stupid.sh
  145. git-merge.sh
  146. git-p4import.py
  147. git-parse-remote.sh
  148. git-pull.sh
  149. git-quiltimport.sh
  150. git-rebase.sh
  151. git-relink.perl
  152. git-repack.sh
  153. git-request-pull.sh
  154. git-rerere.perl
  155. git-reset.sh
  156. git-resolve.sh
  157. git-revert.sh
  158. git-send-email.perl
  159. git-sh-setup.sh
  160. git-svn.perl
  161. git-svnimport.perl
  162. git-tag.sh
  163. git-verify-tag.sh
  164. GIT-VERSION-GEN
  165. git.c
  166. git.spec.in
  167. gitk
  168. grep.c
  169. grep.h
  170. hash-object.c
  171. help.c
  172. http-fetch.c
  173. http-push.c
  174. http.c
  175. http.h
  176. ident.c
  177. imap-send.c
  178. index-pack.c
  179. INSTALL
  180. interpolate.c
  181. interpolate.h
  182. list-objects.c
  183. list-objects.h
  184. local-fetch.c
  185. lockfile.c
  186. log-tree.c
  187. log-tree.h
  188. Makefile
  189. merge-base.c
  190. merge-file.c
  191. merge-index.c
  192. merge-recursive.c
  193. merge-tree.c
  194. mktag.c
  195. mktree.c
  196. object-refs.c
  197. object.c
  198. object.h
  199. pack-check.c
  200. pack-redundant.c
  201. pack.h
  202. pager.c
  203. patch-delta.c
  204. patch-id.c
  205. path-list.c
  206. path-list.h
  207. path.c
  208. peek-remote.c
  209. pkt-line.c
  210. pkt-line.h
  211. quote.c
  212. quote.h
  213. read-cache.c
  214. README
  215. receive-pack.c
  216. refs.c
  217. refs.h
  218. revision.c
  219. revision.h
  220. rsh.c
  221. rsh.h
  222. run-command.c
  223. run-command.h
  224. send-pack.c
  225. server-info.c
  226. setup.c
  227. sha1_file.c
  228. sha1_name.c
  229. shallow.c
  230. shell.c
  231. show-index.c
  232. sideband.c
  233. sideband.h
  234. ssh-fetch.c
  235. ssh-pull.c
  236. ssh-push.c
  237. ssh-upload.c
  238. strbuf.c
  239. strbuf.h
  240. tag.c
  241. tag.h
  242. tar.h
  243. test-date.c
  244. test-delta.c
  245. test-sha1.c
  246. test-sha1.sh
  247. trace.c
  248. tree-diff.c
  249. tree-walk.c
  250. tree-walk.h
  251. tree.c
  252. tree.h
  253. unpack-file.c
  254. unpack-trees.c
  255. unpack-trees.h
  256. update-server-info.c
  257. upload-pack.c
  258. usage.c
  259. utf8.c
  260. utf8.h
  261. var.c
  262. write_or_die.c
  263. wt-status.c
  264. wt-status.h
  265. xdiff-interface.c
  266. xdiff-interface.h