Documentation / git.txton commit doc: gitrevisions - clarify 'latter case' is revision walk (8cf5739)
   1git(1)
   2======
   3
   4NAME
   5----
   6git - the stupid content tracker
   7
   8
   9SYNOPSIS
  10--------
  11[verse]
  12'git' [--version] [--help] [-C <path>] [-c <name>=<value>]
  13    [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
  14    [-p|--paginate|--no-pager] [--no-replace-objects] [--bare]
  15    [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
  16    <command> [<args>]
  17
  18DESCRIPTION
  19-----------
  20Git is a fast, scalable, distributed revision control system with an
  21unusually rich command set that provides both high-level operations
  22and full access to internals.
  23
  24See linkgit:gittutorial[7] to get started, then see
  25linkgit:giteveryday[7] for a useful minimum set of
  26commands.  The link:user-manual.html[Git User's Manual] has a more
  27in-depth introduction.
  28
  29After you mastered the basic concepts, you can come back to this
  30page to learn what commands Git offers.  You can learn more about
  31individual Git commands with "git help command".  linkgit:gitcli[7]
  32manual page gives you an overview of the command-line command syntax.
  33
  34Formatted and hyperlinked version of the latest Git documentation
  35can be viewed at `http://git-htmldocs.googlecode.com/git/git.html`.
  36
  37ifdef::stalenotes[]
  38[NOTE]
  39============
  40
  41You are reading the documentation for the latest (possibly
  42unreleased) version of Git, that is available from the 'master'
  43branch of the `git.git` repository.
  44Documentation for older releases are available here:
  45
  46* link:v2.6.6/git.html[documentation for release 2.6.6]
  47
  48* release notes for
  49  link:RelNotes/2.6.6.txt[2.6.6],
  50  link:RelNotes/2.6.5.txt[2.6.5],
  51  link:RelNotes/2.6.4.txt[2.6.4],
  52  link:RelNotes/2.6.3.txt[2.6.3],
  53  link:RelNotes/2.6.2.txt[2.6.2],
  54  link:RelNotes/2.6.1.txt[2.6.1],
  55  link:RelNotes/2.6.0.txt[2.6].
  56
  57* link:v2.5.5/git.html[documentation for release 2.5.5]
  58
  59* release notes for
  60  link:RelNotes/2.5.5.txt[2.5.5],
  61  link:RelNotes/2.5.4.txt[2.5.4],
  62  link:RelNotes/2.5.3.txt[2.5.3],
  63  link:RelNotes/2.5.2.txt[2.5.2],
  64  link:RelNotes/2.5.1.txt[2.5.1],
  65  link:RelNotes/2.5.0.txt[2.5].
  66
  67* link:v2.4.11/git.html[documentation for release 2.4.11]
  68
  69* release notes for
  70  link:RelNotes/2.4.11.txt[2.4.11],
  71  link:RelNotes/2.4.10.txt[2.4.10],
  72  link:RelNotes/2.4.9.txt[2.4.9],
  73  link:RelNotes/2.4.8.txt[2.4.8],
  74  link:RelNotes/2.4.7.txt[2.4.7],
  75  link:RelNotes/2.4.6.txt[2.4.6],
  76  link:RelNotes/2.4.5.txt[2.4.5],
  77  link:RelNotes/2.4.4.txt[2.4.4],
  78  link:RelNotes/2.4.3.txt[2.4.3],
  79  link:RelNotes/2.4.2.txt[2.4.2],
  80  link:RelNotes/2.4.1.txt[2.4.1],
  81  link:RelNotes/2.4.0.txt[2.4].
  82
  83* link:v2.3.10/git.html[documentation for release 2.3.10]
  84
  85* release notes for
  86  link:RelNotes/2.3.10.txt[2.3.10],
  87  link:RelNotes/2.3.9.txt[2.3.9],
  88  link:RelNotes/2.3.8.txt[2.3.8],
  89  link:RelNotes/2.3.7.txt[2.3.7],
  90  link:RelNotes/2.3.6.txt[2.3.6],
  91  link:RelNotes/2.3.5.txt[2.3.5],
  92  link:RelNotes/2.3.4.txt[2.3.4],
  93  link:RelNotes/2.3.3.txt[2.3.3],
  94  link:RelNotes/2.3.2.txt[2.3.2],
  95  link:RelNotes/2.3.1.txt[2.3.1],
  96  link:RelNotes/2.3.0.txt[2.3].
  97
  98* link:v2.2.3/git.html[documentation for release 2.2.3]
  99
 100* release notes for
 101  link:RelNotes/2.2.3.txt[2.2.3],
 102  link:RelNotes/2.2.2.txt[2.2.2],
 103  link:RelNotes/2.2.1.txt[2.2.1],
 104  link:RelNotes/2.2.0.txt[2.2].
 105
 106* link:v2.1.4/git.html[documentation for release 2.1.4]
 107
 108* release notes for
 109  link:RelNotes/2.1.4.txt[2.1.4],
 110  link:RelNotes/2.1.3.txt[2.1.3],
 111  link:RelNotes/2.1.2.txt[2.1.2],
 112  link:RelNotes/2.1.1.txt[2.1.1],
 113  link:RelNotes/2.1.0.txt[2.1].
 114
 115* link:v2.0.5/git.html[documentation for release 2.0.5]
 116
 117* release notes for
 118  link:RelNotes/2.0.5.txt[2.0.5],
 119  link:RelNotes/2.0.4.txt[2.0.4],
 120  link:RelNotes/2.0.3.txt[2.0.3],
 121  link:RelNotes/2.0.2.txt[2.0.2],
 122  link:RelNotes/2.0.1.txt[2.0.1],
 123  link:RelNotes/2.0.0.txt[2.0.0].
 124
 125* link:v1.9.5/git.html[documentation for release 1.9.5]
 126
 127* release notes for
 128  link:RelNotes/1.9.5.txt[1.9.5],
 129  link:RelNotes/1.9.4.txt[1.9.4],
 130  link:RelNotes/1.9.3.txt[1.9.3],
 131  link:RelNotes/1.9.2.txt[1.9.2],
 132  link:RelNotes/1.9.1.txt[1.9.1],
 133  link:RelNotes/1.9.0.txt[1.9.0].
 134
 135* link:v1.8.5.6/git.html[documentation for release 1.8.5.6]
 136
 137* release notes for
 138  link:RelNotes/1.8.5.6.txt[1.8.5.6],
 139  link:RelNotes/1.8.5.5.txt[1.8.5.5],
 140  link:RelNotes/1.8.5.4.txt[1.8.5.4],
 141  link:RelNotes/1.8.5.3.txt[1.8.5.3],
 142  link:RelNotes/1.8.5.2.txt[1.8.5.2],
 143  link:RelNotes/1.8.5.1.txt[1.8.5.1],
 144  link:RelNotes/1.8.5.txt[1.8.5].
 145
 146* link:v1.8.4.5/git.html[documentation for release 1.8.4.5]
 147
 148* release notes for
 149  link:RelNotes/1.8.4.5.txt[1.8.4.5],
 150  link:RelNotes/1.8.4.4.txt[1.8.4.4],
 151  link:RelNotes/1.8.4.3.txt[1.8.4.3],
 152  link:RelNotes/1.8.4.2.txt[1.8.4.2],
 153  link:RelNotes/1.8.4.1.txt[1.8.4.1],
 154  link:RelNotes/1.8.4.txt[1.8.4].
 155
 156* link:v1.8.3.4/git.html[documentation for release 1.8.3.4]
 157
 158* release notes for
 159  link:RelNotes/1.8.3.4.txt[1.8.3.4],
 160  link:RelNotes/1.8.3.3.txt[1.8.3.3],
 161  link:RelNotes/1.8.3.2.txt[1.8.3.2],
 162  link:RelNotes/1.8.3.1.txt[1.8.3.1],
 163  link:RelNotes/1.8.3.txt[1.8.3].
 164
 165* link:v1.8.2.3/git.html[documentation for release 1.8.2.3]
 166
 167* release notes for
 168  link:RelNotes/1.8.2.3.txt[1.8.2.3],
 169  link:RelNotes/1.8.2.2.txt[1.8.2.2],
 170  link:RelNotes/1.8.2.1.txt[1.8.2.1],
 171  link:RelNotes/1.8.2.txt[1.8.2].
 172
 173* link:v1.8.1.6/git.html[documentation for release 1.8.1.6]
 174
 175* release notes for
 176  link:RelNotes/1.8.1.6.txt[1.8.1.6],
 177  link:RelNotes/1.8.1.5.txt[1.8.1.5],
 178  link:RelNotes/1.8.1.4.txt[1.8.1.4],
 179  link:RelNotes/1.8.1.3.txt[1.8.1.3],
 180  link:RelNotes/1.8.1.2.txt[1.8.1.2],
 181  link:RelNotes/1.8.1.1.txt[1.8.1.1],
 182  link:RelNotes/1.8.1.txt[1.8.1].
 183
 184* link:v1.8.0.3/git.html[documentation for release 1.8.0.3]
 185
 186* release notes for
 187  link:RelNotes/1.8.0.3.txt[1.8.0.3],
 188  link:RelNotes/1.8.0.2.txt[1.8.0.2],
 189  link:RelNotes/1.8.0.1.txt[1.8.0.1],
 190  link:RelNotes/1.8.0.txt[1.8.0].
 191
 192* link:v1.7.12.4/git.html[documentation for release 1.7.12.4]
 193
 194* release notes for
 195  link:RelNotes/1.7.12.4.txt[1.7.12.4],
 196  link:RelNotes/1.7.12.3.txt[1.7.12.3],
 197  link:RelNotes/1.7.12.2.txt[1.7.12.2],
 198  link:RelNotes/1.7.12.1.txt[1.7.12.1],
 199  link:RelNotes/1.7.12.txt[1.7.12].
 200
 201* link:v1.7.11.7/git.html[documentation for release 1.7.11.7]
 202
 203* release notes for
 204  link:RelNotes/1.7.11.7.txt[1.7.11.7],
 205  link:RelNotes/1.7.11.6.txt[1.7.11.6],
 206  link:RelNotes/1.7.11.5.txt[1.7.11.5],
 207  link:RelNotes/1.7.11.4.txt[1.7.11.4],
 208  link:RelNotes/1.7.11.3.txt[1.7.11.3],
 209  link:RelNotes/1.7.11.2.txt[1.7.11.2],
 210  link:RelNotes/1.7.11.1.txt[1.7.11.1],
 211  link:RelNotes/1.7.11.txt[1.7.11].
 212
 213* link:v1.7.10.5/git.html[documentation for release 1.7.10.5]
 214
 215* release notes for
 216  link:RelNotes/1.7.10.5.txt[1.7.10.5],
 217  link:RelNotes/1.7.10.4.txt[1.7.10.4],
 218  link:RelNotes/1.7.10.3.txt[1.7.10.3],
 219  link:RelNotes/1.7.10.2.txt[1.7.10.2],
 220  link:RelNotes/1.7.10.1.txt[1.7.10.1],
 221  link:RelNotes/1.7.10.txt[1.7.10].
 222
 223* link:v1.7.9.7/git.html[documentation for release 1.7.9.7]
 224
 225* release notes for
 226  link:RelNotes/1.7.9.7.txt[1.7.9.7],
 227  link:RelNotes/1.7.9.6.txt[1.7.9.6],
 228  link:RelNotes/1.7.9.5.txt[1.7.9.5],
 229  link:RelNotes/1.7.9.4.txt[1.7.9.4],
 230  link:RelNotes/1.7.9.3.txt[1.7.9.3],
 231  link:RelNotes/1.7.9.2.txt[1.7.9.2],
 232  link:RelNotes/1.7.9.1.txt[1.7.9.1],
 233  link:RelNotes/1.7.9.txt[1.7.9].
 234
 235* link:v1.7.8.6/git.html[documentation for release 1.7.8.6]
 236
 237* release notes for
 238  link:RelNotes/1.7.8.6.txt[1.7.8.6],
 239  link:RelNotes/1.7.8.5.txt[1.7.8.5],
 240  link:RelNotes/1.7.8.4.txt[1.7.8.4],
 241  link:RelNotes/1.7.8.3.txt[1.7.8.3],
 242  link:RelNotes/1.7.8.2.txt[1.7.8.2],
 243  link:RelNotes/1.7.8.1.txt[1.7.8.1],
 244  link:RelNotes/1.7.8.txt[1.7.8].
 245
 246* link:v1.7.7.7/git.html[documentation for release 1.7.7.7]
 247
 248* release notes for
 249  link:RelNotes/1.7.7.7.txt[1.7.7.7],
 250  link:RelNotes/1.7.7.6.txt[1.7.7.6],
 251  link:RelNotes/1.7.7.5.txt[1.7.7.5],
 252  link:RelNotes/1.7.7.4.txt[1.7.7.4],
 253  link:RelNotes/1.7.7.3.txt[1.7.7.3],
 254  link:RelNotes/1.7.7.2.txt[1.7.7.2],
 255  link:RelNotes/1.7.7.1.txt[1.7.7.1],
 256  link:RelNotes/1.7.7.txt[1.7.7].
 257
 258* link:v1.7.6.6/git.html[documentation for release 1.7.6.6]
 259
 260* release notes for
 261  link:RelNotes/1.7.6.6.txt[1.7.6.6],
 262  link:RelNotes/1.7.6.5.txt[1.7.6.5],
 263  link:RelNotes/1.7.6.4.txt[1.7.6.4],
 264  link:RelNotes/1.7.6.3.txt[1.7.6.3],
 265  link:RelNotes/1.7.6.2.txt[1.7.6.2],
 266  link:RelNotes/1.7.6.1.txt[1.7.6.1],
 267  link:RelNotes/1.7.6.txt[1.7.6].
 268
 269* link:v1.7.5.4/git.html[documentation for release 1.7.5.4]
 270
 271* release notes for
 272  link:RelNotes/1.7.5.4.txt[1.7.5.4],
 273  link:RelNotes/1.7.5.3.txt[1.7.5.3],
 274  link:RelNotes/1.7.5.2.txt[1.7.5.2],
 275  link:RelNotes/1.7.5.1.txt[1.7.5.1],
 276  link:RelNotes/1.7.5.txt[1.7.5].
 277
 278* link:v1.7.4.5/git.html[documentation for release 1.7.4.5]
 279
 280* release notes for
 281  link:RelNotes/1.7.4.5.txt[1.7.4.5],
 282  link:RelNotes/1.7.4.4.txt[1.7.4.4],
 283  link:RelNotes/1.7.4.3.txt[1.7.4.3],
 284  link:RelNotes/1.7.4.2.txt[1.7.4.2],
 285  link:RelNotes/1.7.4.1.txt[1.7.4.1],
 286  link:RelNotes/1.7.4.txt[1.7.4].
 287
 288* link:v1.7.3.5/git.html[documentation for release 1.7.3.5]
 289
 290* release notes for
 291  link:RelNotes/1.7.3.5.txt[1.7.3.5],
 292  link:RelNotes/1.7.3.4.txt[1.7.3.4],
 293  link:RelNotes/1.7.3.3.txt[1.7.3.3],
 294  link:RelNotes/1.7.3.2.txt[1.7.3.2],
 295  link:RelNotes/1.7.3.1.txt[1.7.3.1],
 296  link:RelNotes/1.7.3.txt[1.7.3].
 297
 298* link:v1.7.2.5/git.html[documentation for release 1.7.2.5]
 299
 300* release notes for
 301  link:RelNotes/1.7.2.5.txt[1.7.2.5],
 302  link:RelNotes/1.7.2.4.txt[1.7.2.4],
 303  link:RelNotes/1.7.2.3.txt[1.7.2.3],
 304  link:RelNotes/1.7.2.2.txt[1.7.2.2],
 305  link:RelNotes/1.7.2.1.txt[1.7.2.1],
 306  link:RelNotes/1.7.2.txt[1.7.2].
 307
 308* link:v1.7.1.4/git.html[documentation for release 1.7.1.4]
 309
 310* release notes for
 311  link:RelNotes/1.7.1.4.txt[1.7.1.4],
 312  link:RelNotes/1.7.1.3.txt[1.7.1.3],
 313  link:RelNotes/1.7.1.2.txt[1.7.1.2],
 314  link:RelNotes/1.7.1.1.txt[1.7.1.1],
 315  link:RelNotes/1.7.1.txt[1.7.1].
 316
 317* link:v1.7.0.9/git.html[documentation for release 1.7.0.9]
 318
 319* release notes for
 320  link:RelNotes/1.7.0.9.txt[1.7.0.9],
 321  link:RelNotes/1.7.0.8.txt[1.7.0.8],
 322  link:RelNotes/1.7.0.7.txt[1.7.0.7],
 323  link:RelNotes/1.7.0.6.txt[1.7.0.6],
 324  link:RelNotes/1.7.0.5.txt[1.7.0.5],
 325  link:RelNotes/1.7.0.4.txt[1.7.0.4],
 326  link:RelNotes/1.7.0.3.txt[1.7.0.3],
 327  link:RelNotes/1.7.0.2.txt[1.7.0.2],
 328  link:RelNotes/1.7.0.1.txt[1.7.0.1],
 329  link:RelNotes/1.7.0.txt[1.7.0].
 330
 331* link:v1.6.6.3/git.html[documentation for release 1.6.6.3]
 332
 333* release notes for
 334  link:RelNotes/1.6.6.3.txt[1.6.6.3],
 335  link:RelNotes/1.6.6.2.txt[1.6.6.2],
 336  link:RelNotes/1.6.6.1.txt[1.6.6.1],
 337  link:RelNotes/1.6.6.txt[1.6.6].
 338
 339* link:v1.6.5.9/git.html[documentation for release 1.6.5.9]
 340
 341* release notes for
 342  link:RelNotes/1.6.5.9.txt[1.6.5.9],
 343  link:RelNotes/1.6.5.8.txt[1.6.5.8],
 344  link:RelNotes/1.6.5.7.txt[1.6.5.7],
 345  link:RelNotes/1.6.5.6.txt[1.6.5.6],
 346  link:RelNotes/1.6.5.5.txt[1.6.5.5],
 347  link:RelNotes/1.6.5.4.txt[1.6.5.4],
 348  link:RelNotes/1.6.5.3.txt[1.6.5.3],
 349  link:RelNotes/1.6.5.2.txt[1.6.5.2],
 350  link:RelNotes/1.6.5.1.txt[1.6.5.1],
 351  link:RelNotes/1.6.5.txt[1.6.5].
 352
 353* link:v1.6.4.5/git.html[documentation for release 1.6.4.5]
 354
 355* release notes for
 356  link:RelNotes/1.6.4.5.txt[1.6.4.5],
 357  link:RelNotes/1.6.4.4.txt[1.6.4.4],
 358  link:RelNotes/1.6.4.3.txt[1.6.4.3],
 359  link:RelNotes/1.6.4.2.txt[1.6.4.2],
 360  link:RelNotes/1.6.4.1.txt[1.6.4.1],
 361  link:RelNotes/1.6.4.txt[1.6.4].
 362
 363* link:v1.6.3.4/git.html[documentation for release 1.6.3.4]
 364
 365* release notes for
 366  link:RelNotes/1.6.3.4.txt[1.6.3.4],
 367  link:RelNotes/1.6.3.3.txt[1.6.3.3],
 368  link:RelNotes/1.6.3.2.txt[1.6.3.2],
 369  link:RelNotes/1.6.3.1.txt[1.6.3.1],
 370  link:RelNotes/1.6.3.txt[1.6.3].
 371
 372* release notes for
 373  link:RelNotes/1.6.2.5.txt[1.6.2.5],
 374  link:RelNotes/1.6.2.4.txt[1.6.2.4],
 375  link:RelNotes/1.6.2.3.txt[1.6.2.3],
 376  link:RelNotes/1.6.2.2.txt[1.6.2.2],
 377  link:RelNotes/1.6.2.1.txt[1.6.2.1],
 378  link:RelNotes/1.6.2.txt[1.6.2].
 379
 380* link:v1.6.1.3/git.html[documentation for release 1.6.1.3]
 381
 382* release notes for
 383  link:RelNotes/1.6.1.3.txt[1.6.1.3],
 384  link:RelNotes/1.6.1.2.txt[1.6.1.2],
 385  link:RelNotes/1.6.1.1.txt[1.6.1.1],
 386  link:RelNotes/1.6.1.txt[1.6.1].
 387
 388* link:v1.6.0.6/git.html[documentation for release 1.6.0.6]
 389
 390* release notes for
 391  link:RelNotes/1.6.0.6.txt[1.6.0.6],
 392  link:RelNotes/1.6.0.5.txt[1.6.0.5],
 393  link:RelNotes/1.6.0.4.txt[1.6.0.4],
 394  link:RelNotes/1.6.0.3.txt[1.6.0.3],
 395  link:RelNotes/1.6.0.2.txt[1.6.0.2],
 396  link:RelNotes/1.6.0.1.txt[1.6.0.1],
 397  link:RelNotes/1.6.0.txt[1.6.0].
 398
 399* link:v1.5.6.6/git.html[documentation for release 1.5.6.6]
 400
 401* release notes for
 402  link:RelNotes/1.5.6.6.txt[1.5.6.6],
 403  link:RelNotes/1.5.6.5.txt[1.5.6.5],
 404  link:RelNotes/1.5.6.4.txt[1.5.6.4],
 405  link:RelNotes/1.5.6.3.txt[1.5.6.3],
 406  link:RelNotes/1.5.6.2.txt[1.5.6.2],
 407  link:RelNotes/1.5.6.1.txt[1.5.6.1],
 408  link:RelNotes/1.5.6.txt[1.5.6].
 409
 410* link:v1.5.5.6/git.html[documentation for release 1.5.5.6]
 411
 412* release notes for
 413  link:RelNotes/1.5.5.6.txt[1.5.5.6],
 414  link:RelNotes/1.5.5.5.txt[1.5.5.5],
 415  link:RelNotes/1.5.5.4.txt[1.5.5.4],
 416  link:RelNotes/1.5.5.3.txt[1.5.5.3],
 417  link:RelNotes/1.5.5.2.txt[1.5.5.2],
 418  link:RelNotes/1.5.5.1.txt[1.5.5.1],
 419  link:RelNotes/1.5.5.txt[1.5.5].
 420
 421* link:v1.5.4.7/git.html[documentation for release 1.5.4.7]
 422
 423* release notes for
 424  link:RelNotes/1.5.4.7.txt[1.5.4.7],
 425  link:RelNotes/1.5.4.6.txt[1.5.4.6],
 426  link:RelNotes/1.5.4.5.txt[1.5.4.5],
 427  link:RelNotes/1.5.4.4.txt[1.5.4.4],
 428  link:RelNotes/1.5.4.3.txt[1.5.4.3],
 429  link:RelNotes/1.5.4.2.txt[1.5.4.2],
 430  link:RelNotes/1.5.4.1.txt[1.5.4.1],
 431  link:RelNotes/1.5.4.txt[1.5.4].
 432
 433* link:v1.5.3.8/git.html[documentation for release 1.5.3.8]
 434
 435* release notes for
 436  link:RelNotes/1.5.3.8.txt[1.5.3.8],
 437  link:RelNotes/1.5.3.7.txt[1.5.3.7],
 438  link:RelNotes/1.5.3.6.txt[1.5.3.6],
 439  link:RelNotes/1.5.3.5.txt[1.5.3.5],
 440  link:RelNotes/1.5.3.4.txt[1.5.3.4],
 441  link:RelNotes/1.5.3.3.txt[1.5.3.3],
 442  link:RelNotes/1.5.3.2.txt[1.5.3.2],
 443  link:RelNotes/1.5.3.1.txt[1.5.3.1],
 444  link:RelNotes/1.5.3.txt[1.5.3].
 445
 446* link:v1.5.2.5/git.html[documentation for release 1.5.2.5]
 447
 448* release notes for
 449  link:RelNotes/1.5.2.5.txt[1.5.2.5],
 450  link:RelNotes/1.5.2.4.txt[1.5.2.4],
 451  link:RelNotes/1.5.2.3.txt[1.5.2.3],
 452  link:RelNotes/1.5.2.2.txt[1.5.2.2],
 453  link:RelNotes/1.5.2.1.txt[1.5.2.1],
 454  link:RelNotes/1.5.2.txt[1.5.2].
 455
 456* link:v1.5.1.6/git.html[documentation for release 1.5.1.6]
 457
 458* release notes for
 459  link:RelNotes/1.5.1.6.txt[1.5.1.6],
 460  link:RelNotes/1.5.1.5.txt[1.5.1.5],
 461  link:RelNotes/1.5.1.4.txt[1.5.1.4],
 462  link:RelNotes/1.5.1.3.txt[1.5.1.3],
 463  link:RelNotes/1.5.1.2.txt[1.5.1.2],
 464  link:RelNotes/1.5.1.1.txt[1.5.1.1],
 465  link:RelNotes/1.5.1.txt[1.5.1].
 466
 467* link:v1.5.0.7/git.html[documentation for release 1.5.0.7]
 468
 469* release notes for
 470  link:RelNotes/1.5.0.7.txt[1.5.0.7],
 471  link:RelNotes/1.5.0.6.txt[1.5.0.6],
 472  link:RelNotes/1.5.0.5.txt[1.5.0.5],
 473  link:RelNotes/1.5.0.3.txt[1.5.0.3],
 474  link:RelNotes/1.5.0.2.txt[1.5.0.2],
 475  link:RelNotes/1.5.0.1.txt[1.5.0.1],
 476  link:RelNotes/1.5.0.txt[1.5.0].
 477
 478* documentation for release link:v1.4.4.4/git.html[1.4.4.4],
 479  link:v1.3.3/git.html[1.3.3],
 480  link:v1.2.6/git.html[1.2.6],
 481  link:v1.0.13/git.html[1.0.13].
 482
 483============
 484
 485endif::stalenotes[]
 486
 487OPTIONS
 488-------
 489--version::
 490        Prints the Git suite version that the 'git' program came from.
 491
 492--help::
 493        Prints the synopsis and a list of the most commonly used
 494        commands. If the option '--all' or '-a' is given then all
 495        available commands are printed. If a Git command is named this
 496        option will bring up the manual page for that command.
 497+
 498Other options are available to control how the manual page is
 499displayed. See linkgit:git-help[1] for more information,
 500because `git --help ...` is converted internally into `git
 501help ...`.
 502
 503-C <path>::
 504        Run as if git was started in '<path>' instead of the current working
 505        directory.  When multiple `-C` options are given, each subsequent
 506        non-absolute `-C <path>` is interpreted relative to the preceding `-C
 507        <path>`.
 508+
 509This option affects options that expect path name like `--git-dir` and
 510`--work-tree` in that their interpretations of the path names would be
 511made relative to the working directory caused by the `-C` option. For
 512example the following invocations are equivalent:
 513
 514    git --git-dir=a.git --work-tree=b -C c status
 515    git --git-dir=c/a.git --work-tree=c/b status
 516
 517-c <name>=<value>::
 518        Pass a configuration parameter to the command. The value
 519        given will override values from configuration files.
 520        The <name> is expected in the same format as listed by
 521        'git config' (subkeys separated by dots).
 522+
 523Note that omitting the `=` in `git -c foo.bar ...` is allowed and sets
 524`foo.bar` to the boolean true value (just like `[foo]bar` would in a
 525config file). Including the equals but with an empty value (like `git -c
 526foo.bar= ...`) sets `foo.bar` to the empty string.
 527
 528--exec-path[=<path>]::
 529        Path to wherever your core Git programs are installed.
 530        This can also be controlled by setting the GIT_EXEC_PATH
 531        environment variable. If no path is given, 'git' will print
 532        the current setting and then exit.
 533
 534--html-path::
 535        Print the path, without trailing slash, where Git's HTML
 536        documentation is installed and exit.
 537
 538--man-path::
 539        Print the manpath (see `man(1)`) for the man pages for
 540        this version of Git and exit.
 541
 542--info-path::
 543        Print the path where the Info files documenting this
 544        version of Git are installed and exit.
 545
 546-p::
 547--paginate::
 548        Pipe all output into 'less' (or if set, $PAGER) if standard
 549        output is a terminal.  This overrides the `pager.<cmd>`
 550        configuration options (see the "Configuration Mechanism" section
 551        below).
 552
 553--no-pager::
 554        Do not pipe Git output into a pager.
 555
 556--git-dir=<path>::
 557        Set the path to the repository. This can also be controlled by
 558        setting the GIT_DIR environment variable. It can be an absolute
 559        path or relative path to current working directory.
 560
 561--work-tree=<path>::
 562        Set the path to the working tree. It can be an absolute path
 563        or a path relative to the current working directory.
 564        This can also be controlled by setting the GIT_WORK_TREE
 565        environment variable and the core.worktree configuration
 566        variable (see core.worktree in linkgit:git-config[1] for a
 567        more detailed discussion).
 568
 569--namespace=<path>::
 570        Set the Git namespace.  See linkgit:gitnamespaces[7] for more
 571        details.  Equivalent to setting the `GIT_NAMESPACE` environment
 572        variable.
 573
 574--bare::
 575        Treat the repository as a bare repository.  If GIT_DIR
 576        environment is not set, it is set to the current working
 577        directory.
 578
 579--no-replace-objects::
 580        Do not use replacement refs to replace Git objects. See
 581        linkgit:git-replace[1] for more information.
 582
 583--literal-pathspecs::
 584        Treat pathspecs literally (i.e. no globbing, no pathspec magic).
 585        This is equivalent to setting the `GIT_LITERAL_PATHSPECS` environment
 586        variable to `1`.
 587
 588--glob-pathspecs::
 589        Add "glob" magic to all pathspec. This is equivalent to setting
 590        the `GIT_GLOB_PATHSPECS` environment variable to `1`. Disabling
 591        globbing on individual pathspecs can be done using pathspec
 592        magic ":(literal)"
 593
 594--noglob-pathspecs::
 595        Add "literal" magic to all pathspec. This is equivalent to setting
 596        the `GIT_NOGLOB_PATHSPECS` environment variable to `1`. Enabling
 597        globbing on individual pathspecs can be done using pathspec
 598        magic ":(glob)"
 599
 600--icase-pathspecs::
 601        Add "icase" magic to all pathspec. This is equivalent to setting
 602        the `GIT_ICASE_PATHSPECS` environment variable to `1`.
 603
 604GIT COMMANDS
 605------------
 606
 607We divide Git into high level ("porcelain") commands and low level
 608("plumbing") commands.
 609
 610High-level commands (porcelain)
 611-------------------------------
 612
 613We separate the porcelain commands into the main commands and some
 614ancillary user utilities.
 615
 616Main porcelain commands
 617~~~~~~~~~~~~~~~~~~~~~~~
 618
 619include::cmds-mainporcelain.txt[]
 620
 621Ancillary Commands
 622~~~~~~~~~~~~~~~~~~
 623Manipulators:
 624
 625include::cmds-ancillarymanipulators.txt[]
 626
 627Interrogators:
 628
 629include::cmds-ancillaryinterrogators.txt[]
 630
 631
 632Interacting with Others
 633~~~~~~~~~~~~~~~~~~~~~~~
 634
 635These commands are to interact with foreign SCM and with other
 636people via patch over e-mail.
 637
 638include::cmds-foreignscminterface.txt[]
 639
 640
 641Low-level commands (plumbing)
 642-----------------------------
 643
 644Although Git includes its
 645own porcelain layer, its low-level commands are sufficient to support
 646development of alternative porcelains.  Developers of such porcelains
 647might start by reading about linkgit:git-update-index[1] and
 648linkgit:git-read-tree[1].
 649
 650The interface (input, output, set of options and the semantics)
 651to these low-level commands are meant to be a lot more stable
 652than Porcelain level commands, because these commands are
 653primarily for scripted use.  The interface to Porcelain commands
 654on the other hand are subject to change in order to improve the
 655end user experience.
 656
 657The following description divides
 658the low-level commands into commands that manipulate objects (in
 659the repository, index, and working tree), commands that interrogate and
 660compare objects, and commands that move objects and references between
 661repositories.
 662
 663
 664Manipulation commands
 665~~~~~~~~~~~~~~~~~~~~~
 666
 667include::cmds-plumbingmanipulators.txt[]
 668
 669
 670Interrogation commands
 671~~~~~~~~~~~~~~~~~~~~~~
 672
 673include::cmds-plumbinginterrogators.txt[]
 674
 675In general, the interrogate commands do not touch the files in
 676the working tree.
 677
 678
 679Synching repositories
 680~~~~~~~~~~~~~~~~~~~~~
 681
 682include::cmds-synchingrepositories.txt[]
 683
 684The following are helper commands used by the above; end users
 685typically do not use them directly.
 686
 687include::cmds-synchelpers.txt[]
 688
 689
 690Internal helper commands
 691~~~~~~~~~~~~~~~~~~~~~~~~
 692
 693These are internal helper commands used by other commands; end
 694users typically do not use them directly.
 695
 696include::cmds-purehelpers.txt[]
 697
 698
 699Configuration Mechanism
 700-----------------------
 701
 702Git uses a simple text format to store customizations that are per
 703repository and are per user.  Such a configuration file may look
 704like this:
 705
 706------------
 707#
 708# A '#' or ';' character indicates a comment.
 709#
 710
 711; core variables
 712[core]
 713        ; Don't trust file modes
 714        filemode = false
 715
 716; user identity
 717[user]
 718        name = "Junio C Hamano"
 719        email = "gitster@pobox.com"
 720
 721------------
 722
 723Various commands read from the configuration file and adjust
 724their operation accordingly.  See linkgit:git-config[1] for a
 725list and more details about the configuration mechanism.
 726
 727
 728Identifier Terminology
 729----------------------
 730<object>::
 731        Indicates the object name for any type of object.
 732
 733<blob>::
 734        Indicates a blob object name.
 735
 736<tree>::
 737        Indicates a tree object name.
 738
 739<commit>::
 740        Indicates a commit object name.
 741
 742<tree-ish>::
 743        Indicates a tree, commit or tag object name.  A
 744        command that takes a <tree-ish> argument ultimately wants to
 745        operate on a <tree> object but automatically dereferences
 746        <commit> and <tag> objects that point at a <tree>.
 747
 748<commit-ish>::
 749        Indicates a commit or tag object name.  A
 750        command that takes a <commit-ish> argument ultimately wants to
 751        operate on a <commit> object but automatically dereferences
 752        <tag> objects that point at a <commit>.
 753
 754<type>::
 755        Indicates that an object type is required.
 756        Currently one of: `blob`, `tree`, `commit`, or `tag`.
 757
 758<file>::
 759        Indicates a filename - almost always relative to the
 760        root of the tree structure `GIT_INDEX_FILE` describes.
 761
 762Symbolic Identifiers
 763--------------------
 764Any Git command accepting any <object> can also use the following
 765symbolic notation:
 766
 767HEAD::
 768        indicates the head of the current branch.
 769
 770<tag>::
 771        a valid tag 'name'
 772        (i.e. a `refs/tags/<tag>` reference).
 773
 774<head>::
 775        a valid head 'name'
 776        (i.e. a `refs/heads/<head>` reference).
 777
 778For a more complete list of ways to spell object names, see
 779"SPECIFYING REVISIONS" section in linkgit:gitrevisions[7].
 780
 781
 782File/Directory Structure
 783------------------------
 784
 785Please see the linkgit:gitrepository-layout[5] document.
 786
 787Read linkgit:githooks[5] for more details about each hook.
 788
 789Higher level SCMs may provide and manage additional information in the
 790`$GIT_DIR`.
 791
 792
 793Terminology
 794-----------
 795Please see linkgit:gitglossary[7].
 796
 797
 798Environment Variables
 799---------------------
 800Various Git commands use the following environment variables:
 801
 802The Git Repository
 803~~~~~~~~~~~~~~~~~~
 804These environment variables apply to 'all' core Git commands. Nb: it
 805is worth noting that they may be used/overridden by SCMS sitting above
 806Git so take care if using a foreign front-end.
 807
 808'GIT_INDEX_FILE'::
 809        This environment allows the specification of an alternate
 810        index file. If not specified, the default of `$GIT_DIR/index`
 811        is used.
 812
 813'GIT_INDEX_VERSION'::
 814        This environment variable allows the specification of an index
 815        version for new repositories.  It won't affect existing index
 816        files.  By default index file version 2 or 3 is used. See
 817        linkgit:git-update-index[1] for more information.
 818
 819'GIT_OBJECT_DIRECTORY'::
 820        If the object storage directory is specified via this
 821        environment variable then the sha1 directories are created
 822        underneath - otherwise the default `$GIT_DIR/objects`
 823        directory is used.
 824
 825'GIT_ALTERNATE_OBJECT_DIRECTORIES'::
 826        Due to the immutable nature of Git objects, old objects can be
 827        archived into shared, read-only directories. This variable
 828        specifies a ":" separated (on Windows ";" separated) list
 829        of Git object directories which can be used to search for Git
 830        objects. New objects will not be written to these directories.
 831
 832'GIT_DIR'::
 833        If the 'GIT_DIR' environment variable is set then it
 834        specifies a path to use instead of the default `.git`
 835        for the base of the repository.
 836        The '--git-dir' command-line option also sets this value.
 837
 838'GIT_WORK_TREE'::
 839        Set the path to the root of the working tree.
 840        This can also be controlled by the '--work-tree' command-line
 841        option and the core.worktree configuration variable.
 842
 843'GIT_NAMESPACE'::
 844        Set the Git namespace; see linkgit:gitnamespaces[7] for details.
 845        The '--namespace' command-line option also sets this value.
 846
 847'GIT_CEILING_DIRECTORIES'::
 848        This should be a colon-separated list of absolute paths.  If
 849        set, it is a list of directories that Git should not chdir up
 850        into while looking for a repository directory (useful for
 851        excluding slow-loading network directories).  It will not
 852        exclude the current working directory or a GIT_DIR set on the
 853        command line or in the environment.  Normally, Git has to read
 854        the entries in this list and resolve any symlink that
 855        might be present in order to compare them with the current
 856        directory.  However, if even this access is slow, you
 857        can add an empty entry to the list to tell Git that the
 858        subsequent entries are not symlinks and needn't be resolved;
 859        e.g.,
 860        'GIT_CEILING_DIRECTORIES=/maybe/symlink::/very/slow/non/symlink'.
 861
 862'GIT_DISCOVERY_ACROSS_FILESYSTEM'::
 863        When run in a directory that does not have ".git" repository
 864        directory, Git tries to find such a directory in the parent
 865        directories to find the top of the working tree, but by default it
 866        does not cross filesystem boundaries.  This environment variable
 867        can be set to true to tell Git not to stop at filesystem
 868        boundaries.  Like 'GIT_CEILING_DIRECTORIES', this will not affect
 869        an explicit repository directory set via 'GIT_DIR' or on the
 870        command line.
 871
 872'GIT_COMMON_DIR'::
 873        If this variable is set to a path, non-worktree files that are
 874        normally in $GIT_DIR will be taken from this path
 875        instead. Worktree-specific files such as HEAD or index are
 876        taken from $GIT_DIR. See linkgit:gitrepository-layout[5] and
 877        linkgit:git-worktree[1] for
 878        details. This variable has lower precedence than other path
 879        variables such as GIT_INDEX_FILE, GIT_OBJECT_DIRECTORY...
 880
 881Git Commits
 882~~~~~~~~~~~
 883'GIT_AUTHOR_NAME'::
 884'GIT_AUTHOR_EMAIL'::
 885'GIT_AUTHOR_DATE'::
 886'GIT_COMMITTER_NAME'::
 887'GIT_COMMITTER_EMAIL'::
 888'GIT_COMMITTER_DATE'::
 889'EMAIL'::
 890        see linkgit:git-commit-tree[1]
 891
 892Git Diffs
 893~~~~~~~~~
 894'GIT_DIFF_OPTS'::
 895        Only valid setting is "--unified=??" or "-u??" to set the
 896        number of context lines shown when a unified diff is created.
 897        This takes precedence over any "-U" or "--unified" option
 898        value passed on the Git diff command line.
 899
 900'GIT_EXTERNAL_DIFF'::
 901        When the environment variable 'GIT_EXTERNAL_DIFF' is set, the
 902        program named by it is called, instead of the diff invocation
 903        described above.  For a path that is added, removed, or modified,
 904        'GIT_EXTERNAL_DIFF' is called with 7 parameters:
 905
 906        path old-file old-hex old-mode new-file new-hex new-mode
 907+
 908where:
 909
 910        <old|new>-file:: are files GIT_EXTERNAL_DIFF can use to read the
 911                         contents of <old|new>,
 912        <old|new>-hex:: are the 40-hexdigit SHA-1 hashes,
 913        <old|new>-mode:: are the octal representation of the file modes.
 914+
 915The file parameters can point at the user's working file
 916(e.g. `new-file` in "git-diff-files"), `/dev/null` (e.g. `old-file`
 917when a new file is added), or a temporary file (e.g. `old-file` in the
 918index).  'GIT_EXTERNAL_DIFF' should not worry about unlinking the
 919temporary file --- it is removed when 'GIT_EXTERNAL_DIFF' exits.
 920+
 921For a path that is unmerged, 'GIT_EXTERNAL_DIFF' is called with 1
 922parameter, <path>.
 923+
 924For each path 'GIT_EXTERNAL_DIFF' is called, two environment variables,
 925'GIT_DIFF_PATH_COUNTER' and 'GIT_DIFF_PATH_TOTAL' are set.
 926
 927'GIT_DIFF_PATH_COUNTER'::
 928        A 1-based counter incremented by one for every path.
 929
 930'GIT_DIFF_PATH_TOTAL'::
 931        The total number of paths.
 932
 933other
 934~~~~~
 935'GIT_MERGE_VERBOSITY'::
 936        A number controlling the amount of output shown by
 937        the recursive merge strategy.  Overrides merge.verbosity.
 938        See linkgit:git-merge[1]
 939
 940'GIT_PAGER'::
 941        This environment variable overrides `$PAGER`. If it is set
 942        to an empty string or to the value "cat", Git will not launch
 943        a pager.  See also the `core.pager` option in
 944        linkgit:git-config[1].
 945
 946'GIT_EDITOR'::
 947        This environment variable overrides `$EDITOR` and `$VISUAL`.
 948        It is used by several Git commands when, on interactive mode,
 949        an editor is to be launched. See also linkgit:git-var[1]
 950        and the `core.editor` option in linkgit:git-config[1].
 951
 952'GIT_SSH'::
 953'GIT_SSH_COMMAND'::
 954        If either of these environment variables is set then 'git fetch'
 955        and 'git push' will use the specified command instead of 'ssh'
 956        when they need to connect to a remote system.
 957        The command will be given exactly two or four arguments: the
 958        'username@host' (or just 'host') from the URL and the shell
 959        command to execute on that remote system, optionally preceded by
 960        '-p' (literally) and the 'port' from the URL when it specifies
 961        something other than the default SSH port.
 962+
 963`$GIT_SSH_COMMAND` takes precedence over `$GIT_SSH`, and is interpreted
 964by the shell, which allows additional arguments to be included.
 965`$GIT_SSH` on the other hand must be just the path to a program
 966(which can be a wrapper shell script, if additional arguments are
 967needed).
 968+
 969Usually it is easier to configure any desired options through your
 970personal `.ssh/config` file.  Please consult your ssh documentation
 971for further details.
 972
 973'GIT_ASKPASS'::
 974        If this environment variable is set, then Git commands which need to
 975        acquire passwords or passphrases (e.g. for HTTP or IMAP authentication)
 976        will call this program with a suitable prompt as command-line argument
 977        and read the password from its STDOUT. See also the 'core.askPass'
 978        option in linkgit:git-config[1].
 979
 980'GIT_TERMINAL_PROMPT'::
 981        If this environment variable is set to `0`, git will not prompt
 982        on the terminal (e.g., when asking for HTTP authentication).
 983
 984'GIT_CONFIG_NOSYSTEM'::
 985        Whether to skip reading settings from the system-wide
 986        `$(prefix)/etc/gitconfig` file.  This environment variable can
 987        be used along with `$HOME` and `$XDG_CONFIG_HOME` to create a
 988        predictable environment for a picky script, or you can set it
 989        temporarily to avoid using a buggy `/etc/gitconfig` file while
 990        waiting for someone with sufficient permissions to fix it.
 991
 992'GIT_FLUSH'::
 993        If this environment variable is set to "1", then commands such
 994        as 'git blame' (in incremental mode), 'git rev-list', 'git log',
 995        'git check-attr' and 'git check-ignore' will
 996        force a flush of the output stream after each record have been
 997        flushed. If this
 998        variable is set to "0", the output of these commands will be done
 999        using completely buffered I/O.   If this environment variable is
1000        not set, Git will choose buffered or record-oriented flushing
1001        based on whether stdout appears to be redirected to a file or not.
1002
1003'GIT_TRACE'::
1004        Enables general trace messages, e.g. alias expansion, built-in
1005        command execution and external command execution.
1006+
1007If this variable is set to "1", "2" or "true" (comparison
1008is case insensitive), trace messages will be printed to
1009stderr.
1010+
1011If the variable is set to an integer value greater than 2
1012and lower than 10 (strictly) then Git will interpret this
1013value as an open file descriptor and will try to write the
1014trace messages into this file descriptor.
1015+
1016Alternatively, if the variable is set to an absolute path
1017(starting with a '/' character), Git will interpret this
1018as a file path and will try to write the trace messages
1019into it.
1020+
1021Unsetting the variable, or setting it to empty, "0" or
1022"false" (case insensitive) disables trace messages.
1023
1024'GIT_TRACE_PACK_ACCESS'::
1025        Enables trace messages for all accesses to any packs. For each
1026        access, the pack file name and an offset in the pack is
1027        recorded. This may be helpful for troubleshooting some
1028        pack-related performance problems.
1029        See 'GIT_TRACE' for available trace output options.
1030
1031'GIT_TRACE_PACKET'::
1032        Enables trace messages for all packets coming in or out of a
1033        given program. This can help with debugging object negotiation
1034        or other protocol issues. Tracing is turned off at a packet
1035        starting with "PACK" (but see 'GIT_TRACE_PACKFILE' below).
1036        See 'GIT_TRACE' for available trace output options.
1037
1038'GIT_TRACE_PACKFILE'::
1039        Enables tracing of packfiles sent or received by a
1040        given program. Unlike other trace output, this trace is
1041        verbatim: no headers, and no quoting of binary data. You almost
1042        certainly want to direct into a file (e.g.,
1043        `GIT_TRACE_PACKFILE=/tmp/my.pack`) rather than displaying it on
1044        the terminal or mixing it with other trace output.
1045+
1046Note that this is currently only implemented for the client side
1047of clones and fetches.
1048
1049'GIT_TRACE_PERFORMANCE'::
1050        Enables performance related trace messages, e.g. total execution
1051        time of each Git command.
1052        See 'GIT_TRACE' for available trace output options.
1053
1054'GIT_TRACE_SETUP'::
1055        Enables trace messages printing the .git, working tree and current
1056        working directory after Git has completed its setup phase.
1057        See 'GIT_TRACE' for available trace output options.
1058
1059'GIT_TRACE_SHALLOW'::
1060        Enables trace messages that can help debugging fetching /
1061        cloning of shallow repositories.
1062        See 'GIT_TRACE' for available trace output options.
1063
1064'GIT_LITERAL_PATHSPECS'::
1065        Setting this variable to `1` will cause Git to treat all
1066        pathspecs literally, rather than as glob patterns. For example,
1067        running `GIT_LITERAL_PATHSPECS=1 git log -- '*.c'` will search
1068        for commits that touch the path `*.c`, not any paths that the
1069        glob `*.c` matches. You might want this if you are feeding
1070        literal paths to Git (e.g., paths previously given to you by
1071        `git ls-tree`, `--raw` diff output, etc).
1072
1073'GIT_GLOB_PATHSPECS'::
1074        Setting this variable to `1` will cause Git to treat all
1075        pathspecs as glob patterns (aka "glob" magic).
1076
1077'GIT_NOGLOB_PATHSPECS'::
1078        Setting this variable to `1` will cause Git to treat all
1079        pathspecs as literal (aka "literal" magic).
1080
1081'GIT_ICASE_PATHSPECS'::
1082        Setting this variable to `1` will cause Git to treat all
1083        pathspecs as case-insensitive.
1084
1085'GIT_REFLOG_ACTION'::
1086        When a ref is updated, reflog entries are created to keep
1087        track of the reason why the ref was updated (which is
1088        typically the name of the high-level command that updated
1089        the ref), in addition to the old and new values of the ref.
1090        A scripted Porcelain command can use set_reflog_action
1091        helper function in `git-sh-setup` to set its name to this
1092        variable when it is invoked as the top level command by the
1093        end user, to be recorded in the body of the reflog.
1094
1095'GIT_REF_PARANOIA'::
1096        If set to `1`, include broken or badly named refs when iterating
1097        over lists of refs. In a normal, non-corrupted repository, this
1098        does nothing. However, enabling it may help git to detect and
1099        abort some operations in the presence of broken refs. Git sets
1100        this variable automatically when performing destructive
1101        operations like linkgit:git-prune[1]. You should not need to set
1102        it yourself unless you want to be paranoid about making sure
1103        an operation has touched every ref (e.g., because you are
1104        cloning a repository to make a backup).
1105
1106'GIT_ALLOW_PROTOCOL'::
1107        If set, provide a colon-separated list of protocols which are
1108        allowed to be used with fetch/push/clone. This is useful to
1109        restrict recursive submodule initialization from an untrusted
1110        repository. Any protocol not mentioned will be disallowed (i.e.,
1111        this is a whitelist, not a blacklist). If the variable is not
1112        set at all, all protocols are enabled.  The protocol names
1113        currently used by git are:
1114
1115          - `file`: any local file-based path (including `file://` URLs,
1116            or local paths)
1117
1118          - `git`: the anonymous git protocol over a direct TCP
1119            connection (or proxy, if configured)
1120
1121          - `ssh`: git over ssh (including `host:path` syntax,
1122            `git+ssh://`, etc).
1123
1124          - `rsync`: git over rsync
1125
1126          - `http`: git over http, both "smart http" and "dumb http".
1127            Note that this does _not_ include `https`; if you want both,
1128            you should specify both as `http:https`.
1129
1130          - any external helpers are named by their protocol (e.g., use
1131            `hg` to allow the `git-remote-hg` helper)
1132
1133
1134Discussion[[Discussion]]
1135------------------------
1136
1137More detail on the following is available from the
1138link:user-manual.html#git-concepts[Git concepts chapter of the
1139user-manual] and linkgit:gitcore-tutorial[7].
1140
1141A Git project normally consists of a working directory with a ".git"
1142subdirectory at the top level.  The .git directory contains, among other
1143things, a compressed object database representing the complete history
1144of the project, an "index" file which links that history to the current
1145contents of the working tree, and named pointers into that history such
1146as tags and branch heads.
1147
1148The object database contains objects of three main types: blobs, which
1149hold file data; trees, which point to blobs and other trees to build up
1150directory hierarchies; and commits, which each reference a single tree
1151and some number of parent commits.
1152
1153The commit, equivalent to what other systems call a "changeset" or
1154"version", represents a step in the project's history, and each parent
1155represents an immediately preceding step.  Commits with more than one
1156parent represent merges of independent lines of development.
1157
1158All objects are named by the SHA-1 hash of their contents, normally
1159written as a string of 40 hex digits.  Such names are globally unique.
1160The entire history leading up to a commit can be vouched for by signing
1161just that commit.  A fourth object type, the tag, is provided for this
1162purpose.
1163
1164When first created, objects are stored in individual files, but for
1165efficiency may later be compressed together into "pack files".
1166
1167Named pointers called refs mark interesting points in history.  A ref
1168may contain the SHA-1 name of an object or the name of another ref.  Refs
1169with names beginning `ref/head/` contain the SHA-1 name of the most
1170recent commit (or "head") of a branch under development.  SHA-1 names of
1171tags of interest are stored under `ref/tags/`.  A special ref named
1172`HEAD` contains the name of the currently checked-out branch.
1173
1174The index file is initialized with a list of all paths and, for each
1175path, a blob object and a set of attributes.  The blob object represents
1176the contents of the file as of the head of the current branch.  The
1177attributes (last modified time, size, etc.) are taken from the
1178corresponding file in the working tree.  Subsequent changes to the
1179working tree can be found by comparing these attributes.  The index may
1180be updated with new content, and new commits may be created from the
1181content stored in the index.
1182
1183The index is also capable of storing multiple entries (called "stages")
1184for a given pathname.  These stages are used to hold the various
1185unmerged version of a file when a merge is in progress.
1186
1187FURTHER DOCUMENTATION
1188---------------------
1189
1190See the references in the "description" section to get started
1191using Git.  The following is probably more detail than necessary
1192for a first-time user.
1193
1194The link:user-manual.html#git-concepts[Git concepts chapter of the
1195user-manual] and linkgit:gitcore-tutorial[7] both provide
1196introductions to the underlying Git architecture.
1197
1198See linkgit:gitworkflows[7] for an overview of recommended workflows.
1199
1200See also the link:howto-index.html[howto] documents for some useful
1201examples.
1202
1203The internals are documented in the
1204link:technical/api-index.html[Git API documentation].
1205
1206Users migrating from CVS may also want to
1207read linkgit:gitcvs-migration[7].
1208
1209
1210Authors
1211-------
1212Git was started by Linus Torvalds, and is currently maintained by Junio
1213C Hamano. Numerous contributions have come from the Git mailing list
1214<git@vger.kernel.org>.  http://www.openhub.net/p/git/contributors/summary
1215gives you a more complete list of contributors.
1216
1217If you have a clone of git.git itself, the
1218output of linkgit:git-shortlog[1] and linkgit:git-blame[1] can show you
1219the authors for specific parts of the project.
1220
1221Reporting Bugs
1222--------------
1223
1224Report bugs to the Git mailing list <git@vger.kernel.org> where the
1225development and maintenance is primarily done.  You do not have to be
1226subscribed to the list to send a message there.
1227
1228SEE ALSO
1229--------
1230linkgit:gittutorial[7], linkgit:gittutorial-2[7],
1231linkgit:giteveryday[7], linkgit:gitcvs-migration[7],
1232linkgit:gitglossary[7], linkgit:gitcore-tutorial[7],
1233linkgit:gitcli[7], link:user-manual.html[The Git User's Manual],
1234linkgit:gitworkflows[7]
1235
1236GIT
1237---
1238Part of the linkgit:git[1] suite