Imported Upstream version 2.4.3
[platform/upstream/git.git] / Documentation / git.txt
index c7f211e..12d9df1 100644 (file)
@@ -9,7 +9,7 @@ git - the stupid content tracker
 SYNOPSIS
 --------
 [verse]
-'git' [--version] [--help] [-c <name>=<value>]
+'git' [--version] [--help] [-C <path>] [-c <name>=<value>]
     [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
     [-p|--paginate|--no-pager] [--no-replace-objects] [--bare]
     [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
@@ -22,16 +22,16 @@ unusually rich command set that provides both high-level operations
 and full access to internals.
 
 See linkgit:gittutorial[7] to get started, then see
-link:everyday.html[Everyday Git] for a useful minimum set of
+linkgit:giteveryday[7] for a useful minimum set of
 commands.  The link:user-manual.html[Git User's Manual] has a more
 in-depth introduction.
 
 After you mastered the basic concepts, you can come back to this
-page to learn what commands git offers.  You can learn more about
-individual git commands with "git help command".  linkgit:gitcli[7]
-manual page gives you an overview of the command line command syntax.
+page to learn what commands Git offers.  You can learn more about
+individual Git commands with "git help command".  linkgit:gitcli[7]
+manual page gives you an overview of the command-line command syntax.
 
-Formatted and hyperlinked version of the latest git documentation
+Formatted and hyperlinked version of the latest Git documentation
 can be viewed at `http://git-htmldocs.googlecode.com/git/git.html`.
 
 ifdef::stalenotes[]
@@ -39,13 +39,111 @@ ifdef::stalenotes[]
 ============
 
 You are reading the documentation for the latest (possibly
-unreleased) version of git, that is available from 'master'
+unreleased) version of Git, that is available from the 'master'
 branch of the `git.git` repository.
 Documentation for older releases are available here:
 
-* link:v1.8.1.3/git.html[documentation for release 1.8.1.3]
+* link:v2.4.3/git.html[documentation for release 2.4.3]
 
 * release notes for
+  link:RelNotes/2.4.3.txt[2.4.3],
+  link:RelNotes/2.4.2.txt[2.4.2],
+  link:RelNotes/2.4.1.txt[2.4.1],
+  link:RelNotes/2.4.0.txt[2.4].
+
+* link:v2.3.8/git.html[documentation for release 2.3.8]
+
+* release notes for
+  link:RelNotes/2.3.8.txt[2.3.8],
+  link:RelNotes/2.3.7.txt[2.3.7],
+  link:RelNotes/2.3.6.txt[2.3.6],
+  link:RelNotes/2.3.5.txt[2.3.5],
+  link:RelNotes/2.3.4.txt[2.3.4],
+  link:RelNotes/2.3.3.txt[2.3.3],
+  link:RelNotes/2.3.2.txt[2.3.2],
+  link:RelNotes/2.3.1.txt[2.3.1],
+  link:RelNotes/2.3.0.txt[2.3].
+
+* link:v2.2.2/git.html[documentation for release 2.2.2]
+
+* release notes for
+  link:RelNotes/2.2.2.txt[2.2.2],
+  link:RelNotes/2.2.1.txt[2.2.1],
+  link:RelNotes/2.2.0.txt[2.2].
+
+* link:v2.1.4/git.html[documentation for release 2.1.4]
+
+* release notes for
+  link:RelNotes/2.1.4.txt[2.1.4],
+  link:RelNotes/2.1.3.txt[2.1.3],
+  link:RelNotes/2.1.2.txt[2.1.2],
+  link:RelNotes/2.1.1.txt[2.1.1],
+  link:RelNotes/2.1.0.txt[2.1].
+
+* link:v2.0.5/git.html[documentation for release 2.0.5]
+
+* release notes for
+  link:RelNotes/2.0.5.txt[2.0.5],
+  link:RelNotes/2.0.4.txt[2.0.4],
+  link:RelNotes/2.0.3.txt[2.0.3],
+  link:RelNotes/2.0.2.txt[2.0.2],
+  link:RelNotes/2.0.1.txt[2.0.1],
+  link:RelNotes/2.0.0.txt[2.0.0].
+
+* link:v1.9.5/git.html[documentation for release 1.9.5]
+
+* release notes for
+  link:RelNotes/1.9.5.txt[1.9.5],
+  link:RelNotes/1.9.4.txt[1.9.4],
+  link:RelNotes/1.9.3.txt[1.9.3],
+  link:RelNotes/1.9.2.txt[1.9.2],
+  link:RelNotes/1.9.1.txt[1.9.1],
+  link:RelNotes/1.9.0.txt[1.9.0].
+
+* link:v1.8.5.6/git.html[documentation for release 1.8.5.6]
+
+* release notes for
+  link:RelNotes/1.8.5.6.txt[1.8.5.6],
+  link:RelNotes/1.8.5.5.txt[1.8.5.5],
+  link:RelNotes/1.8.5.4.txt[1.8.5.4],
+  link:RelNotes/1.8.5.3.txt[1.8.5.3],
+  link:RelNotes/1.8.5.2.txt[1.8.5.2],
+  link:RelNotes/1.8.5.1.txt[1.8.5.1],
+  link:RelNotes/1.8.5.txt[1.8.5].
+
+* link:v1.8.4.5/git.html[documentation for release 1.8.4.5]
+
+* release notes for
+  link:RelNotes/1.8.4.5.txt[1.8.4.5],
+  link:RelNotes/1.8.4.4.txt[1.8.4.4],
+  link:RelNotes/1.8.4.3.txt[1.8.4.3],
+  link:RelNotes/1.8.4.2.txt[1.8.4.2],
+  link:RelNotes/1.8.4.1.txt[1.8.4.1],
+  link:RelNotes/1.8.4.txt[1.8.4].
+
+* link:v1.8.3.4/git.html[documentation for release 1.8.3.4]
+
+* release notes for
+  link:RelNotes/1.8.3.4.txt[1.8.3.4],
+  link:RelNotes/1.8.3.3.txt[1.8.3.3],
+  link:RelNotes/1.8.3.2.txt[1.8.3.2],
+  link:RelNotes/1.8.3.1.txt[1.8.3.1],
+  link:RelNotes/1.8.3.txt[1.8.3].
+
+* link:v1.8.2.3/git.html[documentation for release 1.8.2.3]
+
+* release notes for
+  link:RelNotes/1.8.2.3.txt[1.8.2.3],
+  link:RelNotes/1.8.2.2.txt[1.8.2.2],
+  link:RelNotes/1.8.2.1.txt[1.8.2.1],
+  link:RelNotes/1.8.2.txt[1.8.2].
+
+* link:v1.8.1.6/git.html[documentation for release 1.8.1.6]
+
+* release notes for
+  link:RelNotes/1.8.1.6.txt[1.8.1.6],
+  link:RelNotes/1.8.1.5.txt[1.8.1.5],
+  link:RelNotes/1.8.1.4.txt[1.8.1.4],
   link:RelNotes/1.8.1.3.txt[1.8.1.3],
   link:RelNotes/1.8.1.2.txt[1.8.1.2],
   link:RelNotes/1.8.1.1.txt[1.8.1.1],
@@ -357,12 +455,12 @@ endif::stalenotes[]
 OPTIONS
 -------
 --version::
-       Prints the git suite version that the 'git' program came from.
+       Prints the Git suite version that the 'git' program came from.
 
 --help::
        Prints the synopsis and a list of the most commonly used
        commands. If the option '--all' or '-a' is given then all
-       available commands are printed. If a git command is named this
+       available commands are printed. If a Git command is named this
        option will bring up the manual page for that command.
 +
 Other options are available to control how the manual page is
@@ -370,29 +468,48 @@ displayed. See linkgit:git-help[1] for more information,
 because `git --help ...` is converted internally into `git
 help ...`.
 
+-C <path>::
+       Run as if git was started in '<path>' instead of the current working
+       directory.  When multiple `-C` options are given, each subsequent
+       non-absolute `-C <path>` is interpreted relative to the preceding `-C
+       <path>`.
++
+This option affects options that expect path name like `--git-dir` and
+`--work-tree` in that their interpretations of the path names would be
+made relative to the working directory caused by the `-C` option. For
+example the following invocations are equivalent:
+
+    git --git-dir=a.git --work-tree=b -C c status
+    git --git-dir=c/a.git --work-tree=c/b status
+
 -c <name>=<value>::
        Pass a configuration parameter to the command. The value
        given will override values from configuration files.
        The <name> is expected in the same format as listed by
        'git config' (subkeys separated by dots).
++
+Note that omitting the `=` in `git -c foo.bar ...` is allowed and sets
+`foo.bar` to the boolean true value (just like `[foo]bar` would in a
+config file). Including the equals but with an empty value (like `git -c
+foo.bar= ...`) sets `foo.bar` to the empty string.
 
 --exec-path[=<path>]::
-       Path to wherever your core git programs are installed.
+       Path to wherever your core Git programs are installed.
        This can also be controlled by setting the GIT_EXEC_PATH
        environment variable. If no path is given, 'git' will print
        the current setting and then exit.
 
 --html-path::
-       Print the path, without trailing slash, where git's HTML
+       Print the path, without trailing slash, where Git's HTML
        documentation is installed and exit.
 
 --man-path::
        Print the manpath (see `man(1)`) for the man pages for
-       this version of git and exit.
+       this version of Git and exit.
 
 --info-path::
        Print the path where the Info files documenting this
-       version of git are installed and exit.
+       version of Git are installed and exit.
 
 -p::
 --paginate::
@@ -402,7 +519,7 @@ help ...`.
        below).
 
 --no-pager::
-       Do not pipe git output into a pager.
+       Do not pipe Git output into a pager.
 
 --git-dir=<path>::
        Set the path to the repository. This can also be controlled by
@@ -418,7 +535,7 @@ help ...`.
        more detailed discussion).
 
 --namespace=<path>::
-       Set the git namespace.  See linkgit:gitnamespaces[7] for more
+       Set the Git namespace.  See linkgit:gitnamespaces[7] for more
        details.  Equivalent to setting the `GIT_NAMESPACE` environment
        variable.
 
@@ -428,14 +545,34 @@ help ...`.
        directory.
 
 --no-replace-objects::
-       Do not use replacement refs to replace git objects. See
+       Do not use replacement refs to replace Git objects. See
        linkgit:git-replace[1] for more information.
 
+--literal-pathspecs::
+       Treat pathspecs literally (i.e. no globbing, no pathspec magic).
+       This is equivalent to setting the `GIT_LITERAL_PATHSPECS` environment
+       variable to `1`.
+
+--glob-pathspecs::
+       Add "glob" magic to all pathspec. This is equivalent to setting
+       the `GIT_GLOB_PATHSPECS` environment variable to `1`. Disabling
+       globbing on individual pathspecs can be done using pathspec
+       magic ":(literal)"
+
+--noglob-pathspecs::
+       Add "literal" magic to all pathspec. This is equivalent to setting
+       the `GIT_NOGLOB_PATHSPECS` environment variable to `1`. Enabling
+       globbing on individual pathspecs can be done using pathspec
+       magic ":(glob)"
+
+--icase-pathspecs::
+       Add "icase" magic to all pathspec. This is equivalent to setting
+       the `GIT_ICASE_PATHSPECS` environment variable to `1`.
 
 GIT COMMANDS
 ------------
 
-We divide git into high level ("porcelain") commands and low level
+We divide Git into high level ("porcelain") commands and low level
 ("plumbing") commands.
 
 High-level commands (porcelain)
@@ -472,7 +609,7 @@ include::cmds-foreignscminterface.txt[]
 Low-level commands (plumbing)
 -----------------------------
 
-Although git includes its
+Although Git includes its
 own porcelain layer, its low-level commands are sufficient to support
 development of alternative porcelains.  Developers of such porcelains
 might start by reading about linkgit:git-update-index[1] and
@@ -530,10 +667,9 @@ include::cmds-purehelpers.txt[]
 Configuration Mechanism
 -----------------------
 
-Starting from 0.99.9 (actually mid 0.99.8.GIT), `.git/config` file
-is used to hold per-repository configuration options.  It is a
-simple text file modeled after `.ini` format familiar to some
-people.  Here is an example:
+Git uses a simple text format to store customizations that are per
+repository and are per user.  Such a configuration file may look
+like this:
 
 ------------
 #
@@ -548,13 +684,13 @@ people.  Here is an example:
 ; user identity
 [user]
        name = "Junio C Hamano"
-       email = "junkio@twinsun.com"
+       email = "gitster@pobox.com"
 
 ------------
 
 Various commands read from the configuration file and adjust
 their operation accordingly.  See linkgit:git-config[1] for a
-list.
+list and more details about the configuration mechanism.
 
 
 Identifier Terminology
@@ -593,7 +729,7 @@ Identifier Terminology
 
 Symbolic Identifiers
 --------------------
-Any git command accepting any <object> can also use the following
+Any Git command accepting any <object> can also use the following
 symbolic notation:
 
 HEAD::
@@ -629,19 +765,25 @@ Please see linkgit:gitglossary[7].
 
 Environment Variables
 ---------------------
-Various git commands use the following environment variables:
+Various Git commands use the following environment variables:
 
-The git Repository
+The Git Repository
 ~~~~~~~~~~~~~~~~~~
-These environment variables apply to 'all' core git commands. Nb: it
+These environment variables apply to 'all' core Git commands. Nb: it
 is worth noting that they may be used/overridden by SCMS sitting above
-git so take care if using Cogito etc.
+Git so take care if using Cogito etc.
 
 'GIT_INDEX_FILE'::
        This environment allows the specification of an alternate
        index file. If not specified, the default of `$GIT_DIR/index`
        is used.
 
+'GIT_INDEX_VERSION'::
+       This environment variable allows the specification of an index
+       version for new repositories.  It won't affect existing index
+       files.  By default index file version 2 or 3 is used. See
+       linkgit:git-update-index[1] for more information.
+
 'GIT_OBJECT_DIRECTORY'::
        If the object storage directory is specified via this
        environment variable then the sha1 directories are created
@@ -649,10 +791,10 @@ git so take care if using Cogito etc.
        directory is used.
 
 'GIT_ALTERNATE_OBJECT_DIRECTORIES'::
-       Due to the immutable nature of git objects, old objects can be
+       Due to the immutable nature of Git objects, old objects can be
        archived into shared, read-only directories. This variable
        specifies a ":" separated (on Windows ";" separated) list
-       of git object directories which can be used to search for git
+       of Git object directories which can be used to search for Git
        objects. New objects will not be written to these directories.
 
 'GIT_DIR'::
@@ -662,35 +804,40 @@ git so take care if using Cogito etc.
        The '--git-dir' command-line option also sets this value.
 
 'GIT_WORK_TREE'::
-       Set the path to the working tree.  The value will not be
-       used in combination with repositories found automatically in
-       a .git directory (i.e. $GIT_DIR is not set).
-       This can also be controlled by the '--work-tree' command line
+       Set the path to the root of the working tree.
+       This can also be controlled by the '--work-tree' command-line
        option and the core.worktree configuration variable.
 
 'GIT_NAMESPACE'::
-       Set the git namespace; see linkgit:gitnamespaces[7] for details.
+       Set the Git namespace; see linkgit:gitnamespaces[7] for details.
        The '--namespace' command-line option also sets this value.
 
 'GIT_CEILING_DIRECTORIES'::
-       This should be a colon-separated list of absolute paths.
-       If set, it is a list of directories that git should not chdir
-       up into while looking for a repository directory.
-       It will not exclude the current working directory or
-       a GIT_DIR set on the command line or in the environment.
-       (Useful for excluding slow-loading network directories.)
+       This should be a colon-separated list of absolute paths.  If
+       set, it is a list of directories that Git should not chdir up
+       into while looking for a repository directory (useful for
+       excluding slow-loading network directories).  It will not
+       exclude the current working directory or a GIT_DIR set on the
+       command line or in the environment.  Normally, Git has to read
+       the entries in this list and resolve any symlink that
+       might be present in order to compare them with the current
+       directory.  However, if even this access is slow, you
+       can add an empty entry to the list to tell Git that the
+       subsequent entries are not symlinks and needn't be resolved;
+       e.g.,
+       'GIT_CEILING_DIRECTORIES=/maybe/symlink::/very/slow/non/symlink'.
 
 'GIT_DISCOVERY_ACROSS_FILESYSTEM'::
        When run in a directory that does not have ".git" repository
-       directory, git tries to find such a directory in the parent
+       directory, Git tries to find such a directory in the parent
        directories to find the top of the working tree, but by default it
        does not cross filesystem boundaries.  This environment variable
-       can be set to true to tell git not to stop at filesystem
+       can be set to true to tell Git not to stop at filesystem
        boundaries.  Like 'GIT_CEILING_DIRECTORIES', this will not affect
        an explicit repository directory set via 'GIT_DIR' or on the
        command line.
 
-git Commits
+Git Commits
 ~~~~~~~~~~~
 'GIT_AUTHOR_NAME'::
 'GIT_AUTHOR_EMAIL'::
@@ -701,13 +848,13 @@ git Commits
 'EMAIL'::
        see linkgit:git-commit-tree[1]
 
-git Diffs
+Git Diffs
 ~~~~~~~~~
 'GIT_DIFF_OPTS'::
        Only valid setting is "--unified=??" or "-u??" to set the
        number of context lines shown when a unified diff is created.
        This takes precedence over any "-U" or "--unified" option
-       value passed on the git diff command line.
+       value passed on the Git diff command line.
 
 'GIT_EXTERNAL_DIFF'::
        When the environment variable 'GIT_EXTERNAL_DIFF' is set, the
@@ -721,7 +868,7 @@ where:
 
        <old|new>-file:: are files GIT_EXTERNAL_DIFF can use to read the
                          contents of <old|new>,
-       <old|new>-hex:: are the 40-hexdigit SHA1 hashes,
+       <old|new>-hex:: are the 40-hexdigit SHA-1 hashes,
        <old|new>-mode:: are the octal representation of the file modes.
 +
 The file parameters can point at the user's working file
@@ -732,6 +879,15 @@ temporary file --- it is removed when 'GIT_EXTERNAL_DIFF' exits.
 +
 For a path that is unmerged, 'GIT_EXTERNAL_DIFF' is called with 1
 parameter, <path>.
++
+For each path 'GIT_EXTERNAL_DIFF' is called, two environment variables,
+'GIT_DIFF_PATH_COUNTER' and 'GIT_DIFF_PATH_TOTAL' are set.
+
+'GIT_DIFF_PATH_COUNTER'::
+       A 1-based counter incremented by one for every path.
+
+'GIT_DIFF_PATH_TOTAL'::
+       The total number of paths.
 
 other
 ~~~~~
@@ -742,39 +898,48 @@ other
 
 'GIT_PAGER'::
        This environment variable overrides `$PAGER`. If it is set
-       to an empty string or to the value "cat", git will not launch
+       to an empty string or to the value "cat", Git will not launch
        a pager.  See also the `core.pager` option in
        linkgit:git-config[1].
 
 'GIT_EDITOR'::
        This environment variable overrides `$EDITOR` and `$VISUAL`.
-       It is used by several git commands when, on interactive mode,
+       It is used by several Git commands when, on interactive mode,
        an editor is to be launched. See also linkgit:git-var[1]
        and the `core.editor` option in linkgit:git-config[1].
 
 'GIT_SSH'::
-       If this environment variable is set then 'git fetch'
-       and 'git push' will use this command instead
-       of 'ssh' when they need to connect to a remote system.
-       The '$GIT_SSH' command will be given exactly two arguments:
-       the 'username@host' (or just 'host') from the URL and the
-       shell command to execute on that remote system.
+'GIT_SSH_COMMAND'::
+       If either of these environment variables is set then 'git fetch'
+       and 'git push' will use the specified command instead of 'ssh'
+       when they need to connect to a remote system.
+       The command will be given exactly two or four arguments: the
+       'username@host' (or just 'host') from the URL and the shell
+       command to execute on that remote system, optionally preceded by
+       '-p' (literally) and the 'port' from the URL when it specifies
+       something other than the default SSH port.
 +
-To pass options to the program that you want to list in GIT_SSH
-you will need to wrap the program and options into a shell script,
-then set GIT_SSH to refer to the shell script.
+`$GIT_SSH_COMMAND` takes precedence over `$GIT_SSH`, and is interpreted
+by the shell, which allows additional arguments to be included.
+`$GIT_SSH` on the other hand must be just the path to a program
+(which can be a wrapper shell script, if additional arguments are
+needed).
 +
 Usually it is easier to configure any desired options through your
 personal `.ssh/config` file.  Please consult your ssh documentation
 for further details.
 
 'GIT_ASKPASS'::
-       If this environment variable is set, then git commands which need to
+       If this environment variable is set, then Git commands which need to
        acquire passwords or passphrases (e.g. for HTTP or IMAP authentication)
-       will call this program with a suitable prompt as command line argument
-       and read the password from its STDOUT. See also the 'core.askpass'
+       will call this program with a suitable prompt as command-line argument
+       and read the password from its STDOUT. See also the 'core.askPass'
        option in linkgit:git-config[1].
 
+'GIT_TERMINAL_PROMPT'::
+       If this environment variable is set to `0`, git will not prompt
+       on the terminal (e.g., when asking for HTTP authentication).
+
 'GIT_CONFIG_NOSYSTEM'::
        Whether to skip reading settings from the system-wide
        `$(prefix)/etc/gitconfig` file.  This environment variable can
@@ -786,35 +951,115 @@ for further details.
 'GIT_FLUSH'::
        If this environment variable is set to "1", then commands such
        as 'git blame' (in incremental mode), 'git rev-list', 'git log',
-       and 'git whatchanged' will force a flush of the output stream
-       after each commit-oriented record have been flushed.   If this
+       'git check-attr' and 'git check-ignore' will
+       force a flush of the output stream after each record have been
+       flushed. If this
        variable is set to "0", the output of these commands will be done
        using completely buffered I/O.   If this environment variable is
-       not set, git will choose buffered or record-oriented flushing
+       not set, Git will choose buffered or record-oriented flushing
        based on whether stdout appears to be redirected to a file or not.
 
 'GIT_TRACE'::
-       If this variable is set to "1", "2" or "true" (comparison
-       is case insensitive), git will print `trace:` messages on
-       stderr telling about alias expansion, built-in command
-       execution and external command execution.
-       If this variable is set to an integer value greater than 1
-       and lower than 10 (strictly) then git will interpret this
-       value as an open file descriptor and will try to write the
-       trace messages into this file descriptor.
-       Alternatively, if this variable is set to an absolute path
-       (starting with a '/' character), git will interpret this
-       as a file path and will try to write the trace messages
-       into it.
+       Enables general trace messages, e.g. alias expansion, built-in
+       command execution and external command execution.
++
+If this variable is set to "1", "2" or "true" (comparison
+is case insensitive), trace messages will be printed to
+stderr.
++
+If the variable is set to an integer value greater than 2
+and lower than 10 (strictly) then Git will interpret this
+value as an open file descriptor and will try to write the
+trace messages into this file descriptor.
++
+Alternatively, if the variable is set to an absolute path
+(starting with a '/' character), Git will interpret this
+as a file path and will try to write the trace messages
+into it.
++
+Unsetting the variable, or setting it to empty, "0" or
+"false" (case insensitive) disables trace messages.
+
+'GIT_TRACE_PACK_ACCESS'::
+       Enables trace messages for all accesses to any packs. For each
+       access, the pack file name and an offset in the pack is
+       recorded. This may be helpful for troubleshooting some
+       pack-related performance problems.
+       See 'GIT_TRACE' for available trace output options.
+
+'GIT_TRACE_PACKET'::
+       Enables trace messages for all packets coming in or out of a
+       given program. This can help with debugging object negotiation
+       or other protocol issues. Tracing is turned off at a packet
+       starting with "PACK".
+       See 'GIT_TRACE' for available trace output options.
+
+'GIT_TRACE_PERFORMANCE'::
+       Enables performance related trace messages, e.g. total execution
+       time of each Git command.
+       See 'GIT_TRACE' for available trace output options.
+
+'GIT_TRACE_SETUP'::
+       Enables trace messages printing the .git, working tree and current
+       working directory after Git has completed its setup phase.
+       See 'GIT_TRACE' for available trace output options.
+
+'GIT_TRACE_SHALLOW'::
+       Enables trace messages that can help debugging fetching /
+       cloning of shallow repositories.
+       See 'GIT_TRACE' for available trace output options.
+
+GIT_LITERAL_PATHSPECS::
+       Setting this variable to `1` will cause Git to treat all
+       pathspecs literally, rather than as glob patterns. For example,
+       running `GIT_LITERAL_PATHSPECS=1 git log -- '*.c'` will search
+       for commits that touch the path `*.c`, not any paths that the
+       glob `*.c` matches. You might want this if you are feeding
+       literal paths to Git (e.g., paths previously given to you by
+       `git ls-tree`, `--raw` diff output, etc).
+
+GIT_GLOB_PATHSPECS::
+       Setting this variable to `1` will cause Git to treat all
+       pathspecs as glob patterns (aka "glob" magic).
+
+GIT_NOGLOB_PATHSPECS::
+       Setting this variable to `1` will cause Git to treat all
+       pathspecs as literal (aka "literal" magic).
+
+GIT_ICASE_PATHSPECS::
+       Setting this variable to `1` will cause Git to treat all
+       pathspecs as case-insensitive.
+
+'GIT_REFLOG_ACTION'::
+       When a ref is updated, reflog entries are created to keep
+       track of the reason why the ref was updated (which is
+       typically the name of the high-level command that updated
+       the ref), in addition to the old and new values of the ref.
+       A scripted Porcelain command can use set_reflog_action
+       helper function in `git-sh-setup` to set its name to this
+       variable when it is invoked as the top level command by the
+       end user, to be recorded in the body of the reflog.
+
+`GIT_REF_PARANOIA`::
+       If set to `1`, include broken or badly named refs when iterating
+       over lists of refs. In a normal, non-corrupted repository, this
+       does nothing. However, enabling it may help git to detect and
+       abort some operations in the presence of broken refs. Git sets
+       this variable automatically when performing destructive
+       operations like linkgit:git-prune[1]. You should not need to set
+       it yourself unless you want to be paranoid about making sure
+       an operation has touched every ref (e.g., because you are
+       cloning a repository to make a backup).
+
 
 Discussion[[Discussion]]
 ------------------------
 
 More detail on the following is available from the
-link:user-manual.html#git-concepts[git concepts chapter of the
+link:user-manual.html#git-concepts[Git concepts chapter of the
 user-manual] and linkgit:gitcore-tutorial[7].
 
-A git project normally consists of a working directory with a ".git"
+A Git project normally consists of a working directory with a ".git"
 subdirectory at the top level.  The .git directory contains, among other
 things, a compressed object database representing the complete history
 of the project, an "index" file which links that history to the current
@@ -831,7 +1076,7 @@ The commit, equivalent to what other systems call a "changeset" or
 represents an immediately preceding step.  Commits with more than one
 parent represent merges of independent lines of development.
 
-All objects are named by the SHA1 hash of their contents, normally
+All objects are named by the SHA-1 hash of their contents, normally
 written as a string of 40 hex digits.  Such names are globally unique.
 The entire history leading up to a commit can be vouched for by signing
 just that commit.  A fourth object type, the tag, is provided for this
@@ -841,9 +1086,9 @@ When first created, objects are stored in individual files, but for
 efficiency may later be compressed together into "pack files".
 
 Named pointers called refs mark interesting points in history.  A ref
-may contain the SHA1 name of an object or the name of another ref.  Refs
-with names beginning `ref/head/` contain the SHA1 name of the most
-recent commit (or "head") of a branch under development.  SHA1 names of
+may contain the SHA-1 name of an object or the name of another ref.  Refs
+with names beginning `ref/head/` contain the SHA-1 name of the most
+recent commit (or "head") of a branch under development.  SHA-1 names of
 tags of interest are stored under `ref/tags/`.  A special ref named
 `HEAD` contains the name of the currently checked-out branch.
 
@@ -864,12 +1109,12 @@ FURTHER DOCUMENTATION
 ---------------------
 
 See the references in the "description" section to get started
-using git.  The following is probably more detail than necessary
+using Git.  The following is probably more detail than necessary
 for a first-time user.
 
-The link:user-manual.html#git-concepts[git concepts chapter of the
+The link:user-manual.html#git-concepts[Git concepts chapter of the
 user-manual] and linkgit:gitcore-tutorial[7] both provide
-introductions to the underlying git architecture.
+introductions to the underlying Git architecture.
 
 See linkgit:gitworkflows[7] for an overview of recommended workflows.
 
@@ -877,7 +1122,7 @@ See also the link:howto-index.html[howto] documents for some useful
 examples.
 
 The internals are documented in the
-link:technical/api-index.html[GIT API documentation].
+link:technical/api-index.html[Git API documentation].
 
 Users migrating from CVS may also want to
 read linkgit:gitcvs-migration[7].
@@ -886,8 +1131,8 @@ read linkgit:gitcvs-migration[7].
 Authors
 -------
 Git was started by Linus Torvalds, and is currently maintained by Junio
-C Hamano. Numerous contributions have come from the git mailing list
-<git@vger.kernel.org>.  http://www.ohloh.net/p/git/contributors/summary
+C Hamano. Numerous contributions have come from the Git mailing list
+<git@vger.kernel.org>.  http://www.openhub.net/p/git/contributors/summary
 gives you a more complete list of contributors.
 
 If you have a clone of git.git itself, the
@@ -904,7 +1149,7 @@ subscribed to the list to send a message there.
 SEE ALSO
 --------
 linkgit:gittutorial[7], linkgit:gittutorial-2[7],
-link:everyday.html[Everyday Git], linkgit:gitcvs-migration[7],
+linkgit:giteveryday[7], linkgit:gitcvs-migration[7],
 linkgit:gitglossary[7], linkgit:gitcore-tutorial[7],
 linkgit:gitcli[7], link:user-manual.html[The Git User's Manual],
 linkgit:gitworkflows[7]