Documentation / git.txton commit Add the --submodule option to the diff option family (752c0c2)
   1git(1)
   2======
   3
   4NAME
   5----
   6git - the stupid content tracker
   7
   8
   9SYNOPSIS
  10--------
  11[verse]
  12'git' [--version] [--exec-path[=GIT_EXEC_PATH]] [--html-path]
  13    [-p|--paginate|--no-pager]
  14    [--bare] [--git-dir=GIT_DIR] [--work-tree=GIT_WORK_TREE]
  15    [--help] COMMAND [ARGS]
  16
  17DESCRIPTION
  18-----------
  19Git is a fast, scalable, distributed revision control system with an
  20unusually rich command set that provides both high-level operations
  21and full access to internals.
  22
  23See linkgit:gittutorial[7] to get started, then see
  24link:everyday.html[Everyday Git] for a useful minimum set of commands, and
  25"man git-commandname" for documentation of each command.  CVS users may
  26also want to read linkgit:gitcvs-migration[7].  See
  27the link:user-manual.html[Git User's Manual] for a more in-depth
  28introduction.
  29
  30The COMMAND is either a name of a Git command (see below) or an alias
  31as defined in the configuration file (see linkgit:git-config[1]).
  32
  33Formatted and hyperlinked version of the latest git
  34documentation can be viewed at
  35`http://www.kernel.org/pub/software/scm/git/docs/`.
  36
  37ifdef::stalenotes[]
  38[NOTE]
  39============
  40
  41You are reading the documentation for the latest (possibly
  42unreleased) version of git, that is available from 'master'
  43branch of the `git.git` repository.
  44Documentation for older releases are available here:
  45
  46* link:v1.6.4.4/git.html[documentation for release 1.6.4.4]
  47
  48* release notes for
  49  link:RelNotes-1.6.4.4.txt[1.6.4.4],
  50  link:RelNotes-1.6.4.3.txt[1.6.4.3],
  51  link:RelNotes-1.6.4.2.txt[1.6.4.2],
  52  link:RelNotes-1.6.4.1.txt[1.6.4.1],
  53  link:RelNotes-1.6.4.txt[1.6.4].
  54
  55* link:v1.6.3.4/git.html[documentation for release 1.6.3.4]
  56
  57* release notes for
  58  link:RelNotes-1.6.3.4.txt[1.6.3.4],
  59  link:RelNotes-1.6.3.3.txt[1.6.3.3],
  60  link:RelNotes-1.6.3.2.txt[1.6.3.2],
  61  link:RelNotes-1.6.3.1.txt[1.6.3.1],
  62  link:RelNotes-1.6.3.txt[1.6.3].
  63
  64* release notes for
  65  link:RelNotes-1.6.2.5.txt[1.6.2.5],
  66  link:RelNotes-1.6.2.4.txt[1.6.2.4],
  67  link:RelNotes-1.6.2.3.txt[1.6.2.3],
  68  link:RelNotes-1.6.2.2.txt[1.6.2.2],
  69  link:RelNotes-1.6.2.1.txt[1.6.2.1],
  70  link:RelNotes-1.6.2.txt[1.6.2].
  71
  72* link:v1.6.1.3/git.html[documentation for release 1.6.1.3]
  73
  74* release notes for
  75  link:RelNotes-1.6.1.3.txt[1.6.1.3],
  76  link:RelNotes-1.6.1.2.txt[1.6.1.2],
  77  link:RelNotes-1.6.1.1.txt[1.6.1.1],
  78  link:RelNotes-1.6.1.txt[1.6.1].
  79
  80* link:v1.6.0.6/git.html[documentation for release 1.6.0.6]
  81
  82* release notes for
  83  link:RelNotes-1.6.0.6.txt[1.6.0.6],
  84  link:RelNotes-1.6.0.5.txt[1.6.0.5],
  85  link:RelNotes-1.6.0.4.txt[1.6.0.4],
  86  link:RelNotes-1.6.0.3.txt[1.6.0.3],
  87  link:RelNotes-1.6.0.2.txt[1.6.0.2],
  88  link:RelNotes-1.6.0.1.txt[1.6.0.1],
  89  link:RelNotes-1.6.0.txt[1.6.0].
  90
  91* link:v1.5.6.6/git.html[documentation for release 1.5.6.6]
  92
  93* release notes for
  94  link:RelNotes-1.5.6.6.txt[1.5.6.6],
  95  link:RelNotes-1.5.6.5.txt[1.5.6.5],
  96  link:RelNotes-1.5.6.4.txt[1.5.6.4],
  97  link:RelNotes-1.5.6.3.txt[1.5.6.3],
  98  link:RelNotes-1.5.6.2.txt[1.5.6.2],
  99  link:RelNotes-1.5.6.1.txt[1.5.6.1],
 100  link:RelNotes-1.5.6.txt[1.5.6].
 101
 102* link:v1.5.5.6/git.html[documentation for release 1.5.5.6]
 103
 104* release notes for
 105  link:RelNotes-1.5.5.6.txt[1.5.5.6],
 106  link:RelNotes-1.5.5.5.txt[1.5.5.5],
 107  link:RelNotes-1.5.5.4.txt[1.5.5.4],
 108  link:RelNotes-1.5.5.3.txt[1.5.5.3],
 109  link:RelNotes-1.5.5.2.txt[1.5.5.2],
 110  link:RelNotes-1.5.5.1.txt[1.5.5.1],
 111  link:RelNotes-1.5.5.txt[1.5.5].
 112
 113* link:v1.5.4.7/git.html[documentation for release 1.5.4.7]
 114
 115* release notes for
 116  link:RelNotes-1.5.4.7.txt[1.5.4.7],
 117  link:RelNotes-1.5.4.6.txt[1.5.4.6],
 118  link:RelNotes-1.5.4.5.txt[1.5.4.5],
 119  link:RelNotes-1.5.4.4.txt[1.5.4.4],
 120  link:RelNotes-1.5.4.3.txt[1.5.4.3],
 121  link:RelNotes-1.5.4.2.txt[1.5.4.2],
 122  link:RelNotes-1.5.4.1.txt[1.5.4.1],
 123  link:RelNotes-1.5.4.txt[1.5.4].
 124
 125* link:v1.5.3.8/git.html[documentation for release 1.5.3.8]
 126
 127* release notes for
 128  link:RelNotes-1.5.3.8.txt[1.5.3.8],
 129  link:RelNotes-1.5.3.7.txt[1.5.3.7],
 130  link:RelNotes-1.5.3.6.txt[1.5.3.6],
 131  link:RelNotes-1.5.3.5.txt[1.5.3.5],
 132  link:RelNotes-1.5.3.4.txt[1.5.3.4],
 133  link:RelNotes-1.5.3.3.txt[1.5.3.3],
 134  link:RelNotes-1.5.3.2.txt[1.5.3.2],
 135  link:RelNotes-1.5.3.1.txt[1.5.3.1],
 136  link:RelNotes-1.5.3.txt[1.5.3].
 137
 138* link:v1.5.2.5/git.html[documentation for release 1.5.2.5]
 139
 140* release notes for
 141  link:RelNotes-1.5.2.5.txt[1.5.2.5],
 142  link:RelNotes-1.5.2.4.txt[1.5.2.4],
 143  link:RelNotes-1.5.2.3.txt[1.5.2.3],
 144  link:RelNotes-1.5.2.2.txt[1.5.2.2],
 145  link:RelNotes-1.5.2.1.txt[1.5.2.1],
 146  link:RelNotes-1.5.2.txt[1.5.2].
 147
 148* link:v1.5.1.6/git.html[documentation for release 1.5.1.6]
 149
 150* release notes for
 151  link:RelNotes-1.5.1.6.txt[1.5.1.6],
 152  link:RelNotes-1.5.1.5.txt[1.5.1.5],
 153  link:RelNotes-1.5.1.4.txt[1.5.1.4],
 154  link:RelNotes-1.5.1.3.txt[1.5.1.3],
 155  link:RelNotes-1.5.1.2.txt[1.5.1.2],
 156  link:RelNotes-1.5.1.1.txt[1.5.1.1],
 157  link:RelNotes-1.5.1.txt[1.5.1].
 158
 159* link:v1.5.0.7/git.html[documentation for release 1.5.0.7]
 160
 161* release notes for
 162  link:RelNotes-1.5.0.7.txt[1.5.0.7],
 163  link:RelNotes-1.5.0.6.txt[1.5.0.6],
 164  link:RelNotes-1.5.0.5.txt[1.5.0.5],
 165  link:RelNotes-1.5.0.3.txt[1.5.0.3],
 166  link:RelNotes-1.5.0.2.txt[1.5.0.2],
 167  link:RelNotes-1.5.0.1.txt[1.5.0.1],
 168  link:RelNotes-1.5.0.txt[1.5.0].
 169
 170* documentation for release link:v1.4.4.4/git.html[1.4.4.4],
 171  link:v1.3.3/git.html[1.3.3],
 172  link:v1.2.6/git.html[1.2.6],
 173  link:v1.0.13/git.html[1.0.13].
 174
 175============
 176
 177endif::stalenotes[]
 178
 179OPTIONS
 180-------
 181--version::
 182        Prints the git suite version that the 'git' program came from.
 183
 184--help::
 185        Prints the synopsis and a list of the most commonly used
 186        commands. If the option '--all' or '-a' is given then all
 187        available commands are printed. If a git command is named this
 188        option will bring up the manual page for that command.
 189+
 190Other options are available to control how the manual page is
 191displayed. See linkgit:git-help[1] for more information,
 192because `git --help ...` is converted internally into `git
 193help ...`.
 194
 195--exec-path::
 196        Path to wherever your core git programs are installed.
 197        This can also be controlled by setting the GIT_EXEC_PATH
 198        environment variable. If no path is given, 'git' will print
 199        the current setting and then exit.
 200
 201--html-path::
 202        Print the path to wherever your git HTML documentation is installed
 203        and exit.
 204
 205-p::
 206--paginate::
 207        Pipe all output into 'less' (or if set, $PAGER).
 208
 209--no-pager::
 210        Do not pipe git output into a pager.
 211
 212--git-dir=<path>::
 213        Set the path to the repository. This can also be controlled by
 214        setting the GIT_DIR environment variable. It can be an absolute
 215        path or relative path to current working directory.
 216
 217--work-tree=<path>::
 218        Set the path to the working tree.  The value will not be
 219        used in combination with repositories found automatically in
 220        a .git directory (i.e. $GIT_DIR is not set).
 221        This can also be controlled by setting the GIT_WORK_TREE
 222        environment variable and the core.worktree configuration
 223        variable. It can be an absolute path or relative path to
 224        the directory specified by --git-dir or GIT_DIR.
 225        Note: If --git-dir or GIT_DIR are specified but none of
 226        --work-tree, GIT_WORK_TREE and core.worktree is specified,
 227        the current working directory is regarded as the top directory
 228        of your working tree.
 229
 230--bare::
 231        Treat the repository as a bare repository.  If GIT_DIR
 232        environment is not set, it is set to the current working
 233        directory.
 234
 235
 236FURTHER DOCUMENTATION
 237---------------------
 238
 239See the references above to get started using git.  The following is
 240probably more detail than necessary for a first-time user.
 241
 242The link:user-manual.html#git-concepts[git concepts chapter of the
 243user-manual] and linkgit:gitcore-tutorial[7] both provide
 244introductions to the underlying git architecture.
 245
 246See linkgit:gitworkflows[7] for an overview of recommended workflows.
 247
 248See also the link:howto-index.html[howto] documents for some useful
 249examples.
 250
 251The internals are documented in the
 252link:technical/api-index.html[GIT API documentation].
 253
 254GIT COMMANDS
 255------------
 256
 257We divide git into high level ("porcelain") commands and low level
 258("plumbing") commands.
 259
 260High-level commands (porcelain)
 261-------------------------------
 262
 263We separate the porcelain commands into the main commands and some
 264ancillary user utilities.
 265
 266Main porcelain commands
 267~~~~~~~~~~~~~~~~~~~~~~~
 268
 269include::cmds-mainporcelain.txt[]
 270
 271Ancillary Commands
 272~~~~~~~~~~~~~~~~~~
 273Manipulators:
 274
 275include::cmds-ancillarymanipulators.txt[]
 276
 277Interrogators:
 278
 279include::cmds-ancillaryinterrogators.txt[]
 280
 281
 282Interacting with Others
 283~~~~~~~~~~~~~~~~~~~~~~~
 284
 285These commands are to interact with foreign SCM and with other
 286people via patch over e-mail.
 287
 288include::cmds-foreignscminterface.txt[]
 289
 290
 291Low-level commands (plumbing)
 292-----------------------------
 293
 294Although git includes its
 295own porcelain layer, its low-level commands are sufficient to support
 296development of alternative porcelains.  Developers of such porcelains
 297might start by reading about linkgit:git-update-index[1] and
 298linkgit:git-read-tree[1].
 299
 300The interface (input, output, set of options and the semantics)
 301to these low-level commands are meant to be a lot more stable
 302than Porcelain level commands, because these commands are
 303primarily for scripted use.  The interface to Porcelain commands
 304on the other hand are subject to change in order to improve the
 305end user experience.
 306
 307The following description divides
 308the low-level commands into commands that manipulate objects (in
 309the repository, index, and working tree), commands that interrogate and
 310compare objects, and commands that move objects and references between
 311repositories.
 312
 313
 314Manipulation commands
 315~~~~~~~~~~~~~~~~~~~~~
 316
 317include::cmds-plumbingmanipulators.txt[]
 318
 319
 320Interrogation commands
 321~~~~~~~~~~~~~~~~~~~~~~
 322
 323include::cmds-plumbinginterrogators.txt[]
 324
 325In general, the interrogate commands do not touch the files in
 326the working tree.
 327
 328
 329Synching repositories
 330~~~~~~~~~~~~~~~~~~~~~
 331
 332include::cmds-synchingrepositories.txt[]
 333
 334The following are helper commands used by the above; end users
 335typically do not use them directly.
 336
 337include::cmds-synchelpers.txt[]
 338
 339
 340Internal helper commands
 341~~~~~~~~~~~~~~~~~~~~~~~~
 342
 343These are internal helper commands used by other commands; end
 344users typically do not use them directly.
 345
 346include::cmds-purehelpers.txt[]
 347
 348
 349Configuration Mechanism
 350-----------------------
 351
 352Starting from 0.99.9 (actually mid 0.99.8.GIT), `.git/config` file
 353is used to hold per-repository configuration options.  It is a
 354simple text file modeled after `.ini` format familiar to some
 355people.  Here is an example:
 356
 357------------
 358#
 359# A '#' or ';' character indicates a comment.
 360#
 361
 362; core variables
 363[core]
 364        ; Don't trust file modes
 365        filemode = false
 366
 367; user identity
 368[user]
 369        name = "Junio C Hamano"
 370        email = "junkio@twinsun.com"
 371
 372------------
 373
 374Various commands read from the configuration file and adjust
 375their operation accordingly.
 376
 377
 378Identifier Terminology
 379----------------------
 380<object>::
 381        Indicates the object name for any type of object.
 382
 383<blob>::
 384        Indicates a blob object name.
 385
 386<tree>::
 387        Indicates a tree object name.
 388
 389<commit>::
 390        Indicates a commit object name.
 391
 392<tree-ish>::
 393        Indicates a tree, commit or tag object name.  A
 394        command that takes a <tree-ish> argument ultimately wants to
 395        operate on a <tree> object but automatically dereferences
 396        <commit> and <tag> objects that point at a <tree>.
 397
 398<commit-ish>::
 399        Indicates a commit or tag object name.  A
 400        command that takes a <commit-ish> argument ultimately wants to
 401        operate on a <commit> object but automatically dereferences
 402        <tag> objects that point at a <commit>.
 403
 404<type>::
 405        Indicates that an object type is required.
 406        Currently one of: `blob`, `tree`, `commit`, or `tag`.
 407
 408<file>::
 409        Indicates a filename - almost always relative to the
 410        root of the tree structure `GIT_INDEX_FILE` describes.
 411
 412Symbolic Identifiers
 413--------------------
 414Any git command accepting any <object> can also use the following
 415symbolic notation:
 416
 417HEAD::
 418        indicates the head of the current branch (i.e. the
 419        contents of `$GIT_DIR/HEAD`).
 420
 421<tag>::
 422        a valid tag 'name'
 423        (i.e. the contents of `$GIT_DIR/refs/tags/<tag>`).
 424
 425<head>::
 426        a valid head 'name'
 427        (i.e. the contents of `$GIT_DIR/refs/heads/<head>`).
 428
 429For a more complete list of ways to spell object names, see
 430"SPECIFYING REVISIONS" section in linkgit:git-rev-parse[1].
 431
 432
 433File/Directory Structure
 434------------------------
 435
 436Please see the linkgit:gitrepository-layout[5] document.
 437
 438Read linkgit:githooks[5] for more details about each hook.
 439
 440Higher level SCMs may provide and manage additional information in the
 441`$GIT_DIR`.
 442
 443
 444Terminology
 445-----------
 446Please see linkgit:gitglossary[7].
 447
 448
 449Environment Variables
 450---------------------
 451Various git commands use the following environment variables:
 452
 453The git Repository
 454~~~~~~~~~~~~~~~~~~
 455These environment variables apply to 'all' core git commands. Nb: it
 456is worth noting that they may be used/overridden by SCMS sitting above
 457git so take care if using Cogito etc.
 458
 459'GIT_INDEX_FILE'::
 460        This environment allows the specification of an alternate
 461        index file. If not specified, the default of `$GIT_DIR/index`
 462        is used.
 463
 464'GIT_OBJECT_DIRECTORY'::
 465        If the object storage directory is specified via this
 466        environment variable then the sha1 directories are created
 467        underneath - otherwise the default `$GIT_DIR/objects`
 468        directory is used.
 469
 470'GIT_ALTERNATE_OBJECT_DIRECTORIES'::
 471        Due to the immutable nature of git objects, old objects can be
 472        archived into shared, read-only directories. This variable
 473        specifies a ":" separated (on Windows ";" separated) list
 474        of git object directories which can be used to search for git
 475        objects. New objects will not be written to these directories.
 476
 477'GIT_DIR'::
 478        If the 'GIT_DIR' environment variable is set then it
 479        specifies a path to use instead of the default `.git`
 480        for the base of the repository.
 481
 482'GIT_WORK_TREE'::
 483        Set the path to the working tree.  The value will not be
 484        used in combination with repositories found automatically in
 485        a .git directory (i.e. $GIT_DIR is not set).
 486        This can also be controlled by the '--work-tree' command line
 487        option and the core.worktree configuration variable.
 488
 489'GIT_CEILING_DIRECTORIES'::
 490        This should be a colon-separated list of absolute paths.
 491        If set, it is a list of directories that git should not chdir
 492        up into while looking for a repository directory.
 493        It will not exclude the current working directory or
 494        a GIT_DIR set on the command line or in the environment.
 495        (Useful for excluding slow-loading network directories.)
 496
 497git Commits
 498~~~~~~~~~~~
 499'GIT_AUTHOR_NAME'::
 500'GIT_AUTHOR_EMAIL'::
 501'GIT_AUTHOR_DATE'::
 502'GIT_COMMITTER_NAME'::
 503'GIT_COMMITTER_EMAIL'::
 504'GIT_COMMITTER_DATE'::
 505'EMAIL'::
 506        see linkgit:git-commit-tree[1]
 507
 508git Diffs
 509~~~~~~~~~
 510'GIT_DIFF_OPTS'::
 511        Only valid setting is "--unified=??" or "-u??" to set the
 512        number of context lines shown when a unified diff is created.
 513        This takes precedence over any "-U" or "--unified" option
 514        value passed on the git diff command line.
 515
 516'GIT_EXTERNAL_DIFF'::
 517        When the environment variable 'GIT_EXTERNAL_DIFF' is set, the
 518        program named by it is called, instead of the diff invocation
 519        described above.  For a path that is added, removed, or modified,
 520        'GIT_EXTERNAL_DIFF' is called with 7 parameters:
 521
 522        path old-file old-hex old-mode new-file new-hex new-mode
 523+
 524where:
 525
 526        <old|new>-file:: are files GIT_EXTERNAL_DIFF can use to read the
 527                         contents of <old|new>,
 528        <old|new>-hex:: are the 40-hexdigit SHA1 hashes,
 529        <old|new>-mode:: are the octal representation of the file modes.
 530
 531+
 532The file parameters can point at the user's working file
 533(e.g. `new-file` in "git-diff-files"), `/dev/null` (e.g. `old-file`
 534when a new file is added), or a temporary file (e.g. `old-file` in the
 535index).  'GIT_EXTERNAL_DIFF' should not worry about unlinking the
 536temporary file --- it is removed when 'GIT_EXTERNAL_DIFF' exits.
 537+
 538For a path that is unmerged, 'GIT_EXTERNAL_DIFF' is called with 1
 539parameter, <path>.
 540
 541other
 542~~~~~
 543'GIT_MERGE_VERBOSITY'::
 544        A number controlling the amount of output shown by
 545        the recursive merge strategy.  Overrides merge.verbosity.
 546        See linkgit:git-merge[1]
 547
 548'GIT_PAGER'::
 549        This environment variable overrides `$PAGER`. If it is set
 550        to an empty string or to the value "cat", git will not launch
 551        a pager.  See also the `core.pager` option in
 552        linkgit:git-config[1].
 553
 554'GIT_SSH'::
 555        If this environment variable is set then 'git-fetch'
 556        and 'git-push' will use this command instead
 557        of 'ssh' when they need to connect to a remote system.
 558        The '$GIT_SSH' command will be given exactly two arguments:
 559        the 'username@host' (or just 'host') from the URL and the
 560        shell command to execute on that remote system.
 561+
 562To pass options to the program that you want to list in GIT_SSH
 563you will need to wrap the program and options into a shell script,
 564then set GIT_SSH to refer to the shell script.
 565+
 566Usually it is easier to configure any desired options through your
 567personal `.ssh/config` file.  Please consult your ssh documentation
 568for further details.
 569
 570'GIT_FLUSH'::
 571        If this environment variable is set to "1", then commands such
 572        as 'git-blame' (in incremental mode), 'git-rev-list', 'git-log',
 573        and 'git-whatchanged' will force a flush of the output stream
 574        after each commit-oriented record have been flushed.   If this
 575        variable is set to "0", the output of these commands will be done
 576        using completely buffered I/O.   If this environment variable is
 577        not set, git will choose buffered or record-oriented flushing
 578        based on whether stdout appears to be redirected to a file or not.
 579
 580'GIT_TRACE'::
 581        If this variable is set to "1", "2" or "true" (comparison
 582        is case insensitive), git will print `trace:` messages on
 583        stderr telling about alias expansion, built-in command
 584        execution and external command execution.
 585        If this variable is set to an integer value greater than 1
 586        and lower than 10 (strictly) then git will interpret this
 587        value as an open file descriptor and will try to write the
 588        trace messages into this file descriptor.
 589        Alternatively, if this variable is set to an absolute path
 590        (starting with a '/' character), git will interpret this
 591        as a file path and will try to write the trace messages
 592        into it.
 593
 594Discussion[[Discussion]]
 595------------------------
 596
 597More detail on the following is available from the
 598link:user-manual.html#git-concepts[git concepts chapter of the
 599user-manual] and linkgit:gitcore-tutorial[7].
 600
 601A git project normally consists of a working directory with a ".git"
 602subdirectory at the top level.  The .git directory contains, among other
 603things, a compressed object database representing the complete history
 604of the project, an "index" file which links that history to the current
 605contents of the working tree, and named pointers into that history such
 606as tags and branch heads.
 607
 608The object database contains objects of three main types: blobs, which
 609hold file data; trees, which point to blobs and other trees to build up
 610directory hierarchies; and commits, which each reference a single tree
 611and some number of parent commits.
 612
 613The commit, equivalent to what other systems call a "changeset" or
 614"version", represents a step in the project's history, and each parent
 615represents an immediately preceding step.  Commits with more than one
 616parent represent merges of independent lines of development.
 617
 618All objects are named by the SHA1 hash of their contents, normally
 619written as a string of 40 hex digits.  Such names are globally unique.
 620The entire history leading up to a commit can be vouched for by signing
 621just that commit.  A fourth object type, the tag, is provided for this
 622purpose.
 623
 624When first created, objects are stored in individual files, but for
 625efficiency may later be compressed together into "pack files".
 626
 627Named pointers called refs mark interesting points in history.  A ref
 628may contain the SHA1 name of an object or the name of another ref.  Refs
 629with names beginning `ref/head/` contain the SHA1 name of the most
 630recent commit (or "head") of a branch under development.  SHA1 names of
 631tags of interest are stored under `ref/tags/`.  A special ref named
 632`HEAD` contains the name of the currently checked-out branch.
 633
 634The index file is initialized with a list of all paths and, for each
 635path, a blob object and a set of attributes.  The blob object represents
 636the contents of the file as of the head of the current branch.  The
 637attributes (last modified time, size, etc.) are taken from the
 638corresponding file in the working tree.  Subsequent changes to the
 639working tree can be found by comparing these attributes.  The index may
 640be updated with new content, and new commits may be created from the
 641content stored in the index.
 642
 643The index is also capable of storing multiple entries (called "stages")
 644for a given pathname.  These stages are used to hold the various
 645unmerged version of a file when a merge is in progress.
 646
 647Authors
 648-------
 649* git's founding father is Linus Torvalds <torvalds@osdl.org>.
 650* The current git nurse is Junio C Hamano <gitster@pobox.com>.
 651* The git potty was written by Andreas Ericsson <ae@op5.se>.
 652* General upbringing is handled by the git-list <git@vger.kernel.org>.
 653
 654Documentation
 655--------------
 656The documentation for git suite was started by David Greaves
 657<david@dgreaves.com>, and later enhanced greatly by the
 658contributors on the git-list <git@vger.kernel.org>.
 659
 660SEE ALSO
 661--------
 662linkgit:gittutorial[7], linkgit:gittutorial-2[7],
 663link:everyday.html[Everyday Git], linkgit:gitcvs-migration[7],
 664linkgit:gitglossary[7], linkgit:gitcore-tutorial[7],
 665linkgit:gitcli[7], link:user-manual.html[The Git User's Manual],
 666linkgit:gitworkflows[7]
 667
 668GIT
 669---
 670Part of the linkgit:git[1] suite