Documentation / git.txton commit [PATCH] Fix bisection terminating condition (670f5fe)
   1git(7)
   2======
   3v0.99.5, Aug 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
  19Before reading this cover to cover, you may want to take a look
  20at the link:tutorial.html[tutorial] document.
  21
  22The Discussion section below contains much useful definition and
  23clarification info - read that first.  And of the commands, I suggest
  24reading link:git-update-cache.html[git-update-cache] and
  25link:git-read-tree.html[git-read-tree] first - I wish I had!
  26
  27After you get the general feel from the tutorial and this
  28overview page, you may want to take a look at the
  29link:howto-index.html[howto] documents.
  30
  31
  32David Greaves <david@dgreaves.com>
  3308/05/05
  34
  35Updated by Junio C Hamano <junkio@cox.net> on 2005-05-05 to
  36reflect recent changes.
  37
  38Commands Overview
  39-----------------
  40The git commands can helpfully be split into those that manipulate
  41the repository, the cache and the working fileset, those that
  42interrogate and compare them, and those that moves objects and
  43references between repositories.
  44
  45In addition, git itself comes with a spartan set of porcelain
  46commands.  They are usable but are not meant to compete with real
  47Porcelains.
  48
  49There are also some ancillary programs that can be viewed as useful
  50aids for using the core commands but which are unlikely to be used by
  51SCMs layered over git.
  52
  53Manipulation commands
  54~~~~~~~~~~~~~~~~~~~~~
  55link:git-apply.html[git-apply]::
  56        Reads a "diff -up1" or git generated patch file and
  57        applies it to the working tree.
  58
  59link:git-checkout-cache.html[git-checkout-cache]::
  60        Copy files from the cache to the working directory
  61
  62link:git-commit-tree.html[git-commit-tree]::
  63        Creates a new commit object
  64
  65link:git-hash-object.html[git-hash-object]::
  66        Computes the object ID from a file.
  67
  68link:git-init-db.html[git-init-db]::
  69        Creates an empty git object database
  70
  71link:git-merge-cache.html[git-merge-cache]::
  72        Runs a merge for files needing merging
  73
  74link:git-mktag.html[git-mktag]::
  75        Creates a tag object
  76
  77link:git-pack-objects.html[git-pack-objects]::
  78        Creates a packed archive of objects.
  79
  80link:git-prune-packed.html[git-prune-packed]::
  81        Remove extra objects that are already in pack files.
  82
  83link:git-read-tree.html[git-read-tree]::
  84        Reads tree information into the directory cache
  85
  86link:git-unpack-objects.html[git-unpack-objects]::
  87        Unpacks objects out of a packed archive.
  88
  89link:git-update-cache.html[git-update-cache]::
  90        Modifies the index or directory cache
  91
  92link:git-write-tree.html[git-write-tree]::
  93        Creates a tree from the current cache
  94
  95
  96Interrogation commands
  97~~~~~~~~~~~~~~~~~~~~~~
  98
  99link:git-cat-file.html[git-cat-file]::
 100        Provide content or type information for repository objects
 101
 102link:git-diff-cache.html[git-diff-cache]::
 103        Compares content and mode of blobs between the cache and repository
 104
 105link:git-diff-files.html[git-diff-files]::
 106        Compares files in the working tree and the cache
 107
 108link:git-diff-stages.html[git-diff-stages]::
 109        Compares two "merge stages" in the index file.
 110
 111link:git-diff-tree.html[git-diff-tree]::
 112        Compares the content and mode of blobs found via two tree objects
 113
 114link:git-export.html[git-export]::
 115        Exports each commit and a diff against each of its parents
 116
 117link:git-fsck-cache.html[git-fsck-cache]::
 118        Verifies the connectivity and validity of the objects in the database
 119
 120link:git-ls-files.html[git-ls-files]::
 121        Information about files in the cache/working directory
 122
 123link:git-ls-tree.html[git-ls-tree]::
 124        Displays a tree object in human readable form
 125
 126link:git-merge-base.html[git-merge-base]::
 127        Finds as good a common ancestor as possible for a merge
 128
 129link:git-rev-list.html[git-rev-list]::
 130        Lists commit objects in reverse chronological order
 131
 132link:git-rev-tree.html[git-rev-tree]::
 133        Provides the revision tree for one or more commits
 134
 135link:git-show-index.html[git-show-index]::
 136        Displays contents of a pack idx file.
 137
 138link:git-tar-tree.html[git-tar-tree]::
 139        Creates a tar archive of the files in the named tree
 140
 141link:git-unpack-file.html[git-unpack-file]::
 142        Creates a temporary file with a blob's contents
 143
 144link:git-var.html[git-var]::
 145        Displays a git logical variable
 146
 147link:git-verify-pack.html[git-verify-pack]::
 148        Validates packed GIT archive files
 149
 150The interrogate commands may create files - and you can force them to
 151touch the working file set - but in general they don't
 152
 153
 154Synching repositories
 155~~~~~~~~~~~~~~~~~~~~~
 156
 157link:git-clone-pack.html[git-clone-pack]::
 158        Clones a repository into the current repository (engine
 159        for ssh and local transport)
 160
 161link:git-fetch-pack.html[git-fetch-pack]::
 162        Updates from a remote repository.
 163
 164link:git-http-pull.html[git-http-pull]::
 165        Downloads a remote GIT repository via HTTP
 166
 167link:git-local-pull.html[git-local-pull]::
 168        Duplicates another GIT repository on a local system
 169
 170link:git-peek-remote.html[git-peek-remote]::
 171        Lists references on a remote repository using upload-pack protocol.
 172
 173link:git-receive-pack.html[git-receive-pack]::
 174        Invoked by 'git-send-pack' to receive what is pushed to it.
 175
 176link:git-send-pack.html[git-send-pack]::
 177        Pushes to a remote repository, intelligently.
 178
 179link:git-ssh-pull.html[git-ssh-pull]::
 180        Pulls from a remote repository over ssh connection
 181
 182link:git-ssh-push.html[git-ssh-push]::
 183        Helper "server-side" program used by git-ssh-pull
 184
 185link:git-update-server-info.html[git-update-server-info]::
 186        Updates auxiliary information on a dumb server to help
 187        clients discover references and packs on it.
 188
 189link:git-upload-pack.html[git-upload-pack]::
 190        Invoked by 'git-clone-pack' and 'git-fetch-pack' to push
 191        what are asked for.
 192
 193
 194Porcelain-ish Commands
 195----------------------
 196
 197link:git-add-script.html[git-add-script]::
 198        Add paths to the index file.
 199
 200link:git-applymbox.html[git-applymbox]::
 201        Apply patches from a mailbox.
 202
 203link:git-bisect-script.html[git-bisect-script]::
 204        Find the change that introduced a bug.
 205
 206link:git-branch-script.html[git-branch-script]::
 207        Create and Show branches.
 208
 209link:git-cherry-pick-script.html[git-cherry-pick-script]::
 210        Cherry-pick the effect of an existing commit.
 211
 212link:git-clone-script.html[git-clone-script]::
 213        Clones a repository into a new directory.
 214
 215link:git-commit-script.html[git-commit-script]::
 216        Record changes to the repository.
 217
 218link:git-fetch-script.html[git-fetch-script]::
 219        Download from a remote repository via various protocols.
 220
 221link:git-log-script.html[git-log-script]::
 222        Shows commit logs.
 223
 224link:git-ls-remote-script.html[git-ls-remote-script]::
 225        Shows references in a remote or local repository.
 226
 227link:git-octopus-script.html[git-octopus-script]::
 228        Merge more than two commits.
 229
 230link:git-pull-script.html[git-pull-script]::
 231        Fetch from and merge with a remote repository.
 232
 233link:git-push-script.html[git-push-script]::
 234        Update remote refs along with associated objects.
 235
 236link:git-rebase-script.html[git-rebase-script]::
 237        Rebase local commits to new upstream head.
 238
 239link:git-rename-script.html[git-rename]::
 240        Rename files and directories.
 241
 242link:git-repack-script.html[git-repack-script]::
 243        Pack unpacked objects in a repository.
 244
 245link:git-resolve-script.html[git-resolve-script]::
 246        Merge two commits.
 247
 248link:git-revert-script.html[git-revert-script]::
 249        Revert an existing commit.
 250
 251link:git-shortlog.html[git-shortlog]::
 252        Summarizes 'git log' output.
 253
 254link:git-show-branch.html[git-show-branch]::
 255        Show branches and their commits.
 256
 257link:git-status-script.html[git-status-script]::
 258        Shows the working tree status.
 259
 260link:git-verify-tag-script.html[git-verify-tag-script]::
 261        Check the GPG signature of tag.
 262
 263link:git-whatchanged.html[git-whatchanged]::
 264        Shows commit logs and differences they introduce.
 265
 266
 267Ancillary Commands
 268------------------
 269Manipulators:
 270
 271link:git-applypatch.html[git-applypatch]::
 272        Apply one patch extracted from an e-mail.
 273
 274link:git-convert-cache.html[git-convert-cache]::
 275        Converts old-style GIT repository
 276
 277link:git-cvsimport-script.html[git-cvsimport-script]::
 278        Salvage your data out of another SCM people love to hate.
 279
 280link:git-merge-one-file-script.html[git-merge-one-file-script]::
 281        The standard helper program to use with "git-merge-cache"
 282
 283link:git-prune-script.html[git-prune-script]::
 284        Prunes all unreachable objects from the object database
 285
 286link:git-relink-script.html[git-relink-script]::
 287        Hardlink common objects in local repositories.
 288
 289link:git-sh-setup-script.html[git-sh-setup-script]::
 290        Common git shell script setup code.
 291
 292link:git-tag-script.html[git-tag-script]::
 293        An example script to create a tag object signed with GPG
 294
 295
 296Interrogators:
 297
 298link:git-cherry.html[git-cherry]::
 299        Find commits not merged upstream.
 300
 301link:git-count-objects-script.html[git-count-objects-script]::
 302        Count unpacked number of objects and their disk consumption.
 303
 304link:git-diff-helper.html[git-diff-helper]::
 305        Generates patch format output for git-diff-*
 306
 307link:git-mailinfo.html[git-mailinfo]::
 308        Extracts patch from a single e-mail message.
 309
 310link:git-mailsplit.html[git-mailsplit]::
 311        git-mailsplit.
 312
 313link:git-patch-id.html[git-patch-id]::
 314        Compute unique ID for a patch.
 315
 316link:git-send-email-script.html[git-send-email]::
 317        Send patch e-mails out of "format-patch --mbox" output.
 318
 319
 320Commands not yet documented
 321---------------------------
 322
 323link:git-build-rev-cache.html[git-build-rev-cache]::
 324        git-build-rev-cache.
 325
 326link:git-checkout-script.html[git-checkout-script]::
 327        git-checkout-script.
 328
 329link:git-clone-dumb-http.html[git-clone-dumb-http]::
 330        git-clone-dumb-http.
 331
 332link:git-daemon.html[git-daemon]::
 333        git-daemon.
 334
 335link:git-diff-script.html[git-diff-script]::
 336        git-diff-script.
 337
 338link:git-format-patch-script.html[git-format-patch-script]::
 339        git-format-patch-script.
 340
 341link:git-get-tar-commit-id.html[git-get-tar-commit-id]::
 342        git-get-tar-commit-id.
 343
 344link:git-request-pull-script.html[git-request-pull-script]::
 345        git-request-pull-script.
 346
 347link:git-reset-script.html[git-reset-script]::
 348        git-reset-script.
 349
 350link:git-rev-parse.html[git-rev-parse]::
 351        git-rev-parse.
 352
 353link:git-show-rev-cache.html[git-show-rev-cache]::
 354        git-show-rev-cache.
 355
 356link:git-stripspace.html[git-stripspace]::
 357        git-stripspace.
 358
 359link:gitk.html[gitk]::
 360        gitk.
 361
 362
 363Identifier Terminology
 364----------------------
 365<object>::
 366        Indicates the sha1 identifier for any type of object
 367
 368<blob>::
 369        Indicates a blob object sha1 identifier
 370
 371<tree>::
 372        Indicates a tree object sha1 identifier
 373
 374<commit>::
 375        Indicates a commit object sha1 identifier
 376
 377<tree-ish>::
 378        Indicates a tree, commit or tag object sha1 identifier.  A
 379        command that takes a <tree-ish> argument ultimately wants to
 380        operate on a <tree> object but automatically dereferences
 381        <commit> and <tag> objects that point at a <tree>.
 382
 383<type>::
 384        Indicates that an object type is required.
 385        Currently one of: blob/tree/commit/tag
 386
 387<file>::
 388        Indicates a filename - always relative to the root of
 389        the tree structure GIT_INDEX_FILE describes.
 390
 391Symbolic Identifiers
 392--------------------
 393Any git command accepting any <object> can also use the following
 394symbolic notation:
 395
 396HEAD::
 397        indicates the head of the repository (ie the contents of
 398        `$GIT_DIR/HEAD`)
 399<tag>::
 400        a valid tag 'name'+
 401        (ie the contents of `$GIT_DIR/refs/tags/<tag>`)
 402<head>::
 403        a valid head 'name'+
 404        (ie the contents of `$GIT_DIR/refs/heads/<head>`)
 405<snap>::
 406        a valid snapshot 'name'+
 407        (ie the contents of `$GIT_DIR/refs/snap/<snap>`)
 408
 409
 410File/Directory Structure
 411------------------------
 412The git-core manipulates the following areas in the directory:
 413
 414 .git/         The base (overridden with $GIT_DIR)
 415   objects/    The object base (overridden with $GIT_OBJECT_DIRECTORY)
 416     ??/       'First 2 chars of object' directories.
 417     pack/     Packed archives.
 418
 419   refs/       Directories containing symbolic names for objects
 420               (each file contains the hex SHA1 + newline)
 421     heads/    Commits which are heads of various sorts
 422     tags/     Tags, by the tag name (or some local renaming of it)
 423     */        Any other subdirectory of refs/ can be used to store
 424               files similar to what are under refs/heads/.
 425   HEAD        Symlink to refs/heads/<current-branch-name>
 426
 427Higher level SCMs may provide and manage additional information in the
 428GIT_DIR.
 429
 430Terminology
 431-----------
 432Please see link:glossary.html[glossary] document.
 433
 434
 435Environment Variables
 436---------------------
 437Various git commands use the following environment variables:
 438
 439The git Repository
 440~~~~~~~~~~~~~~~~~~
 441These environment variables apply to 'all' core git commands. Nb: it
 442is worth noting that they may be used/overridden by SCMS sitting above
 443git so take care if using Cogito etc
 444
 445'GIT_INDEX_FILE'::
 446        This environment allows the specification of an alternate
 447        cache/index file. If not specified, the default of
 448        `$GIT_DIR/index` is used.
 449
 450'GIT_OBJECT_DIRECTORY'::
 451        If the object storage directory is specified via this
 452        environment variable then the sha1 directories are created
 453        underneath - otherwise the default `$GIT_DIR/objects`
 454        directory is used.
 455
 456'GIT_ALTERNATE_OBJECT_DIRECTORIES'::
 457        Due to the immutable nature of git objects, old objects can be
 458        archived into shared, read-only directories. This variable
 459        specifies a ":" separated list of git object directories which
 460        can be used to search for git objects. New objects will not be
 461        written to these directories.
 462
 463'GIT_DIR'::
 464        If the 'GIT_DIR' environment variable is set then it specifies
 465        a path to use instead of `./.git` for the base of the
 466        repository.
 467
 468git Commits
 469~~~~~~~~~~~
 470'GIT_AUTHOR_NAME'::
 471'GIT_AUTHOR_EMAIL'::
 472'GIT_AUTHOR_DATE'::
 473'GIT_COMMITTER_NAME'::
 474'GIT_COMMITTER_EMAIL'::
 475        see link:git-commit-tree.html[git-commit-tree]
 476
 477git Diffs
 478~~~~~~~~~
 479'GIT_DIFF_OPTS'::
 480'GIT_EXTERNAL_DIFF'::
 481        see the "generating patches" section in :
 482        link:git-diff-cache.html[git-diff-cache];
 483        link:git-diff-files.html[git-diff-files];
 484        link:git-diff-tree.html[git-diff-tree]
 485
 486Discussion
 487----------
 488include::../README[]
 489
 490Author
 491------
 492Written by Linus Torvalds <torvalds@osdl.org> and the git-list <git@vger.kernel.org>.
 493
 494Documentation
 495--------------
 496Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.
 497
 498GIT
 499---
 500Part of the link:git.html[git] suite
 501