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