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