Documentation / git.txton commit [PATCH] Detect renames in diff family. (5c97558)
   1git(1)
   2======
   3v0.1, May 2005
   4
   5NAME
   6----
   7git - the stupid content tracker
   8
   9
  10SYNOPSIS
  11--------
  12'git-<command>' <args>
  13
  14DESCRIPTION
  15-----------
  16
  17This is reference information for the core git commands.
  18
  19The link:README[] contains much useful definition and clarification
  20info - read that first.  And of the commands, I suggest reading
  21'git-update-cache' and 'git-read-tree' first - I wish I had!
  22
  23David Greaves <david@dgreaves.com>
  2408/05/05
  25
  26Updated by Junio C Hamano <junkio@cox.net> on 2005-05-05 to
  27reflect recent changes.
  28
  29Commands Overview
  30-----------------
  31The git commands can helpfully be split into those that manipulate
  32the repository, the cache and the working fileset and those that
  33interrogate and compare them.
  34
  35There are also some ancilliary programs that can be viewed as useful
  36aids for using the core commands but which are unlikely to be used by
  37SCMs layered over git.
  38
  39Manipulation commands
  40~~~~~~~~~~~~~~~~~~~~~
  41link:git-checkout-cache.html[git-checkout-cache]::
  42        Copy files from the cache to the working directory
  43
  44link:git-commit-tree.html[git-commit-tree]::
  45        Creates a new commit object
  46
  47link:git-init-db.html[git-init-db]::
  48        Creates an empty git object database
  49
  50link:git-merge-base.html[git-merge-base]::
  51        Finds as good a common ancestor as possible for a merge
  52
  53link:git-mktag.html[git-mktag]::
  54        Creates a tag object
  55
  56link:git-read-tree.html[git-read-tree]::
  57        Reads tree information into the directory cache
  58
  59link:git-update-cache.html[git-update-cache]::
  60        Modifies the index or directory cache
  61
  62link:git-write-blob.html[git-write-blob]::
  63        Creates a blob from a file
  64
  65link:git-write-tree.html[git-write-tree]::
  66        Creates a tree from the current cache
  67
  68Interrogation commands
  69~~~~~~~~~~~~~~~~~~~~~~
  70link:git-cat-file.html[git-cat-file]::
  71        Provide content or type information for repository objects
  72
  73link:git-check-files.html[git-check-files]::
  74        Verify a list of files are up-to-date
  75
  76link:git-diff-cache.html[git-diff-cache]::
  77        Compares content and mode of blobs between the cache and repository
  78
  79link:git-diff-files.html[git-diff-files]::
  80        Compares files in the working tree and the cache
  81
  82link:git-diff-tree.html[git-diff-tree]::
  83        Compares the content and mode of blobs found via two tree objects
  84
  85link:git-export.html[git-export]::
  86        Exports each commit and a diff against each of its parents
  87
  88link:git-fsck-cache.html[git-fsck-cache]::
  89        Verifies the connectivity and validity of the objects in the database
  90
  91link:git-ls-files.html[git-ls-files]::
  92        Information about files in the cache/working directory
  93
  94link:git-ls-tree.html[git-ls-tree]::
  95        Displays a tree object in human readable form
  96
  97link:git-merge-cache.html[git-merge-cache]::
  98        Runs a merge for files needing merging
  99
 100link:git-rev-list.html[git-rev-list]::
 101        Lists commit objects in reverse chronological order
 102
 103link:git-rev-tree.html[git-rev-tree]::
 104        Provides the revision tree for one or more commits
 105
 106link:git-tar-tree.html[git-tar-tree]::
 107        Creates a tar archive of the files in the named tree
 108
 109link:git-unpack-file.html[git-unpack-file]::
 110        Creates a temporary file with a blob's contents
 111
 112The interrogate commands may create files - and you can force them to
 113touch the working file set - but in general they don't
 114
 115
 116Ancilliary Commands
 117-------------------
 118Manipulators:
 119
 120link:git-apply-patch-script.html[git-apply-patch-script]::
 121        Sample script to apply the diffs from git-diff-*
 122
 123link:git-convert-cache.html[git-convert-cache]::
 124        Converts old-style GIT repository
 125
 126link:git-http-pull.html[git-http-pull]::
 127        Downloads a remote GIT repository via HTTP
 128
 129link:git-local-pull.html[git-local-pull]::
 130        Duplicates another GIT repository on a local system
 131
 132link:git-merge-one-file-script.html[git-merge-one-file-script]::
 133        The standard helper program to use with "git-merge-cache"
 134
 135link:git-pull-script.html[git-pull-script]::
 136        Script used by Linus to pull and merge a remote repository
 137
 138link:git-prune-script.html[git-prune-script]::
 139        Prunes all unreachable objects from the object database
 140
 141link:git-resolve-script.html[git-resolve-script]::
 142        Script used to merge two trees
 143
 144link:git-tag-script.html[git-tag-script]::
 145        An example script to create a tag object signed with GPG
 146
 147link:git-rpull.html[git-rpull]::
 148        Pulls from a remote repository over ssh connection
 149
 150Interogators:
 151
 152link:git-diff-helper.html[git-diff-helper]::
 153        Generates patch format output for git-diff-*
 154
 155link:git-rpush.html[git-rpush]::
 156        Helper "server-side" program used by git-rpull
 157
 158
 159
 160Terminology
 161-----------
 162see README for description
 163
 164Identifier terminology
 165----------------------
 166<object>::
 167        Indicates any object sha1 identifier
 168
 169<blob>::
 170        Indicates a blob object sha1 identifier
 171
 172<tree>::
 173        Indicates a tree object sha1 identifier
 174
 175<commit>::
 176        Indicates a commit object sha1 identifier
 177
 178<tree-ish>::
 179        Indicates a tree, commit or tag object sha1 identifier.
 180        A command that takes a <tree-ish> argument ultimately
 181        wants to operate on a <tree> object but automatically
 182        dereferences <commit> and <tag> that points at a
 183        <tree>.
 184
 185<type>::
 186        Indicates that an object type is required.
 187        Currently one of: blob/tree/commit/tag
 188
 189<file>::
 190        Indicates a filename - always relative to the root of
 191        the tree structure GIT_INDEX_FILE describes.
 192
 193Symbolic Identifiers
 194--------------------
 195Any git comand accepting any <object> can also use the following symbolic notation:
 196
 197HEAD::
 198        indicates the head of the repository (ie the contents of `$GIT_DIR/HEAD`)
 199<tag>::
 200        a valid tag 'name'+
 201        (ie the contents of `$GIT_DIR/refs/tags/<tag>`)
 202<head>::
 203        a valid head 'name'+
 204        (ie the contents of `$GIT_DIR/refs/heads/<head>`)
 205<snap>::
 206        a valid snapshot 'name'+
 207        (ie the contents of `$GIT_DIR/refs/snap/<snap>`)
 208
 209
 210File/Directory Structure
 211------------------------
 212The git-core manipulates the following areas in the directory:
 213
 214 .git/         The base (overridden with $GIT_DIR)
 215   objects/    The object base (overridden with $GIT_OBJECT_DIRECTORY)
 216     ??/       'First 2 chars of object' directories
 217
 218It can interrogate (but never updates) the following areas:
 219
 220   refs/       Directories containing symbolic names for objects
 221               (each file contains the hex SHA1 + newline)
 222     heads/    Commits which are heads of various sorts
 223     tags/     Tags, by the tag name (or some local renaming of it)
 224     snap/     ????
 225   ...         Everything else isn't shared
 226   HEAD        Symlink to refs/heads/<something>
 227
 228Higher level SCMs may provide and manage additional information in the
 229GIT_DIR.
 230
 231Terminology
 232-----------
 233Each line contains terms used interchangeably
 234
 235 object database, .git directory
 236 directory cache, index
 237 id, sha1, sha1-id, sha1 hash
 238 type, tag
 239 blob, blob object
 240 tree, tree object
 241 commit, commit object
 242 parent
 243 root object
 244 changeset
 245
 246
 247Environment Variables
 248---------------------
 249Various git commands use the following environment variables:
 250
 251The git Repository
 252~~~~~~~~~~~~~~~~~~
 253These environment variables apply to 'all' core git commands. Nb: it
 254is worth noting that they may be used/overridden by SCMS sitting above
 255git so take care if using Cogito etc
 256
 257'GIT_INDEX_FILE'::
 258        This environment allows the specification of an alternate
 259        cache/index file. If not specified, the default of
 260        `$GIT_DIR/index` is used.
 261
 262'GIT_OBJECT_DIRECTORY'::
 263        If the object storage directory is specified via this
 264        environment variable then the sha1 directories are created
 265        underneath - otherwise the default `$GIT_DIR/objects`
 266        directory is used.
 267
 268'GIT_ALTERNATE_OBJECT_DIRECTORIES'::
 269        Due to the immutable nature of git objects, old objects can be
 270        archived into shared, read-only directories. This variable
 271        specifies a ":" seperated list of git object directories which
 272        can be used to search for git objects. New objects will not be
 273        written to these directories.
 274
 275'GIT_DIR'::
 276        If the 'GIT_DIR' environment variable is set then it specifies
 277        a path to use instead of `./.git` for the base of the
 278        repository.
 279
 280git Commits
 281~~~~~~~~~~~
 282'GIT_AUTHOR_NAME'::
 283'GIT_AUTHOR_EMAIL'::
 284'GIT_AUTHOR_DATE'::
 285'GIT_COMMITTER_NAME'::
 286'GIT_COMMITTER_EMAIL'::
 287        see link:git-commit-tree.html[git-commit-tree]
 288
 289git Diffs
 290~~~~~~~~~
 291'GIT_DIFF_OPTS'::
 292'GIT_EXTERNAL_DIFF'::
 293        see the "generating patches" section in :
 294        link:git-diff-cache.html[git-diff-cache];
 295        link:git-diff-files.html[git-diff-files];
 296        link:git-diff-tree.html[git-diff-tree]
 297
 298Author
 299------
 300Written by Linus Torvalds <torvalds@osdl.org>
 301
 302Documentation
 303--------------
 304Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.
 305
 306GIT
 307---
 308Part of the link:git.html[git] suite
 309