diff --git a/git/git-booklet.pdf b/git/git-booklet.pdf
new file mode 100644
index 0000000..7cf4618
Binary files /dev/null and b/git/git-booklet.pdf differ
diff --git a/git/git.1 b/git/git.1
new file mode 100644
index 0000000..4d3fd4e
--- /dev/null
+++ b/git/git.1
@@ -0,0 +1,1841 @@
+'\" t
+.\" Title: git
+.\" Author: [see the "Authors" section]
+.\" Generator: DocBook XSL Stylesheets v1.79.1
+.\" Date: 03/04/2021
+.\" Manual: Git Manual
+.\" Source: Git 2.25.1
+.\" Language: English
+.\"
+.TH "GIT" "1" "03/04/2021" "Git 2\&.25\&.1" "Git Manual"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+git \- the stupid content tracker
+.SH "SYNOPSIS"
+.sp
+.nf
+\fIgit\fR [\-\-version] [\-\-help] [\-C ] [\-c =]
+ [\-\-exec\-path[=]] [\-\-html\-path] [\-\-man\-path] [\-\-info\-path]
+ [\-p|\-\-paginate|\-P|\-\-no\-pager] [\-\-no\-replace\-objects] [\-\-bare]
+ [\-\-git\-dir=] [\-\-work\-tree=] [\-\-namespace=]
+ [\-\-super\-prefix=]
+ []
+.fi
+.sp
+.SH "DESCRIPTION"
+.sp
+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\&.
+.sp
+See \fBgittutorial\fR(7) to get started, then see \fBgiteveryday\fR(7) for a useful minimum set of commands\&. The \m[blue]\fBGit User\(cqs Manual\fR\m[]\&\s-2\u[1]\d\s+2 has a more in\-depth introduction\&.
+.sp
+After you mastered the basic concepts, you can come back to this page to learn what commands Git offers\&. You can learn more about individual Git commands with "git help command"\&. \fBgitcli\fR(7) manual page gives you an overview of the command\-line command syntax\&.
+.sp
+A formatted and hyperlinked copy of the latest Git documentation can be viewed at \m[blue]\fBhttps://git\&.github\&.io/htmldocs/git\&.html\fR\m[] or \m[blue]\fBhttps://git\-scm\&.com/docs\fR\m[]\&.
+.SH "OPTIONS"
+.PP
+\-\-version
+.RS 4
+Prints the Git suite version that the
+\fIgit\fR
+program came from\&.
+.RE
+.PP
+\-\-help
+.RS 4
+Prints the synopsis and a list of the most commonly used commands\&. If the option
+\fB\-\-all\fR
+or
+\fB\-a\fR
+is given then all available commands are printed\&. If a Git command is named this option will bring up the manual page for that command\&.
+.sp
+Other options are available to control how the manual page is displayed\&. See
+\fBgit-help\fR(1)
+for more information, because
+\fBgit \-\-help \&.\&.\&.\fR
+is converted internally into
+\fBgit help \&.\&.\&.\fR\&.
+.RE
+.PP
+\-C
+.RS 4
+Run as if git was started in
+\fI\fR
+instead of the current working directory\&. When multiple
+\fB\-C\fR
+options are given, each subsequent non\-absolute
+\fB\-C \fR
+is interpreted relative to the preceding
+\fB\-C \fR\&. If
+\fI\fR
+is present but empty, e\&.g\&.
+\fB\-C ""\fR, then the current working directory is left unchanged\&.
+.sp
+This option affects options that expect path name like
+\fB\-\-git\-dir\fR
+and
+\fB\-\-work\-tree\fR
+in that their interpretations of the path names would be made relative to the working directory caused by the
+\fB\-C\fR
+option\&. For example the following invocations are equivalent:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+git \-\-git\-dir=a\&.git \-\-work\-tree=b \-C c status
+git \-\-git\-dir=c/a\&.git \-\-work\-tree=c/b status
+.fi
+.if n \{\
+.RE
+.\}
+.RE
+.PP
+\-c =
+.RS 4
+Pass a configuration parameter to the command\&. The value given will override values from configuration files\&. The is expected in the same format as listed by
+\fIgit config\fR
+(subkeys separated by dots)\&.
+.sp
+Note that omitting the
+\fB=\fR
+in
+\fBgit \-c foo\&.bar \&.\&.\&.\fR
+is allowed and sets
+\fBfoo\&.bar\fR
+to the boolean true value (just like
+\fB[foo]bar\fR
+would in a config file)\&. Including the equals but with an empty value (like
+\fBgit \-c foo\&.bar= \&.\&.\&.\fR) sets
+\fBfoo\&.bar\fR
+to the empty string which
+\fBgit config \-\-type=bool\fR
+will convert to
+\fBfalse\fR\&.
+.RE
+.PP
+\-\-exec\-path[=]
+.RS 4
+Path to wherever your core Git programs are installed\&. This can also be controlled by setting the GIT_EXEC_PATH environment variable\&. If no path is given,
+\fIgit\fR
+will print the current setting and then exit\&.
+.RE
+.PP
+\-\-html\-path
+.RS 4
+Print the path, without trailing slash, where Git\(cqs HTML documentation is installed and exit\&.
+.RE
+.PP
+\-\-man\-path
+.RS 4
+Print the manpath (see
+\fBman(1)\fR) for the man pages for this version of Git and exit\&.
+.RE
+.PP
+\-\-info\-path
+.RS 4
+Print the path where the Info files documenting this version of Git are installed and exit\&.
+.RE
+.PP
+\-p, \-\-paginate
+.RS 4
+Pipe all output into
+\fIless\fR
+(or if set, $PAGER) if standard output is a terminal\&. This overrides the
+\fBpager\&.\fR
+configuration options (see the "Configuration Mechanism" section below)\&.
+.RE
+.PP
+\-P, \-\-no\-pager
+.RS 4
+Do not pipe Git output into a pager\&.
+.RE
+.PP
+\-\-git\-dir=
+.RS 4
+Set the path to the repository\&. This can also be controlled by setting the
+\fBGIT_DIR\fR
+environment variable\&. It can be an absolute path or relative path to current working directory\&.
+.RE
+.PP
+\-\-work\-tree=
+.RS 4
+Set the path to the working tree\&. It can be an absolute path or a path relative to the current working directory\&. This can also be controlled by setting the GIT_WORK_TREE environment variable and the core\&.worktree configuration variable (see core\&.worktree in
+\fBgit-config\fR(1)
+for a more detailed discussion)\&.
+.RE
+.PP
+\-\-namespace=
+.RS 4
+Set the Git namespace\&. See
+\fBgitnamespaces\fR(7)
+for more details\&. Equivalent to setting the
+\fBGIT_NAMESPACE\fR
+environment variable\&.
+.RE
+.PP
+\-\-super\-prefix=
+.RS 4
+Currently for internal use only\&. Set a prefix which gives a path from above a repository down to its root\&. One use is to give submodules context about the superproject that invoked it\&.
+.RE
+.PP
+\-\-bare
+.RS 4
+Treat the repository as a bare repository\&. If GIT_DIR environment is not set, it is set to the current working directory\&.
+.RE
+.PP
+\-\-no\-replace\-objects
+.RS 4
+Do not use replacement refs to replace Git objects\&. See
+\fBgit-replace\fR(1)
+for more information\&.
+.RE
+.PP
+\-\-literal\-pathspecs
+.RS 4
+Treat pathspecs literally (i\&.e\&. no globbing, no pathspec magic)\&. This is equivalent to setting the
+\fBGIT_LITERAL_PATHSPECS\fR
+environment variable to
+\fB1\fR\&.
+.RE
+.PP
+\-\-glob\-pathspecs
+.RS 4
+Add "glob" magic to all pathspec\&. This is equivalent to setting the
+\fBGIT_GLOB_PATHSPECS\fR
+environment variable to
+\fB1\fR\&. Disabling globbing on individual pathspecs can be done using pathspec magic ":(literal)"
+.RE
+.PP
+\-\-noglob\-pathspecs
+.RS 4
+Add "literal" magic to all pathspec\&. This is equivalent to setting the
+\fBGIT_NOGLOB_PATHSPECS\fR
+environment variable to
+\fB1\fR\&. Enabling globbing on individual pathspecs can be done using pathspec magic ":(glob)"
+.RE
+.PP
+\-\-icase\-pathspecs
+.RS 4
+Add "icase" magic to all pathspec\&. This is equivalent to setting the
+\fBGIT_ICASE_PATHSPECS\fR
+environment variable to
+\fB1\fR\&.
+.RE
+.PP
+\-\-no\-optional\-locks
+.RS 4
+Do not perform optional operations that require locks\&. This is equivalent to setting the
+\fBGIT_OPTIONAL_LOCKS\fR
+to
+\fB0\fR\&.
+.RE
+.PP
+\-\-list\-cmds=group[,group\&...]
+.RS 4
+List commands by group\&. This is an internal/experimental option and may change or be removed in the future\&. Supported groups are: builtins, parseopt (builtin commands that use parse\-options), main (all commands in libexec directory), others (all other commands in
+\fB$PATH\fR
+that have git\- prefix), list\- (see categories in command\-list\&.txt), nohelpers (exclude helper commands), alias and config (retrieve command list from config variable completion\&.commands)
+.RE
+.SH "GIT COMMANDS"
+.sp
+We divide Git into high level ("porcelain") commands and low level ("plumbing") commands\&.
+.SH "HIGH\-LEVEL COMMANDS (PORCELAIN)"
+.sp
+We separate the porcelain commands into the main commands and some ancillary user utilities\&.
+.SS "Main porcelain commands"
+.PP
+\fBgit-add\fR(1)
+.RS 4
+Add file contents to the index\&.
+.RE
+.PP
+\fBgit-am\fR(1)
+.RS 4
+Apply a series of patches from a mailbox\&.
+.RE
+.PP
+\fBgit-archive\fR(1)
+.RS 4
+Create an archive of files from a named tree\&.
+.RE
+.PP
+\fBgit-bisect\fR(1)
+.RS 4
+Use binary search to find the commit that introduced a bug\&.
+.RE
+.PP
+\fBgit-branch\fR(1)
+.RS 4
+List, create, or delete branches\&.
+.RE
+.PP
+\fBgit-bundle\fR(1)
+.RS 4
+Move objects and refs by archive\&.
+.RE
+.PP
+\fBgit-checkout\fR(1)
+.RS 4
+Switch branches or restore working tree files\&.
+.RE
+.PP
+\fBgit-cherry-pick\fR(1)
+.RS 4
+Apply the changes introduced by some existing commits\&.
+.RE
+.PP
+\fBgit-citool\fR(1)
+.RS 4
+Graphical alternative to git\-commit\&.
+.RE
+.PP
+\fBgit-clean\fR(1)
+.RS 4
+Remove untracked files from the working tree\&.
+.RE
+.PP
+\fBgit-clone\fR(1)
+.RS 4
+Clone a repository into a new directory\&.
+.RE
+.PP
+\fBgit-commit\fR(1)
+.RS 4
+Record changes to the repository\&.
+.RE
+.PP
+\fBgit-describe\fR(1)
+.RS 4
+Give an object a human readable name based on an available ref\&.
+.RE
+.PP
+\fBgit-diff\fR(1)
+.RS 4
+Show changes between commits, commit and working tree, etc\&.
+.RE
+.PP
+\fBgit-fetch\fR(1)
+.RS 4
+Download objects and refs from another repository\&.
+.RE
+.PP
+\fBgit-format-patch\fR(1)
+.RS 4
+Prepare patches for e\-mail submission\&.
+.RE
+.PP
+\fBgit-gc\fR(1)
+.RS 4
+Cleanup unnecessary files and optimize the local repository\&.
+.RE
+.PP
+\fBgit-grep\fR(1)
+.RS 4
+Print lines matching a pattern\&.
+.RE
+.PP
+\fBgit-gui\fR(1)
+.RS 4
+A portable graphical interface to Git\&.
+.RE
+.PP
+\fBgit-init\fR(1)
+.RS 4
+Create an empty Git repository or reinitialize an existing one\&.
+.RE
+.PP
+\fBgit-log\fR(1)
+.RS 4
+Show commit logs\&.
+.RE
+.PP
+\fBgit-merge\fR(1)
+.RS 4
+Join two or more development histories together\&.
+.RE
+.PP
+\fBgit-mv\fR(1)
+.RS 4
+Move or rename a file, a directory, or a symlink\&.
+.RE
+.PP
+\fBgit-notes\fR(1)
+.RS 4
+Add or inspect object notes\&.
+.RE
+.PP
+\fBgit-pull\fR(1)
+.RS 4
+Fetch from and integrate with another repository or a local branch\&.
+.RE
+.PP
+\fBgit-push\fR(1)
+.RS 4
+Update remote refs along with associated objects\&.
+.RE
+.PP
+\fBgit-range-diff\fR(1)
+.RS 4
+Compare two commit ranges (e\&.g\&. two versions of a branch)\&.
+.RE
+.PP
+\fBgit-rebase\fR(1)
+.RS 4
+Reapply commits on top of another base tip\&.
+.RE
+.PP
+\fBgit-reset\fR(1)
+.RS 4
+Reset current HEAD to the specified state\&.
+.RE
+.PP
+\fBgit-restore\fR(1)
+.RS 4
+Restore working tree files\&.
+.RE
+.PP
+\fBgit-revert\fR(1)
+.RS 4
+Revert some existing commits\&.
+.RE
+.PP
+\fBgit-rm\fR(1)
+.RS 4
+Remove files from the working tree and from the index\&.
+.RE
+.PP
+\fBgit-shortlog\fR(1)
+.RS 4
+Summarize
+\fIgit log\fR
+output\&.
+.RE
+.PP
+\fBgit-show\fR(1)
+.RS 4
+Show various types of objects\&.
+.RE
+.PP
+\fBgit-sparse-checkout\fR(1)
+.RS 4
+Initialize and modify the sparse\-checkout\&.
+.RE
+.PP
+\fBgit-stash\fR(1)
+.RS 4
+Stash the changes in a dirty working directory away\&.
+.RE
+.PP
+\fBgit-status\fR(1)
+.RS 4
+Show the working tree status\&.
+.RE
+.PP
+\fBgit-submodule\fR(1)
+.RS 4
+Initialize, update or inspect submodules\&.
+.RE
+.PP
+\fBgit-switch\fR(1)
+.RS 4
+Switch branches\&.
+.RE
+.PP
+\fBgit-tag\fR(1)
+.RS 4
+Create, list, delete or verify a tag object signed with GPG\&.
+.RE
+.PP
+\fBgit-worktree\fR(1)
+.RS 4
+Manage multiple working trees\&.
+.RE
+.PP
+\fBgitk\fR(1)
+.RS 4
+The Git repository browser\&.
+.RE
+.SS "Ancillary Commands"
+.sp
+Manipulators:
+.PP
+\fBgit-config\fR(1)
+.RS 4
+Get and set repository or global options\&.
+.RE
+.PP
+\fBgit-fast-export\fR(1)
+.RS 4
+Git data exporter\&.
+.RE
+.PP
+\fBgit-fast-import\fR(1)
+.RS 4
+Backend for fast Git data importers\&.
+.RE
+.PP
+\fBgit-filter-branch\fR(1)
+.RS 4
+Rewrite branches\&.
+.RE
+.PP
+\fBgit-mergetool\fR(1)
+.RS 4
+Run merge conflict resolution tools to resolve merge conflicts\&.
+.RE
+.PP
+\fBgit-pack-refs\fR(1)
+.RS 4
+Pack heads and tags for efficient repository access\&.
+.RE
+.PP
+\fBgit-prune\fR(1)
+.RS 4
+Prune all unreachable objects from the object database\&.
+.RE
+.PP
+\fBgit-reflog\fR(1)
+.RS 4
+Manage reflog information\&.
+.RE
+.PP
+\fBgit-remote\fR(1)
+.RS 4
+Manage set of tracked repositories\&.
+.RE
+.PP
+\fBgit-repack\fR(1)
+.RS 4
+Pack unpacked objects in a repository\&.
+.RE
+.PP
+\fBgit-replace\fR(1)
+.RS 4
+Create, list, delete refs to replace objects\&.
+.RE
+.sp
+Interrogators:
+.PP
+\fBgit-annotate\fR(1)
+.RS 4
+Annotate file lines with commit information\&.
+.RE
+.PP
+\fBgit-blame\fR(1)
+.RS 4
+Show what revision and author last modified each line of a file\&.
+.RE
+.PP
+\fBgit-count-objects\fR(1)
+.RS 4
+Count unpacked number of objects and their disk consumption\&.
+.RE
+.PP
+\fBgit-difftool\fR(1)
+.RS 4
+Show changes using common diff tools\&.
+.RE
+.PP
+\fBgit-fsck\fR(1)
+.RS 4
+Verifies the connectivity and validity of the objects in the database\&.
+.RE
+.PP
+\fBgit-help\fR(1)
+.RS 4
+Display help information about Git\&.
+.RE
+.PP
+\fBgit-instaweb\fR(1)
+.RS 4
+Instantly browse your working repository in gitweb\&.
+.RE
+.PP
+\fBgit-merge-tree\fR(1)
+.RS 4
+Show three\-way merge without touching index\&.
+.RE
+.PP
+\fBgit-rerere\fR(1)
+.RS 4
+Reuse recorded resolution of conflicted merges\&.
+.RE
+.PP
+\fBgit-show-branch\fR(1)
+.RS 4
+Show branches and their commits\&.
+.RE
+.PP
+\fBgit-verify-commit\fR(1)
+.RS 4
+Check the GPG signature of commits\&.
+.RE
+.PP
+\fBgit-verify-tag\fR(1)
+.RS 4
+Check the GPG signature of tags\&.
+.RE
+.PP
+\fBgit-whatchanged\fR(1)
+.RS 4
+Show logs with difference each commit introduces\&.
+.RE
+.PP
+\fBgitweb\fR(1)
+.RS 4
+Git web interface (web frontend to Git repositories)\&.
+.RE
+.SS "Interacting with Others"
+.sp
+These commands are to interact with foreign SCM and with other people via patch over e\-mail\&.
+.PP
+\fBgit-archimport\fR(1)
+.RS 4
+Import a GNU Arch repository into Git\&.
+.RE
+.PP
+\fBgit-cvsexportcommit\fR(1)
+.RS 4
+Export a single commit to a CVS checkout\&.
+.RE
+.PP
+\fBgit-cvsimport\fR(1)
+.RS 4
+Salvage your data out of another SCM people love to hate\&.
+.RE
+.PP
+\fBgit-cvsserver\fR(1)
+.RS 4
+A CVS server emulator for Git\&.
+.RE
+.PP
+\fBgit-imap-send\fR(1)
+.RS 4
+Send a collection of patches from stdin to an IMAP folder\&.
+.RE
+.PP
+\fBgit-p4\fR(1)
+.RS 4
+Import from and submit to Perforce repositories\&.
+.RE
+.PP
+\fBgit-quiltimport\fR(1)
+.RS 4
+Applies a quilt patchset onto the current branch\&.
+.RE
+.PP
+\fBgit-request-pull\fR(1)
+.RS 4
+Generates a summary of pending changes\&.
+.RE
+.PP
+\fBgit-send-email\fR(1)
+.RS 4
+Send a collection of patches as emails\&.
+.RE
+.PP
+\fBgit-svn\fR(1)
+.RS 4
+Bidirectional operation between a Subversion repository and Git\&.
+.RE
+.SS "Reset, restore and revert"
+.sp
+There are three commands with similar names: \fBgit reset\fR, \fBgit restore\fR and \fBgit revert\fR\&.
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fBgit-revert\fR(1)
+is about making a new commit that reverts the changes made by other commits\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fBgit-restore\fR(1)
+is about restoring files in the working tree from either the index or another commit\&. This command does not update your branch\&. The command can also be used to restore files in the index from another commit\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+\fBgit-reset\fR(1)
+is about updating your branch, moving the tip in order to add or remove commits from the branch\&. This operation changes the commit history\&.
+.sp
+\fBgit reset\fR
+can also be used to restore the index, overlapping with
+\fBgit restore\fR\&.
+.RE
+.SH "LOW\-LEVEL COMMANDS (PLUMBING)"
+.sp
+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)\&.
+.sp
+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\&.
+.sp
+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"
+.PP
+\fBgit-apply\fR(1)
+.RS 4
+Apply a patch to files and/or to the index\&.
+.RE
+.PP
+\fBgit-checkout-index\fR(1)
+.RS 4
+Copy files from the index to the working tree\&.
+.RE
+.PP
+\fBgit-commit-graph\fR(1)
+.RS 4
+Write and verify Git commit\-graph files\&.
+.RE
+.PP
+\fBgit-commit-tree\fR(1)
+.RS 4
+Create a new commit object\&.
+.RE
+.PP
+\fBgit-hash-object\fR(1)
+.RS 4
+Compute object ID and optionally creates a blob from a file\&.
+.RE
+.PP
+\fBgit-index-pack\fR(1)
+.RS 4
+Build pack index file for an existing packed archive\&.
+.RE
+.PP
+\fBgit-merge-file\fR(1)
+.RS 4
+Run a three\-way file merge\&.
+.RE
+.PP
+\fBgit-merge-index\fR(1)
+.RS 4
+Run a merge for files needing merging\&.
+.RE
+.PP
+\fBgit-mktag\fR(1)
+.RS 4
+Creates a tag object\&.
+.RE
+.PP
+\fBgit-mktree\fR(1)
+.RS 4
+Build a tree\-object from ls\-tree formatted text\&.
+.RE
+.PP
+\fBgit-multi-pack-index\fR(1)
+.RS 4
+Write and verify multi\-pack\-indexes\&.
+.RE
+.PP
+\fBgit-pack-objects\fR(1)
+.RS 4
+Create a packed archive of objects\&.
+.RE
+.PP
+\fBgit-prune-packed\fR(1)
+.RS 4
+Remove extra objects that are already in pack files\&.
+.RE
+.PP
+\fBgit-read-tree\fR(1)
+.RS 4
+Reads tree information into the index\&.
+.RE
+.PP
+\fBgit-symbolic-ref\fR(1)
+.RS 4
+Read, modify and delete symbolic refs\&.
+.RE
+.PP
+\fBgit-unpack-objects\fR(1)
+.RS 4
+Unpack objects from a packed archive\&.
+.RE
+.PP
+\fBgit-update-index\fR(1)
+.RS 4
+Register file contents in the working tree to the index\&.
+.RE
+.PP
+\fBgit-update-ref\fR(1)
+.RS 4
+Update the object name stored in a ref safely\&.
+.RE
+.PP
+\fBgit-write-tree\fR(1)
+.RS 4
+Create a tree object from the current index\&.
+.RE
+.SS "Interrogation commands"
+.PP
+\fBgit-cat-file\fR(1)
+.RS 4
+Provide content or type and size information for repository objects\&.
+.RE
+.PP
+\fBgit-cherry\fR(1)
+.RS 4
+Find commits yet to be applied to upstream\&.
+.RE
+.PP
+\fBgit-diff-files\fR(1)
+.RS 4
+Compares files in the working tree and the index\&.
+.RE
+.PP
+\fBgit-diff-index\fR(1)
+.RS 4
+Compare a tree to the working tree or index\&.
+.RE
+.PP
+\fBgit-diff-tree\fR(1)
+.RS 4
+Compares the content and mode of blobs found via two tree objects\&.
+.RE
+.PP
+\fBgit-for-each-ref\fR(1)
+.RS 4
+Output information on each ref\&.
+.RE
+.PP
+\fBgit-get-tar-commit-id\fR(1)
+.RS 4
+Extract commit ID from an archive created using git\-archive\&.
+.RE
+.PP
+\fBgit-ls-files\fR(1)
+.RS 4
+Show information about files in the index and the working tree\&.
+.RE
+.PP
+\fBgit-ls-remote\fR(1)
+.RS 4
+List references in a remote repository\&.
+.RE
+.PP
+\fBgit-ls-tree\fR(1)
+.RS 4
+List the contents of a tree object\&.
+.RE
+.PP
+\fBgit-merge-base\fR(1)
+.RS 4
+Find as good common ancestors as possible for a merge\&.
+.RE
+.PP
+\fBgit-name-rev\fR(1)
+.RS 4
+Find symbolic names for given revs\&.
+.RE
+.PP
+\fBgit-pack-redundant\fR(1)
+.RS 4
+Find redundant pack files\&.
+.RE
+.PP
+\fBgit-rev-list\fR(1)
+.RS 4
+Lists commit objects in reverse chronological order\&.
+.RE
+.PP
+\fBgit-rev-parse\fR(1)
+.RS 4
+Pick out and massage parameters\&.
+.RE
+.PP
+\fBgit-show-index\fR(1)
+.RS 4
+Show packed archive index\&.
+.RE
+.PP
+\fBgit-show-ref\fR(1)
+.RS 4
+List references in a local repository\&.
+.RE
+.PP
+\fBgit-unpack-file\fR(1)
+.RS 4
+Creates a temporary file with a blob\(cqs contents\&.
+.RE
+.PP
+\fBgit-var\fR(1)
+.RS 4
+Show a Git logical variable\&.
+.RE
+.PP
+\fBgit-verify-pack\fR(1)
+.RS 4
+Validate packed Git archive files\&.
+.RE
+.sp
+In general, the interrogate commands do not touch the files in the working tree\&.
+.SS "Syncing repositories"
+.PP
+\fBgit-daemon\fR(1)
+.RS 4
+A really simple server for Git repositories\&.
+.RE
+.PP
+\fBgit-fetch-pack\fR(1)
+.RS 4
+Receive missing objects from another repository\&.
+.RE
+.PP
+\fBgit-http-backend\fR(1)
+.RS 4
+Server side implementation of Git over HTTP\&.
+.RE
+.PP
+\fBgit-send-pack\fR(1)
+.RS 4
+Push objects over Git protocol to another repository\&.
+.RE
+.PP
+\fBgit-update-server-info\fR(1)
+.RS 4
+Update auxiliary info file to help dumb servers\&.
+.RE
+.sp
+The following are helper commands used by the above; end users typically do not use them directly\&.
+.PP
+\fBgit-http-fetch\fR(1)
+.RS 4
+Download from a remote Git repository via HTTP\&.
+.RE
+.PP
+\fBgit-http-push\fR(1)
+.RS 4
+Push objects over HTTP/DAV to another repository\&.
+.RE
+.PP
+\fBgit-parse-remote\fR(1)
+.RS 4
+Routines to help parsing remote repository access parameters\&.
+.RE
+.PP
+\fBgit-receive-pack\fR(1)
+.RS 4
+Receive what is pushed into the repository\&.
+.RE
+.PP
+\fBgit-shell\fR(1)
+.RS 4
+Restricted login shell for Git\-only SSH access\&.
+.RE
+.PP
+\fBgit-upload-archive\fR(1)
+.RS 4
+Send archive back to git\-archive\&.
+.RE
+.PP
+\fBgit-upload-pack\fR(1)
+.RS 4
+Send objects packed back to git\-fetch\-pack\&.
+.RE
+.SS "Internal helper commands"
+.sp
+These are internal helper commands used by other commands; end users typically do not use them directly\&.
+.PP
+\fBgit-check-attr\fR(1)
+.RS 4
+Display gitattributes information\&.
+.RE
+.PP
+\fBgit-check-ignore\fR(1)
+.RS 4
+Debug gitignore / exclude files\&.
+.RE
+.PP
+\fBgit-check-mailmap\fR(1)
+.RS 4
+Show canonical names and email addresses of contacts\&.
+.RE
+.PP
+\fBgit-check-ref-format\fR(1)
+.RS 4
+Ensures that a reference name is well formed\&.
+.RE
+.PP
+\fBgit-column\fR(1)
+.RS 4
+Display data in columns\&.
+.RE
+.PP
+\fBgit-credential\fR(1)
+.RS 4
+Retrieve and store user credentials\&.
+.RE
+.PP
+\fBgit-credential-cache\fR(1)
+.RS 4
+Helper to temporarily store passwords in memory\&.
+.RE
+.PP
+\fBgit-credential-store\fR(1)
+.RS 4
+Helper to store credentials on disk\&.
+.RE
+.PP
+\fBgit-fmt-merge-msg\fR(1)
+.RS 4
+Produce a merge commit message\&.
+.RE
+.PP
+\fBgit-interpret-trailers\fR(1)
+.RS 4
+Add or parse structured information in commit messages\&.
+.RE
+.PP
+\fBgit-mailinfo\fR(1)
+.RS 4
+Extracts patch and authorship from a single e\-mail message\&.
+.RE
+.PP
+\fBgit-mailsplit\fR(1)
+.RS 4
+Simple UNIX mbox splitter program\&.
+.RE
+.PP
+\fBgit-merge-one-file\fR(1)
+.RS 4
+The standard helper program to use with git\-merge\-index\&.
+.RE
+.PP
+\fBgit-patch-id\fR(1)
+.RS 4
+Compute unique ID for a patch\&.
+.RE
+.PP
+\fBgit-sh-i18n\fR(1)
+.RS 4
+Git\(cqs i18n setup code for shell scripts\&.
+.RE
+.PP
+\fBgit-sh-setup\fR(1)
+.RS 4
+Common Git shell script setup code\&.
+.RE
+.PP
+\fBgit-stripspace\fR(1)
+.RS 4
+Remove unnecessary whitespace\&.
+.RE
+.SH "CONFIGURATION MECHANISM"
+.sp
+Git uses a simple text format to store customizations that are per repository and are per user\&. Such a configuration file may look like this:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+#
+# A \*(Aq#\*(Aq or \*(Aq;\*(Aq character indicates a comment\&.
+#
+
+; core variables
+[core]
+ ; Don\*(Aqt trust file modes
+ filemode = false
+
+; user identity
+[user]
+ name = "Junio C Hamano"
+ email = "gitster@pobox\&.com"
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.sp
+Various commands read from the configuration file and adjust their operation accordingly\&. See \fBgit-config\fR(1) for a list and more details about the configuration mechanism\&.
+.SH "IDENTIFIER TERMINOLOGY"
+.PP
+