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