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