X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=Documentation%2Fgit.txt;h=bcf187a11cfaf754ecb93a2210139dd88f6a9d32;hb=d249b455475977f305240bb73473f25d040012cf;hp=8610d36c4927fe198604189e68b131cc58be7f4d;hpb=64ecb6247f89783a53297436fa452478a83bda53;p=git.git diff --git a/Documentation/git.txt b/Documentation/git.txt index 8610d36c4..bcf187a11 100644 --- a/Documentation/git.txt +++ b/Documentation/git.txt @@ -8,14 +8,22 @@ git - the stupid content tracker SYNOPSIS -------- -'git' [--version] [--exec-path[=GIT_EXEC_PATH]] [--help] COMMAND [ARGS] +'git' [--version] [--exec-path[=GIT_EXEC_PATH]] [-p|--paginate] + [--bare] [--git-dir=GIT_DIR] [--help] COMMAND [ARGS] DESCRIPTION ----------- -'git' is both a program and a directory content tracker system. -The program 'git' is just a wrapper to reach the core git programs -(or a potty if you like, as it's not exactly porcelain but still -brings your stuff to the plumbing). +Git is a fast, scalable, distributed revision control system with an +unusually rich command set that provides both high-level operations +and full access to internals. + +See this link:tutorial.html[tutorial] to get started, then see +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]. + +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]). OPTIONS ------- @@ -34,56 +42,48 @@ OPTIONS environment variable. If no path is given 'git' will print the current setting and then exit. +-p|--paginate:: + Pipe all output into 'less' (or if set, $PAGER). -NOT LEARNING CORE GIT COMMANDS ------------------------------- - -This manual is intended to give complete background information -and internal workings of git, which may be too much for most -people. The <> section below contains much useful -definition and clarification - read that first. - -If you are interested in using git to manage (version control) -projects, use link:tutorial.html[The Tutorial] to get you started, -and then link:everyday.html[Everyday GIT] as a guide to the -minimum set of commands you need to know for day-to-day work. -Most likely, that will get you started, and you can go a long -way without knowing the low level details too much. +--git-dir=:: + Set the path to the repository. This can also be controlled by + setting the GIT_DIR environment variable. -The link:core-tutorial.html[Core tutorial] document covers how things -internally work. +--bare:: + Same as --git-dir=`pwd`. -If you are migrating from CVS, link:cvs-migration.html[cvs -migration] document may be helpful after you finish the -tutorial. +FURTHER DOCUMENTATION +--------------------- -After you get the general feel from the tutorial and this -overview page, you may want to take a look at the -link:howto-index.html[howto] documents. +See the references above to get started using git. The following is +probably more detail than necessary for a first-time user. +The <> section below and the +link:core-tutorial.html[Core tutorial] both provide introductions to the +underlying git architecture. -CORE GIT COMMANDS ------------------ +See also the link:howto-index.html[howto] documents for some useful +examples. -If you are writing your own Porcelain, you need to be familiar -with most of the low level commands --- I suggest starting from -gitlink:git-update-index[1] and gitlink:git-read-tree[1]. +GIT COMMANDS +------------ +We divide git into high level ("porcelain") commands and low level +("plumbing") commands. -Commands Overview ------------------ -The git commands can helpfully be split into those that manipulate -the repository, the index and the files in the working tree, those that -interrogate and compare them, and those that moves objects and -references between repositories. +Low-level commands (plumbing) +----------------------------- -In addition, git itself comes with a spartan set of porcelain -commands. They are usable but are not meant to compete with real -Porcelains. +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 gitlink:git-update-index[1] and +gitlink:git-read-tree[1]. -There are also some ancillary programs that can be viewed as useful -aids for using the core commands but which are unlikely to be used by -SCMs layered over git. +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. Manipulation commands ~~~~~~~~~~~~~~~~~~~~~ @@ -113,6 +113,9 @@ gitlink:git-merge-index[1]:: 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. @@ -199,10 +202,6 @@ the working tree. Synching repositories ~~~~~~~~~~~~~~~~~~~~~ -gitlink:git-clone-pack[1]:: - Clones a repository into the current repository (engine - for ssh and local transport). - gitlink:git-fetch-pack[1]:: Updates from a remote repository (engine for ssh and local transport). @@ -244,12 +243,22 @@ gitlink:git-update-server-info[1]:: clients discover references and packs on it. gitlink:git-upload-pack[1]:: - Invoked by 'git-clone-pack' and 'git-fetch-pack' to push + Invoked by 'git-fetch-pack' to push what are asked for. +gitlink:git-upload-tar[1]:: + Invoked by 'git-tar-tree --remote' to return the tar + archive the other end asked for. -Porcelain-ish Commands ----------------------- + +High-level commands (porcelain) +------------------------------- + +We separate the porcelain commands into the main commands and some +ancillary user utilities. + +Main porcelain commands +~~~~~~~~~~~~~~~~~~~~~~~ gitlink:git-add[1]:: Add paths to the index. @@ -272,6 +281,9 @@ gitlink:git-checkout[1]:: 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. @@ -326,9 +338,15 @@ gitlink:git-resolve[1]:: 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. @@ -343,7 +361,7 @@ gitlink:git-whatchanged[1]:: Ancillary Commands ------------------- +~~~~~~~~~~~~~~~~~~ Manipulators: gitlink:git-applypatch[1]:: @@ -361,6 +379,9 @@ gitlink:git-cvsimport[1]:: gitlink:git-cvsexportcommit[1]:: Export a single commit to a CVS checkout. +gitlink:git-cvsserver[1]:: + A CVS server emulator for git. + gitlink:git-lost-found[1]:: Recover lost refs that luckily have not yet been pruned. @@ -370,9 +391,15 @@ gitlink:git-merge-one-file[1]:: 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-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. @@ -391,6 +418,12 @@ gitlink:git-update-ref[1]:: Interrogators: +gitlink:git-annotate[1]:: + Annotate file lines with commit info. + +gitlink:git-blame[1]:: + Blame file lines on commits. + gitlink:git-check-ref-format[1]:: Make sure ref name is well formed. @@ -403,9 +436,18 @@ gitlink:git-count-objects[1]:: 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 @@ -415,6 +457,9 @@ 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. @@ -449,7 +494,7 @@ 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 modelled after `.ini` format familiar to some +simple text file modeled after `.ini` format familiar to some people. Here is an example: ------------ @@ -518,16 +563,14 @@ HEAD:: a valid head 'name' (i.e. the contents of `$GIT_DIR/refs/heads/`). -:: - a valid snapshot 'name' - (i.e. the contents of `$GIT_DIR/refs/snap/`). - File/Directory Structure ------------------------ Please see link:repository-layout.html[repository layout] document. +Read link:hooks.html[hooks] for more details about each hook. + Higher level SCMs may provide and manage additional information in the `$GIT_DIR`. @@ -588,6 +631,13 @@ git Diffs gitlink:git-diff-files[1]; gitlink:git-diff-tree[1] +other +~~~~~ +'GIT_TRACE':: + If this variable is set git will print `trace:` messages on + stderr telling about alias expansion, built-in command + execution and external command execution. + Discussion[[Discussion]] ------------------------ include::README[]