.\" It was generated using the DocBook XSL Stylesheets (version 1.69.1).
.\" Instead of manually editing it, you probably should edit the DocBook XML
.\" source for it and then use the DocBook XSL Stylesheets to regenerate it.
-.TH "GIT" "7" "01/19/2007" "" ""
+.TH "GIT" "7" "01/20/2007" "" ""
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
\fBgit\-am\fR(1)
Apply a series of patches from a mailbox.
.TP
-\fBgit\-applymbox\fR(1)
-Apply a series of patches in a mailbox.
-.TP
\fBgit\-archive\fR(1)
Creates an archive of files from a named tree.
.TP
\fBgit\-commit\fR(1)
Record changes to the repository.
.TP
+\fBgit\-describe\fR(1)
+Show the most recent tag that is reachable from a commit.
+.TP
\fBgit\-diff\fR(1)
Show changes between commits, commit and working tree, etc.
.TP
\fBgit\-format\-patch\fR(1)
Prepare patches for e\-mail submission.
.TP
+\fBgit\-gc\fR(1)
+Cleanup unnecessary files and optimize the local repository.
+.TP
\fBgit\-grep\fR(1)
Print lines matching a pattern.
.TP
+\fBgit\-init\fR(1)
+Create an empty git repository or reinitialize an existing one.
+.TP
\fBgitk\fR(1)
The git repository browser.
.TP
\fBgit\-log\fR(1)
Show commit logs.
.TP
-\fBgit\-ls\-remote\fR(1)
-List references in a remote repository.
-.TP
\fBgit\-merge\fR(1)
Join two or more development histories together.
.TP
\fBgit\-mv\fR(1)
Move or rename a file, a directory, or a symlink.
.TP
-\fBgit\-pack\-refs\fR(1)
-Pack heads and tags for efficient repository access.
-.TP
\fBgit\-pull\fR(1)
Fetch from and merge with another repository or a local branch.
.TP
\fBgit\-rebase\fR(1)
Forward\-port local commits to the updated upstream head.
.TP
-\fBgit\-repack\fR(1)
-Pack unpacked objects in a repository.
-.TP
-\fBgit\-rerere\fR(1)
-Reuse recorded resolution of conflicted merges.
-.TP
\fBgit\-reset\fR(1)
Reset current HEAD to the specified state.
.TP
\fBgit\-show\fR(1)
Show various types of objects.
.TP
-\fBgit\-show\-branch\fR(1)
-Show branches and their commits.
-.TP
\fBgit\-status\fR(1)
Show the working tree status.
.TP
-\fBgit\-verify\-tag\fR(1)
-Check the GPG signature of tag.
-.TP
-\fBgit\-whatchanged\fR(1)
-Show logs with difference each commit introduces.
+\fBgit\-tag\fR(1)
+Create or verify a tag object signed with GPG.
.SS "Ancillary Commands"
Manipulators:
.TP
-\fBgit\-applypatch\fR(1)
-Apply one patch extracted from an e\-mail.
-.TP
-\fBgit\-archimport\fR(1)
-Import an Arch repository into git.
-.TP
\fBgit\-convert\-objects\fR(1)
Converts old\-style git repository.
.TP
-\fBgit\-cvsexportcommit\fR(1)
-Export a single commit to a CVS checkout.
-.TP
-\fBgit\-cvsimport\fR(1)
-Salvage your data out of another SCM people love to hate.
-.TP
-\fBgit\-cvsserver\fR(1)
-A CVS server emulator for git.
-.TP
-\fBgit\-gc\fR(1)
-Cleanup unnecessary files and optimize the local repository.
-.TP
\fBgit\-lost\-found\fR(1)
Recover lost refs that luckily have not yet been pruned.
.TP
-\fBgit\-merge\-one\-file\fR(1)
-The standard helper program to use with git\-merge\-index.
+\fBgit\-pack\-refs\fR(1)
+Pack heads and tags for efficient repository access.
.TP
\fBgit\-prune\fR(1)
Prunes all unreachable objects from the object database.
.TP
-\fBgit\-quiltimport\fR(1)
-Applies a quilt patchset onto the current branch.
-.TP
\fBgit\-reflog\fR(1)
Manage reflog information.
.TP
\fBgit\-relink\fR(1)
Hardlink common objects in local repositories.
.TP
-\fBgit\-sh\-setup\fR(1)
-Common git shell script setup code.
-.TP
-\fBgit\-svn\fR(1)
-Bidirectional operation between a single Subversion branch and git.
-.TP
-\fBgit\-svnimport\fR(1)
-Import a SVN repository into git.
-.TP
-\fBgit\-symbolic\-ref\fR(1)
-Read and modify symbolic refs.
-.TP
-\fBgit\-tag\fR(1)
-Create or verify a tag object signed with GPG.
+\fBgit\-repack\fR(1)
+Pack unpacked objects in a repository.
.TP
-\fBgit\-update\-ref\fR(1)
-Update the object name stored in a ref safely.
+\fBgit\-repo\-config\fR(1)
+Get and set repository or global options.
Interrogators:
.TP
\fBgit\-annotate\fR(1)
Annotate file lines with commit info.
.TP
+\fBgit\-applymbox\fR(1)
+Apply a series of patches in a mailbox.
+.TP
\fBgit\-blame\fR(1)
Show what revision and author last modified each line of a file.
.TP
-\fBgit\-check\-ref\-format\fR(1)
-Make sure ref name is well formed.
-.TP
\fBgit\-cherry\fR(1)
Find commits not merged upstream.
.TP
\fBgit\-count\-objects\fR(1)
Count unpacked number of objects and their disk consumption.
.TP
-\fBgit\-daemon\fR(1)
-A really simple server for git repositories.
-.TP
-\fBgit\-fmt\-merge\-msg\fR(1)
-Produce a merge commit message.
+\fBgit\-fsck\-objects\fR(1)
+Verifies the connectivity and validity of the objects in the database.
.TP
\fBgit\-get\-tar\-commit\-id\fR(1)
Extract commit ID from an archive created using git\-tar\-tree.
.TP
-\fBgit\-imap\-send\fR(1)
-Dump a mailbox from stdin into an imap folder.
-.TP
\fBgit\-instaweb\fR(1)
Instantly browse your working repository in gitweb.
.TP
-\fBgit\-mailinfo\fR(1)
-Extracts patch and authorship from a single e\-mail message.
-.TP
-\fBgit\-mailsplit\fR(1)
-Simple UNIX mbox splitter program.
-.TP
\fBgit\-merge\-tree\fR(1)
Show three\-way merge without touching index.
.TP
-\fBgit\-parse\-remote\fR(1)
-Routines to help parsing remote repository access parameters.
-.TP
-\fBgit\-patch\-id\fR(1)
-Compute unique ID for a patch.
-.TP
-\fBgit\-request\-pull\fR(1)
-Generates a summary of pending changes.
+\fBgit\-rerere\fR(1)
+Reuse recorded resolution of conflicted merges.
.TP
\fBgit\-rev\-parse\fR(1)
Pick out and massage parameters.
\fBgit\-runstatus\fR(1)
A helper for git\-status and git\-commit.
.TP
+\fBgit\-show\-branch\fR(1)
+Show branches and their commits.
+.TP
+\fBgit\-verify\-tag\fR(1)
+Check the GPG signature of tag.
+.TP
+\fBgit\-whatchanged\fR(1)
+Show logs with difference each commit introduces.
+.SS "Interacting with Others"
+These commands are to interact with foreign SCM and with other people via patch over e\-mail.
+.TP
+\fBgit\-archimport\fR(1)
+Import an Arch repository into git.
+.TP
+\fBgit\-cvsexportcommit\fR(1)
+Export a single commit to a CVS checkout.
+.TP
+\fBgit\-cvsimport\fR(1)
+Salvage your data out of another SCM people love to hate.
+.TP
+\fBgit\-cvsserver\fR(1)
+A CVS server emulator for git.
+.TP
+\fBgit\-imap\-send\fR(1)
+Dump a mailbox from stdin into an imap folder.
+.TP
+\fBgit\-quiltimport\fR(1)
+Applies a quilt patchset onto the current branch.
+.TP
+\fBgit\-request\-pull\fR(1)
+Generates a summary of pending changes.
+.TP
\fBgit\-send\-email\fR(1)
Send a collection of patches as emails.
.TP
-\fBgit\-stripspace\fR(1)
-Filter out empty lines.
+\fBgit\-svn\fR(1)
+Bidirectional operation between a single Subversion branch and git.
.TP
-\fBgit\-symbolic\-ref\fR(1)
-Read and modify symbolic refs.
+\fBgit\-svnimport\fR(1)
+Import a SVN repository into git.
.SH "LOW\-LEVEL COMMANDS (PLUMBING)"
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 \fBgit\-update\-index\fR(1) and \fBgit\-read\-tree\fR(1).
-We divide the low\-level commands into commands that manipulate objects (in the repository, index, and working tree), commands that interrogate and compare objects, and commands that move objects and references between repositories.
+The interface (input, output, set of options and the semantics) to these low\-level commands are meant to be a lot more stable than Porcelain level commands, because these commands are primarily for scripted use. The interface to Porcelain commands on the other hand are subject to change in order to improve the end user experience.
+
+The following description divides the low\-level commands into commands that manipulate objects (in the repository, index, and working tree), commands that interrogate and compare objects, and commands that move objects and references between repositories.
.SS "Manipulation commands"
.TP
\fBgit\-apply\fR(1)
\fBgit\-index\-pack\fR(1)
Build pack index file for an existing packed archive.
.TP
-\fBgit\-init\fR(1)
-Create an empty git repository or reinitialize an existing one.
-.TP
\fBgit\-merge\-file\fR(1)
Run a three\-way file merge.
.TP
\fBgit\-read\-tree\fR(1)
Reads tree information into the index.
.TP
-\fBgit\-repo\-config\fR(1)
-Get and set repository or global options.
+\fBgit\-symbolic\-ref\fR(1)
+Read and modify symbolic refs.
.TP
\fBgit\-unpack\-objects\fR(1)
Unpack objects from a packed archive.
\fBgit\-update\-index\fR(1)
Register file contents in the working tree to the index.
.TP
+\fBgit\-update\-ref\fR(1)
+Update the object name stored in a ref safely.
+.TP
\fBgit\-write\-tree\fR(1)
Create a tree object from the current index.
.SS "Interrogation commands"
\fBgit\-cat\-file\fR(1)
Provide content or type/size information for repository objects.
.TP
-\fBgit\-describe\fR(1)
-Show the most recent tag that is reachable from a commit.
-.TP
\fBgit\-diff\-files\fR(1)
Compares files in the working tree and the index.
.TP
\fBgit\-for\-each\-ref\fR(1)
Output information on each ref.
.TP
-\fBgit\-fsck\-objects\fR(1)
-Verifies the connectivity and validity of the objects in the database.
-.TP
\fBgit\-ls\-files\fR(1)
Show information about files in the index and the working tree.
.TP
+\fBgit\-ls\-remote\fR(1)
+List references in a remote repository.
+.TP
\fBgit\-ls\-tree\fR(1)
List the contents of a tree object.
.TP
In general, the interrogate commands do not touch the files in the working tree.
.SS "Synching repositories"
.TP
+\fBgit\-daemon\fR(1)
+A really simple server for git repositories.
+.TP
\fBgit\-fetch\-pack\fR(1)
Receive missing objects from another repository.
.TP
-\fBgit\-http\-fetch\fR(1)
-Download from a remote git repository via HTTP.
-.TP
-\fBgit\-http\-push\fR(1)
-Push objects over HTTP/DAV to another repository.
-.TP
\fBgit\-local\-fetch\fR(1)
Duplicate another git repository on a local system.
.TP
-\fBgit\-peek\-remote\fR(1)
-List the references in a remote repository.
-.TP
-\fBgit\-receive\-pack\fR(1)
-Receive what is pushed into the repository.
-.TP
\fBgit\-send\-pack\fR(1)
Push objects over git protocol to another reposiotory.
.TP
-\fBgit\-shell\fR(1)
-Restricted login shell for GIT\-only SSH access.
-.TP
\fBgit\-ssh\-fetch\fR(1)
Fetch from a remote repository over ssh connection.
.TP
.TP
\fBgit\-update\-server\-info\fR(1)
Update auxiliary info file to help dumb servers.
+
+The following are helper programs used by the above; end users typically do not use them directly.
+.TP
+\fBgit\-http\-fetch\fR(1)
+Download from a remote git repository via HTTP.
+.TP
+\fBgit\-http\-push\fR(1)
+Push objects over HTTP/DAV to another repository.
+.TP
+\fBgit\-parse\-remote\fR(1)
+Routines to help parsing remote repository access parameters.
+.TP
+\fBgit\-receive\-pack\fR(1)
+Receive what is pushed into the repository.
+.TP
+\fBgit\-shell\fR(1)
+Restricted login shell for GIT\-only SSH access.
.TP
\fBgit\-upload\-archive\fR(1)
Send archive back to git\-archive.
.TP
\fBgit\-upload\-pack\fR(1)
Send objects packed back to git\-fetch\-pack.
+.SS "Internal helper commands"
+These are internal helper commands used by other commands; end users typically do not use them directly.
+.TP
+\fBgit\-applypatch\fR(1)
+Apply one patch extracted from an e\-mail.
+.TP
+\fBgit\-check\-ref\-format\fR(1)
+Make sure ref name is well formed.
+.TP
+\fBgit\-fmt\-merge\-msg\fR(1)
+Produce a merge commit message.
+.TP
+\fBgit\-mailinfo\fR(1)
+Extracts patch and authorship from a single e\-mail message.
+.TP
+\fBgit\-mailsplit\fR(1)
+Simple UNIX mbox splitter program.
+.TP
+\fBgit\-merge\-one\-file\fR(1)
+The standard helper program to use with git\-merge\-index.
+.TP
+\fBgit\-patch\-id\fR(1)
+Compute unique ID for a patch.
+.TP
+\fBgit\-peek\-remote\fR(1)
+List the references in a remote repository.
+.TP
+\fBgit\-sh\-setup\fR(1)
+Common git shell script setup code.
+.TP
+\fBgit\-stripspace\fR(1)
+Filter out empty lines.
.SH "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:
.sp