link:everyday.html[Everyday Git] for a useful minimum set of commands, and
"man git-commandname" for documentation of each command. CVS users may
also want to read link:cvs-migration.html[CVS migration].
+link:user-manual.html[Git User's Manual] is still work in
+progress, but when finished hopefully it will guide a new user
+in a coherent way to git enlightenment ;-).
The COMMAND is either a name of a Git command (see below) or an alias
-as defined in the configuration file (see gitlink:git-repo-config[1]).
+as defined in the configuration file (see gitlink:git-config[1]).
+
+ifdef::stalenotes[]
+[NOTE]
+============
+You are reading the documentation for the latest version of git.
+Documentation for older releases are available here:
+
+* link:v1.4.4.4/git.html[documentation for release 1.4.4.4]
+
+* link:v1.3.3/git.html[documentation for release 1.3.3]
+
+* link:v1.2.6/git.html[documentation for release 1.2.6]
+
+* link:v1.0.13/git.html[documentation for release 1.0.13]
+
+============
+
+endif::stalenotes[]
OPTIONS
-------
Main porcelain commands
~~~~~~~~~~~~~~~~~~~~~~~
-gitlink:git-add[1]::
- Add paths to the index.
-
-gitlink:git-am[1]::
- Apply patches from a mailbox, but cooler.
-
-gitlink:git-applymbox[1]::
- Apply patches from a mailbox, original version by Linus.
-
-gitlink:git-archive[1]::
- Creates an archive of files from a named tree.
-
-gitlink:git-bisect[1]::
- Find the change that introduced a bug by binary search.
-
-gitlink:git-branch[1]::
- Create and Show branches.
-
-gitlink:git-checkout[1]::
- Checkout and switch to a branch.
-
-gitlink:git-cherry-pick[1]::
- Cherry-pick the effect of an existing commit.
-
-gitlink:git-clean[1]::
- Remove untracked files from the working tree.
-
-gitlink:git-clone[1]::
- Clones a repository into a new directory.
-
-gitlink:git-commit[1]::
- Record changes to the repository.
-
-gitlink:git-diff[1]::
- Show changes between commits, commit and working tree, etc.
-
-gitlink:git-fetch[1]::
- Download from a remote repository via various protocols.
-
-gitlink:git-format-patch[1]::
- Prepare patches for e-mail submission.
-
-gitlink:git-grep[1]::
- Print lines matching a pattern.
-
-gitlink:gitk[1]::
- The git repository browser.
-
-gitlink:git-log[1]::
- Shows commit logs.
-
-gitlink:git-ls-remote[1]::
- Shows references in a remote or local repository.
-
-gitlink:git-merge[1]::
- Grand unified merge driver.
-
-gitlink:git-mv[1]::
- Move or rename a file, a directory, or a symlink.
-
-gitlink:git-pack-refs[1]::
- Pack heads and tags for efficient repository access.
-
-gitlink:git-pull[1]::
- Fetch from and merge with a remote repository or a local branch.
-
-gitlink:git-push[1]::
- Update remote refs along with associated objects.
-
-gitlink:git-rebase[1]::
- Rebase local commits to the updated upstream head.
-
-gitlink:git-repack[1]::
- Pack unpacked objects in a repository.
-
-gitlink:git-rerere[1]::
- Reuse recorded resolution of conflicted merges.
-
-gitlink:git-reset[1]::
- Reset current HEAD to the specified state.
-
-gitlink:git-resolve[1]::
- Merge two commits.
-
-gitlink:git-revert[1]::
- Revert an existing commit.
-
-gitlink:git-rm[1]::
- Remove files from the working tree and from the index.
-
-gitlink:git-shortlog[1]::
- Summarizes 'git log' output.
-
-gitlink:git-show[1]::
- Show one commit log and its diff.
-
-gitlink:git-show-branch[1]::
- Show branches and their commits.
-
-gitlink:git-status[1]::
- Shows the working tree status.
-
-gitlink:git-verify-tag[1]::
- Check the GPG signature of tag.
-
-gitlink:git-whatchanged[1]::
- Shows commit logs and differences they introduce.
-
+include::cmds-mainporcelain.txt[]
Ancillary Commands
~~~~~~~~~~~~~~~~~~
Manipulators:
-gitlink:git-applypatch[1]::
- Apply one patch extracted from an e-mail.
-
-gitlink:git-archimport[1]::
- Import an arch repository into git.
-
-gitlink:git-convert-objects[1]::
- Converts old-style git repository.
-
-gitlink:git-cvsimport[1]::
- Salvage your data out of another SCM people love to hate.
-
-gitlink:git-cvsexportcommit[1]::
- Export a single commit to a CVS checkout.
-
-gitlink:git-cvsserver[1]::
- A CVS server emulator for git.
-
-gitlink:git-gc[1]::
- Cleanup unnecessary files and optimize the local repository.
-
-gitlink:git-lost-found[1]::
- Recover lost refs that luckily have not yet been pruned.
-
-gitlink:git-merge-one-file[1]::
- The standard helper program to use with `git-merge-index`.
-
-gitlink:git-prune[1]::
- Prunes all unreachable objects from the object database.
-
-gitlink:git-quiltimport[1]::
- Applies a quilt patchset onto the current branch.
-
-gitlink:git-reflog[1]::
- Manage reflog information.
-
-gitlink:git-relink[1]::
- Hardlink common objects in local repositories.
-
-gitlink:git-svn[1]::
- Bidirectional operation between a single Subversion branch and git.
-
-gitlink:git-svnimport[1]::
- Import a SVN repository into git.
-
-gitlink:git-sh-setup[1]::
- Common git shell script setup code.
-
-gitlink:git-symbolic-ref[1]::
- Read and modify symbolic refs.
-
-gitlink:git-tag[1]::
- Create or verify a tag object signed with GPG.
-
-gitlink:git-update-ref[1]::
- Update the object name stored in a ref safely.
-
+include::cmds-ancillarymanipulators.txt[]
Interrogators:
-gitlink:git-annotate[1]::
- Annotate file lines with commit info.
-
-gitlink:git-blame[1]::
- Find out where each line in a file came from.
-
-gitlink:git-check-ref-format[1]::
- Make sure ref name is well formed.
-
-gitlink:git-cherry[1]::
- Find commits not merged upstream.
-
-gitlink:git-count-objects[1]::
- Count unpacked number of objects and their disk consumption.
-
-gitlink:git-daemon[1]::
- A really simple server for git repositories.
-
-gitlink:git-fmt-merge-msg[1]::
- Produce a merge commit message.
-
-gitlink:git-get-tar-commit-id[1]::
- Extract commit ID from an archive created using git-tar-tree.
-
-gitlink:git-imap-send[1]::
- Dump a mailbox from stdin into an imap folder.
-
-gitlink:git-instaweb[1]::
- Instantly browse your working repository in gitweb.
-
-gitlink:git-mailinfo[1]::
- Extracts patch and authorship information from a single
- e-mail message, optionally transliterating the commit
- message into utf-8.
-
-gitlink:git-mailsplit[1]::
- A stupid program to split UNIX mbox format mailbox into
- individual pieces of e-mail.
-
-gitlink:git-merge-tree[1]::
- Show three-way merge without touching index.
-
-gitlink:git-patch-id[1]::
- Compute unique ID for a patch.
-
-gitlink:git-parse-remote[1]::
- Routines to help parsing `$GIT_DIR/remotes/` files.
+include::cmds-ancillaryinterrogators.txt[]
-gitlink:git-request-pull[1]::
- git-request-pull.
-gitlink:git-rev-parse[1]::
- Pick out and massage parameters.
-
-gitlink:git-runstatus[1]::
- A helper for git-status and git-commit.
-
-gitlink:git-send-email[1]::
- Send patch e-mails out of "format-patch --mbox" output.
+Interacting with Others
+~~~~~~~~~~~~~~~~~~~~~~~
-gitlink:git-symbolic-ref[1]::
- Read and modify symbolic refs.
+These commands are to interact with foreign SCM and with other
+people via patch over e-mail.
-gitlink:git-stripspace[1]::
- Filter out empty lines.
+include::cmds-foreignscminterface.txt[]
Low-level commands (plumbing)
might start by reading about gitlink:git-update-index[1] and
gitlink:git-read-tree[1].
-We divide the low-level commands into commands that manipulate objects (in
+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.
+
Manipulation commands
~~~~~~~~~~~~~~~~~~~~~
-gitlink:git-apply[1]::
- Reads a "diff -up1" or git generated patch file and
- applies it to the working tree.
-
-gitlink:git-checkout-index[1]::
- Copy files from the index to the working tree.
-
-gitlink:git-commit-tree[1]::
- Creates a new commit object.
-
-gitlink:git-hash-object[1]::
- Computes the object ID from a file.
-
-gitlink:git-index-pack[1]::
- Build pack idx file for an existing packed archive.
-
-gitlink:git-init[1]::
- Creates an empty git repository, or reinitialize an
- existing one.
-
-gitlink:git-merge-file[1]::
- Runs a threeway merge.
-
-gitlink:git-merge-index[1]::
- Runs a merge for files needing merging.
-
-gitlink:git-mktag[1]::
- Creates a tag object.
-
-gitlink:git-mktree[1]::
- Build a tree-object from ls-tree formatted text.
-
-gitlink:git-pack-objects[1]::
- Creates a packed archive of objects.
-gitlink:git-prune-packed[1]::
- Remove extra objects that are already in pack files.
-
-gitlink:git-read-tree[1]::
- Reads tree information into the index.
-
-gitlink:git-repo-config[1]::
- Get and set options in .git/config.
-
-gitlink:git-unpack-objects[1]::
- Unpacks objects out of a packed archive.
-
-gitlink:git-update-index[1]::
- Registers files in the working tree to the index.
-
-gitlink:git-write-tree[1]::
- Creates a tree from the index.
+include::cmds-plumbingmanipulators.txt[]
Interrogation commands
~~~~~~~~~~~~~~~~~~~~~~
-gitlink:git-cat-file[1]::
- Provide content or type/size information for repository objects.
-
-gitlink:git-describe[1]::
- Show the most recent tag that is reachable from a commit.
-
-gitlink:git-diff-index[1]::
- Compares content and mode of blobs between the index and repository.
-
-gitlink:git-diff-files[1]::
- Compares files in the working tree and the index.
-
-gitlink:git-diff-stages[1]::
- Compares two "merge stages" in the index.
-
-gitlink:git-diff-tree[1]::
- Compares the content and mode of blobs found via two tree objects.
-
-gitlink:git-for-each-ref[1]::
- Output information on each ref.
-
-gitlink:git-fsck-objects[1]::
- Verifies the connectivity and validity of the objects in the database.
-
-gitlink:git-ls-files[1]::
- Information about files in the index and the working tree.
-
-gitlink:git-ls-tree[1]::
- Displays a tree object in human readable form.
-
-gitlink:git-merge-base[1]::
- Finds as good common ancestors as possible for a merge.
-
-gitlink:git-name-rev[1]::
- Find symbolic names for given revs.
-
-gitlink:git-pack-redundant[1]::
- Find redundant pack files.
-
-gitlink:git-rev-list[1]::
- Lists commit objects in reverse chronological order.
-
-gitlink:git-show-index[1]::
- Displays contents of a pack idx file.
-
-gitlink:git-show-ref[1]::
- List references in a local repository.
-
-gitlink:git-tar-tree[1]::
- Creates a tar archive of the files in the named tree object.
-
-gitlink:git-unpack-file[1]::
- Creates a temporary file with a blob's contents.
-
-gitlink:git-var[1]::
- Displays a git logical variable.
-
-gitlink:git-verify-pack[1]::
- Validates packed git archive files.
+include::cmds-plumbinginterrogators.txt[]
In general, the interrogate commands do not touch the files in
the working tree.
Synching repositories
~~~~~~~~~~~~~~~~~~~~~
-gitlink:git-fetch-pack[1]::
- Updates from a remote repository (engine for ssh and
- local transport).
-
-gitlink:git-http-fetch[1]::
- Downloads a remote git repository via HTTP by walking
- commit chain.
-
-gitlink:git-local-fetch[1]::
- Duplicates another git repository on a local system by
- walking commit chain.
-
-gitlink:git-peek-remote[1]::
- Lists references on a remote repository using
- upload-pack protocol (engine for ssh and local
- transport).
-
-gitlink:git-receive-pack[1]::
- Invoked by 'git-send-pack' to receive what is pushed to it.
-
-gitlink:git-send-pack[1]::
- Pushes to a remote repository, intelligently.
-
-gitlink:git-http-push[1]::
- Push missing objects using HTTP/DAV.
+include::cmds-synchingrepositories.txt[]
-gitlink:git-shell[1]::
- Restricted shell for GIT-only SSH access.
+The following are helper programs used by the above; end users
+typically do not use them directly.
-gitlink:git-ssh-fetch[1]::
- Pulls from a remote repository over ssh connection by
- walking commit chain.
+include::cmds-synchelpers.txt[]
-gitlink:git-ssh-upload[1]::
- Helper "server-side" program used by git-ssh-fetch.
-gitlink:git-update-server-info[1]::
- Updates auxiliary information on a dumb server to help
- clients discover references and packs on it.
+Internal helper commands
+~~~~~~~~~~~~~~~~~~~~~~~~
-gitlink:git-upload-archive[1]::
- Invoked by 'git-archive' to send a generated archive.
+These are internal helper commands used by other commands; end
+users typically do not use them directly.
-gitlink:git-upload-pack[1]::
- Invoked by 'git-fetch-pack' to push
- what are asked for.
+include::cmds-purehelpers.txt[]
Configuration Mechanism
Discussion[[Discussion]]
------------------------
-include::README[]
+include::core-intro.txt[]
Authors
-------