summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/Makefile4
-rw-r--r--Documentation/cvs-migration.txt15
-rw-r--r--Documentation/diff-format.txt11
-rw-r--r--Documentation/diff-options.txt4
-rw-r--r--Documentation/diffcore.txt77
-rw-r--r--Documentation/git-add.txt9
-rw-r--r--Documentation/git-am.txt90
-rw-r--r--Documentation/git-apply.txt31
-rw-r--r--Documentation/git-applymbox.txt12
-rw-r--r--Documentation/git-archimport.txt8
-rw-r--r--Documentation/git-cat-file.txt1
-rw-r--r--Documentation/git-check-ref-format.txt50
-rw-r--r--Documentation/git-checkout-index.txt1
-rw-r--r--Documentation/git-checkout.txt42
-rw-r--r--Documentation/git-cherry-pick.txt1
-rw-r--r--Documentation/git-clone-pack.txt13
-rw-r--r--Documentation/git-clone.txt3
-rw-r--r--Documentation/git-commit-tree.txt12
-rw-r--r--Documentation/git-commit.txt3
-rw-r--r--Documentation/git-convert-objects.txt5
-rw-r--r--Documentation/git-cvsimport.txt5
-rw-r--r--Documentation/git-daemon.txt24
-rw-r--r--Documentation/git-diff-files.txt1
-rw-r--r--Documentation/git-diff-index.txt1
-rw-r--r--Documentation/git-diff-stages.txt1
-rw-r--r--Documentation/git-diff-tree.txt6
-rw-r--r--Documentation/git-fetch-pack.txt3
-rw-r--r--Documentation/git-fetch.txt6
-rw-r--r--Documentation/git-format-patch.txt6
-rw-r--r--Documentation/git-fsck-objects.txt11
-rw-r--r--Documentation/git-grep.txt1
-rw-r--r--Documentation/git-hash-object.txt1
-rw-r--r--Documentation/git-http-fetch.txt5
-rw-r--r--Documentation/git-index-pack.txt44
-rw-r--r--Documentation/git-init-db.txt1
-rw-r--r--Documentation/git-local-fetch.txt5
-rw-r--r--Documentation/git-log.txt3
-rw-r--r--Documentation/git-ls-files.txt6
-rw-r--r--Documentation/git-ls-remote.txt1
-rw-r--r--Documentation/git-ls-tree.txt5
-rw-r--r--Documentation/git-mailsplit.txt13
-rw-r--r--Documentation/git-merge-base.txt1
-rw-r--r--Documentation/git-merge-index.txt1
-rw-r--r--Documentation/git-merge-one-file.txt1
-rw-r--r--Documentation/git-merge.txt1
-rw-r--r--Documentation/git-mktag.txt1
-rw-r--r--Documentation/git-mv.txt51
-rw-r--r--Documentation/git-name-rev.txt66
-rw-r--r--Documentation/git-octopus.txt1
-rw-r--r--Documentation/git-pack-objects.txt10
-rw-r--r--Documentation/git-patch-id.txt6
-rw-r--r--Documentation/git-peek-remote.txt3
-rw-r--r--Documentation/git-prune-packed.txt1
-rw-r--r--Documentation/git-prune.txt1
-rw-r--r--Documentation/git-pull.txt5
-rw-r--r--Documentation/git-push.txt9
-rw-r--r--Documentation/git-read-tree.txt1
-rw-r--r--Documentation/git-receive-pack.txt1
-rw-r--r--Documentation/git-rename.txt1
-rw-r--r--Documentation/git-repack.txt1
-rw-r--r--Documentation/git-resolve.txt3
-rw-r--r--Documentation/git-rev-list.txt57
-rw-r--r--Documentation/git-rev-parse.txt19
-rw-r--r--Documentation/git-send-email.txt1
-rw-r--r--Documentation/git-send-pack.txt1
-rw-r--r--Documentation/git-shell.txt35
-rw-r--r--Documentation/git-shortlog.txt3
-rw-r--r--Documentation/git-show-branch.txt27
-rw-r--r--Documentation/git-show-index.txt3
-rw-r--r--Documentation/git-ssh-fetch.txt1
-rw-r--r--Documentation/git-ssh-upload.txt1
-rw-r--r--Documentation/git-status.txt3
-rw-r--r--Documentation/git-svnimport.txt137
-rw-r--r--Documentation/git-tag.txt22
-rw-r--r--Documentation/git-tar-tree.txt1
-rw-r--r--Documentation/git-unpack-file.txt1
-rw-r--r--Documentation/git-unpack-objects.txt1
-rw-r--r--Documentation/git-update-index.txt41
-rw-r--r--Documentation/git-update-server-info.txt1
-rw-r--r--Documentation/git-upload-pack.txt1
-rw-r--r--Documentation/git-var.txt1
-rw-r--r--Documentation/git-verify-pack.txt5
-rw-r--r--Documentation/git-whatchanged.txt3
-rw-r--r--Documentation/git-write-tree.txt1
-rw-r--r--Documentation/git.txt72
-rw-r--r--Documentation/glossary.txt2
-rw-r--r--Documentation/hooks.txt3
-rw-r--r--Documentation/pull-fetch-param.txt12
-rw-r--r--Documentation/repository-layout.txt5
-rw-r--r--Documentation/tutorial.txt98
90 files changed, 1003 insertions, 261 deletions
diff --git a/Documentation/Makefile b/Documentation/Makefile
index bb21d6a..3cfa360 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -17,14 +17,14 @@ DOC_HTML += $(patsubst %,%.html,$(ARTICLES) $(SP_ARTICLES))
DOC_MAN1=$(patsubst %.txt,%.1,$(MAN1_TXT))
DOC_MAN7=$(patsubst %.txt,%.7,$(MAN7_TXT))
-prefix=$(HOME)
+prefix?=$(HOME)
bin=$(prefix)/bin
mandir=$(prefix)/man
man1=$(mandir)/man1
man7=$(mandir)/man7
# DESTDIR=
-INSTALL=install
+INSTALL?=install
#
# Please note that there is a minor bug in asciidoc.
diff --git a/Documentation/cvs-migration.txt b/Documentation/cvs-migration.txt
index 4361278..57436f0 100644
--- a/Documentation/cvs-migration.txt
+++ b/Documentation/cvs-migration.txt
@@ -1,6 +1,5 @@
-Git for CVS users
+git for CVS users
=================
-v0.99.5, Aug 2005
Ok, so you're a CVS user. That's ok, it's a treatable condition, and the
first step to recovery is admitting you have a problem. The fact that
@@ -8,7 +7,7 @@ you are reading this file means that you may be well on that path
already.
The thing about CVS is that it absolutely sucks as a source control
-manager, and you'll thus be happy with almost anything else. Git,
+manager, and you'll thus be happy with almost anything else. git,
however, may be a bit 'too' different (read: "good") for your taste, and
does a lot of things differently.
@@ -16,7 +15,7 @@ One particular suckage of CVS is very hard to work around: CVS is
basically a tool for tracking 'file' history, while git is a tool for
tracking 'project' history. This sometimes causes problems if you are
used to doing very strange things in CVS, in particular if you're doing
-things like making branches of just a subset of the project. Git can't
+things like making branches of just a subset of the project. git can't
track that, since git never tracks things on the level of an individual
file, only on the whole project level.
@@ -33,7 +32,7 @@ and notes on converting from CVS to git.
Second: CVS has the notion of a "repository" as opposed to the thing
that you're actually working in (your working directory, or your
-"checked out tree"). Git does not have that notion at all, and all git
+"checked out tree"). git does not have that notion at all, and all git
working directories 'are' the repositories. However, you can easily
emulate the CVS model by having one special "global repository", which
people can synchronize with. See details later, but in the meantime
@@ -50,7 +49,7 @@ gone through the git tutorial, and generally familiarized yourself with
how to commit stuff etc in git) is to create a git'ified version of your
CVS archive.
-Happily, that's very easy indeed. Git will do it for you, although git
+Happily, that's very easy indeed. git will do it for you, although git
will need the help of a program called "cvsps":
http://www.cobite.com/cvsps/
@@ -136,7 +135,7 @@ technically possible, and there are at least two specialized scripts out
there that can be used to get equivalent information (see the git
mailing list archives for details).
-Git has a couple of alternatives, though, that you may find sufficient
+git has a couple of alternatives, though, that you may find sufficient
or even superior depending on your use. One is called "git-whatchanged"
(for obvious reasons) and the other one is called "pickaxe" ("a tool for
the software archeologist").
@@ -209,7 +208,7 @@ show anything for commits that do not touch this "if" statement.
Also, in the original context, the same statement might have
appeared at first in a different file and later the file was
renamed to "a-file.c". CVS annotate would not help you to go
-back across such a rename, but GIT would still help you in such
+back across such a rename, but git would still help you in such
a situation. For that, you can give the -C flag to
git-diff-tree, like this:
diff --git a/Documentation/diff-format.txt b/Documentation/diff-format.txt
index dacd8fb..d1d0d2d 100644
--- a/Documentation/diff-format.txt
+++ b/Documentation/diff-format.txt
@@ -55,6 +55,11 @@ Example:
:100644 100644 5be4a4...... 000000...... M file.c
------------------------------------------------
+When `-z` option is not used, TAB, LF, and backslash characters
+in pathnames are represented as `\t`, `\n`, and `\\`,
+respectively.
+
+
Generating patches with -p
--------------------------
@@ -106,7 +111,7 @@ For a path that is unmerged, 'GIT_EXTERNAL_DIFF' is called with 1
parameter, <path>.
-Git specific extension to diff format
+git specific extension to diff format
-------------------------------------
What -p option produces is slightly different from the
@@ -137,3 +142,7 @@ the file that rename/copy produces, respectively.
rename to <path>
similarity index <number>
dissimilarity index <number>
+ index <hash>..<hash> <mode>
+
+3. TAB, LF, and backslash characters in pathnames are
+ represented as `\t`, `\n`, and `\\`, respectively.
diff --git a/Documentation/diff-options.txt b/Documentation/diff-options.txt
index 06500d0..32005b0 100644
--- a/Documentation/diff-options.txt
+++ b/Documentation/diff-options.txt
@@ -4,10 +4,6 @@
-u::
Synonym for "-p".
--r::
- Look recursively in subdirectories; only used by "git-diff-tree";
- other diff commands always work recursively.
-
-z::
\0 line termination on output
diff --git a/Documentation/diffcore.txt b/Documentation/diffcore.txt
index 9d20a4f..cb4e562 100644
--- a/Documentation/diffcore.txt
+++ b/Documentation/diffcore.txt
@@ -6,13 +6,12 @@ June 2005
Introduction
------------
-The diff commands git-diff-index, git-diff-files, and
-git-diff-tree can be told to manipulate differences they find
-in unconventional ways before showing diff(1) output. The
-manipulation is collectively called "diffcore transformation".
-This short note describes what they are and how to use them to
-produce diff outputs that are easier to understand than the
-conventional kind.
+The diff commands git-diff-index, git-diff-files, git-diff-tree, and
+git-diff-stages can be told to manipulate differences they find in
+unconventional ways before showing diff(1) output. The manipulation
+is collectively called "diffcore transformation". This short note
+describes what they are and how to use them to produce diff outputs
+that are easier to understand than the conventional kind.
The chain of operation
@@ -29,7 +28,10 @@ files:
- git-diff-files compares contents of the index file and the
working directory;
- - git-diff-tree compares contents of two "tree" objects.
+ - git-diff-tree compares contents of two "tree" objects;
+
+ - git-diff-stages compares contents of blobs at two stages in an
+ unmerged index file.
In all of these cases, the commands themselves compare
corresponding paths in the two sets of files. The result of
@@ -65,14 +67,23 @@ format sections of the manual for git-diff-\* commands) or
diff-patch format.
-diffcore-pathspec
------------------
+diffcore-pathspec: For Ignoring Files Outside Our Consideration
+---------------------------------------------------------------
The first transformation in the chain is diffcore-pathspec, and
is controlled by giving the pathname parameters to the
git-diff-* commands on the command line. The pathspec is used
to limit the world diff operates in. It removes the filepairs
-outside the specified set of pathnames.
+outside the specified set of pathnames. E.g. If the input set
+of filepairs included:
+
+------------------------------------------------
+:100644 100644 bcd1234... 0123456... M junkfile
+------------------------------------------------
+
+but the command invocation was "git-diff-files myfile", then the
+junkfile entry would be removed from the list because only "myfile"
+is under consideration.
Implementation note. For performance reasons, git-diff-tree
uses the pathname parameters on the command line to cull set of
@@ -80,8 +91,8 @@ filepairs it feeds the diffcore mechanism itself, and does not
use diffcore-pathspec, but the end result is the same.
-diffcore-break
---------------
+diffcore-break: For Splitting Up "Complete Rewrites"
+----------------------------------------------------
The second transformation in the chain is diffcore-break, and is
controlled by the -B option to the git-diff-* commands. This is
@@ -115,8 +126,8 @@ the original is used), and can be customized by giving a number
after "-B" option (e.g. "-B75" to tell it to use 75%).
-diffcore-rename
----------------
+diffcore-rename: For Detection Renames and Copies
+-------------------------------------------------
This transformation is used to detect renames and copies, and is
controlled by the -M option (to detect renames) and the -C option
@@ -136,16 +147,16 @@ merges these filepairs and creates:
:100644 100644 0123456... 0123456... R100 fileX file0
------------------------------------------------
-When the "-C" option is used, the original contents of modified
-files and contents of unchanged files are considered as
-candidates of the source files in rename/copy operation, in
-addition to the deleted files. If the input were like these
-filepairs, that talk about a modified file fileY and a newly
+When the "-C" option is used, the original contents of modified files,
+and deleted files (and also unmodified files, if the
+"\--find-copies-harder" option is used) are considered as candidates
+of the source files in rename/copy operation. If the input were like
+these filepairs, that talk about a modified file fileY and a newly
created file file0:
------------------------------------------------
:100644 100644 0123456... 1234567... M fileY
-:000000 100644 0000000... 0123456... A file0
+:000000 100644 0000000... bcd3456... A file0
------------------------------------------------
the original contents of fileY and the resulting contents of
@@ -154,14 +165,14 @@ changed to:
------------------------------------------------
:100644 100644 0123456... 1234567... M fileY
-:100644 100644 0123456... 0123456... C100 fileY file0
+:100644 100644 0123456... bcd3456... C100 fileY file0
------------------------------------------------
In both rename and copy detection, the same "extent of changes"
algorithm used in diffcore-break is used to determine if two
files are "similar enough", and can be customized to use
-similarity score different from the default 50% by giving a
-number after "-M" or "-C" option (e.g. "-M8" to tell it to use
+a similarity score different from the default of 50% by giving a
+number after the "-M" or "-C" option (e.g. "-M8" to tell it to use
8/10 = 80%).
Note. When the "-C" option is used with `\--find-copies-harder`
@@ -173,8 +184,8 @@ git-diff-\* commands can detect copies only if the file that was
copied happened to have been modified in the same changeset.
-diffcore-merge-broken
----------------------
+diffcore-merge-broken: For Putting "Complete Rewrites" Back Together
+--------------------------------------------------------------------
This transformation is used to merge filepairs broken by
diffcore-break, and not transformed into rename/copy by
@@ -215,8 +226,8 @@ prefixed with '-', followed by the entire contents of new
version prefixed with '+'.
-diffcore-pickaxe
-----------------
+diffcore-pickaxe: For Detecting Addition/Deletion of Specified String
+---------------------------------------------------------------------
This transformation is used to find filepairs that represent
changes that touch a specified string, and is controlled by the
@@ -230,7 +241,7 @@ string appeared in this changeset". It also checks for the
opposite case that loses the specified string.
When `\--pickaxe-all` is not in effect, diffcore-pickaxe leaves
-only such filepairs that touches the specified string in its
+only such filepairs that touch the specified string in its
output. When `\--pickaxe-all` is used, diffcore-pickaxe leaves all
filepairs intact if there is such a filepair, or makes the
output empty otherwise. The latter behaviour is designed to
@@ -238,19 +249,19 @@ make reviewing of the changes in the context of the whole
changeset easier.
-diffcore-order
---------------
+diffcore-order: For Sorting the Output Based on Filenames
+---------------------------------------------------------
This is used to reorder the filepairs according to the user's
(or project's) taste, and is controlled by the -O option to the
git-diff-* commands.
-This takes a text file each of whose line is a shell glob
+This takes a text file each of whose lines is a shell glob
pattern. Filepairs that match a glob pattern on an earlier line
in the file are output before ones that match a later line, and
filepairs that do not match any glob pattern are output last.
-As an example, typical orderfile for the core GIT probably
+As an example, a typical orderfile for the core git probably
would look like this:
------------------------------------------------
diff --git a/Documentation/git-add.txt b/Documentation/git-add.txt
index 4a03b4c..3230029 100644
--- a/Documentation/git-add.txt
+++ b/Documentation/git-add.txt
@@ -7,7 +7,7 @@ git-add - Add files to the cache.
SYNOPSIS
--------
-'git-add' <file>...
+'git-add' [-n] [-v] <file>...
DESCRIPTION
-----------
@@ -19,6 +19,13 @@ OPTIONS
<file>...::
Files to add to the cache.
+-n::
+ Don't actually add the file(s), just show if they exist.
+
+-v::
+ Be verbose.
+
+
Author
------
Written by Linus Torvalds <torvalds@osdl.org>
diff --git a/Documentation/git-am.txt b/Documentation/git-am.txt
new file mode 100644
index 0000000..704dc51
--- /dev/null
+++ b/Documentation/git-am.txt
@@ -0,0 +1,90 @@
+git-am(1)
+=========
+
+NAME
+----
+git-am - Apply a series of patches in a mailbox
+
+
+SYNOPSIS
+--------
+'git-am' [--signoff] [--dotest=<dir>] [--utf8] [--3way] <mbox>...
+'git-am' [--skip]
+
+DESCRIPTION
+-----------
+Splits mail messages in a mailbox into commit log message,
+authorship information and patches, and applies them to the
+current branch.
+
+OPTIONS
+-------
+--signoff::
+ Add `Signed-off-by:` line to the commit message, using
+ the committer identity of yourself.
+
+--dotest=<dir>::
+ Instead of `.dotest` directory, use <dir> as a working
+ area to store extracted patches.
+
+--utf8, --keep::
+ Pass `--utf8` and `--keep` flags to `git-mailinfo` (see
+ gitlink:git-mailinfo[1]).
+
+--3way::
+ When the patch does not apply cleanly, fall back on
+ 3-way merge, if the patch records the identity of blobs
+ it is supposed to apply to, and we have those blobs
+ locally.
+
+--skip::
+ Skip the current patch. This is only meaningful when
+ restarting an aborted patch.
+
+--interactive::
+ Run interactively, just like git-applymbox.
+
+
+DISCUSSION
+----------
+
+When initially invoking it, you give it names of the mailboxes
+to crunch. Upon seeing the first patch that does not apply, it
+aborts in the middle, just like 'git-applymbox' does. You can
+recover from this in one of two ways:
+
+. skip the current one by re-running the command with '--skip'
+ option.
+
+. hand resolve the conflict in the working directory, run 'git
+ diff HEAD' to extract the merge result into a patch form and
+ replacing the patch in .dotest/patch file. After doing this,
+ run `git-reset --hard HEAD` to bring the working tree to the
+ state before half-applying the patch, then re-run the command
+ without any options.
+
+The command refuses to process new mailboxes while `.dotest`
+directory exists, so if you decide to start over from scratch,
+run `rm -f .dotest` before running the command with mailbox
+names.
+
+
+SEE ALSO
+--------
+gitlink:git-applymbox[1], gitlink:git-applypatch[1].
+
+
+Author
+------
+Written by Junio C Hamano <junkio@cox.net>
+
+Documentation
+--------------
+Documentation by Petr Baudis, Junio C Hamano and the git-list <git@vger.kernel.org>.
+
+This manual page is a stub. You can help the git documentation by expanding it.
+
+GIT
+---
+Part of the gitlink:git[7] suite
+
diff --git a/Documentation/git-apply.txt b/Documentation/git-apply.txt
index 8cbbb4b..eb8f906 100644
--- a/Documentation/git-apply.txt
+++ b/Documentation/git-apply.txt
@@ -1,15 +1,14 @@
git-apply(1)
============
-v0.1, June 2005
NAME
----
-git-apply - Apply patch on a GIT index file and a work tree
+git-apply - Apply patch on a git index file and a work tree
SYNOPSIS
--------
-'git-apply' [--no-merge] [--stat] [--summary] [--check] [--index] [--show-files] [--apply] [<patch>...]
+'git-apply' [--stat] [--numstat] [--summary] [--check] [--index] [--apply] [--index-info] [-z] [<patch>...]
DESCRIPTION
-----------
@@ -22,15 +21,16 @@ OPTIONS
The files to read patch from. '-' can be used to read
from the standard input.
---no-merge::
- The default mode of operation is the merge behaviour
- which is not implemented yet. This flag explicitly
- tells the program not to use the merge behaviour.
-
--stat::
Instead of applying the patch, output diffstat for the
input. Turns off "apply".
+--numstat::
+ Similar to \--stat, but shows number of added and
+ deleted lines in decimal notation and pathname without
+ abbreviation, to make it more machine friendly. Turns
+ off "apply".
+
--summary::
Instead of applying the patch, output a condensed
summary of information obtained from git diff extended
@@ -51,8 +51,19 @@ OPTIONS
up-to-date, it is flagged as an error. This flag also
causes the index file to be updated.
---show-files::
- Show summary of files that are affected by the patch.
+--index-info::
+ Newer git-diff output has embedded 'index information'
+ for each blob to help identify the original version that
+ the patch applies to. When this flag is given, and if
+ the original version of the blob is available locally,
+ outputs information about them to the standard output.
+
+-z::
+ When showing the index information, do not munge paths,
+ but use NUL terminated machine readable format. Without
+ this flag, the pathnames output will have TAB, LF, and
+ backslash characters replaced with `\t`, `\n`, and `\\`,
+ respectively.
--apply::
If you use any of the options marked ``Turns off
diff --git a/Documentation/git-applymbox.txt b/Documentation/git-applymbox.txt
index bb54378..f74c6a4 100644
--- a/Documentation/git-applymbox.txt
+++ b/Documentation/git-applymbox.txt
@@ -8,7 +8,7 @@ git-applymbox - Apply a series of patches in a mailbox
SYNOPSIS
--------
-'git-applymbox' [-u] [-k] [-q] ( -c .dotest/<num> | <mbox> ) [ <signoff> ]
+'git-applymbox' [-u] [-k] [-q] [-m] ( -c .dotest/<num> | <mbox> ) [ <signoff> ]
DESCRIPTION
-----------
@@ -33,6 +33,14 @@ OPTIONS
munging, and is most useful when used to read back 'git
format-patch --mbox' output.
+-m::
+ Patches are applied with `git-apply` command, and unless
+ it cleanly applies without fuzz, the processing fails.
+ With this flag, if a tree that the patch applies cleanly
+ is found in a repository, the patch is applied to the
+ tree and then a 3-way merge between the resulting tree
+ and the current tree.
+
-u::
By default, the commit log message, author name and
author email are taken from the e-mail without any
@@ -67,7 +75,7 @@ OPTIONS
SEE ALSO
--------
-gitlink:git-applypatch[1].
+gitlink:git-am[1], gitlink:git-applypatch[1].
Author
diff --git a/Documentation/git-archimport.txt b/Documentation/git-archimport.txt
index b6793cf..fcda012 100644
--- a/Documentation/git-archimport.txt
+++ b/Documentation/git-archimport.txt
@@ -3,7 +3,7 @@ git-archimport(1)
NAME
----
-git-archimport - Import an Arch repository into GIT
+git-archimport - Import an Arch repository into git
SYNOPSIS
@@ -40,14 +40,14 @@ incremental imports.
MERGES
------
-Patch merge data from Arch is used to mark merges in GIT as well. GIT
+Patch merge data from Arch is used to mark merges in git as well. git
does not care much about tracking patches, and only considers a merge when a
branch incorporates all the commits since the point they forked. The end result
-is that GIT will have a good idea of how far branches have diverged. So the
+is that git will have a good idea of how far branches have diverged. So the
import process does lose some patch-trading metadata.
Fortunately, when you try and merge branches imported from Arch,
-GIT will find a good merge base, and it has a good chance of identifying
+git will find a good merge base, and it has a good chance of identifying
patches that have been traded out-of-sequence between the branches.
OPTIONS
diff --git a/Documentation/git-cat-file.txt b/Documentation/git-cat-file.txt
index f21a6e0..ab4dcae 100644
--- a/Documentation/git-cat-file.txt
+++ b/Documentation/git-cat-file.txt
@@ -1,6 +1,5 @@
git-cat-file(1)
===============
-v0.1, May 2005
NAME
----
diff --git a/Documentation/git-check-ref-format.txt b/Documentation/git-check-ref-format.txt
new file mode 100644
index 0000000..636e951
--- /dev/null
+++ b/Documentation/git-check-ref-format.txt
@@ -0,0 +1,50 @@
+git-check-ref-format(1)
+=======================
+
+NAME
+----
+git-check-ref-format - Make sure ref name is well formed.
+
+SYNOPSIS
+--------
+'git-check-ref-format' <refname>
+
+DESCRIPTION
+-----------
+Checks if a given 'refname' is acceptable, and exits non-zero if
+it is not.
+
+A reference is used in git to specify branches and tags. A
+branch head is stored under `$GIT_DIR/refs/heads` directory, and
+a tag is stored under `$GIT_DIR/refs/tags` directory. git
+imposes the following rules on how refs are named:
+
+. It could be named hierarchically (i.e. separated with slash
+ `/`), but each of its component cannot begin with a dot `.`;
+
+. It cannot have two consecutive dots `..` anywhere;
+
+. It cannot have ASCII control character (i.e. bytes whose
+ values are lower than \040, or \177 `DEL`), space, tilde `~`,
+ caret `{caret}`, or colon `:` anywhere;
+
+. It cannot end with a slash `/`.
+
+These rules makes it easy for shell script based tools to parse
+refnames, and also avoids ambiguities in certain refname
+expressions (see gitlink:git-rev-parse[1]). Namely:
+
+. double-dot `..` are often used as in `ref1..ref2`, and in some
+ context this notation means `{caret}ref1 ref2` (i.e. not in
+ ref1 and in ref2).
+
+. tilde `~` and caret `{caret}` are used to introduce postfix
+ 'nth parent' and 'peel onion' operation.
+
+. colon `:` is used as in `srcref:dstref` to mean "use srcref\'s
+ value and store it in dstref" in fetch and push operations.
+
+
+GIT
+---
+Part of the gitlink:git[7] suite
diff --git a/Documentation/git-checkout-index.txt b/Documentation/git-checkout-index.txt
index 70645ae..589dc9a 100644
--- a/Documentation/git-checkout-index.txt
+++ b/Documentation/git-checkout-index.txt
@@ -1,6 +1,5 @@
git-checkout-index(1)
=====================
-v0.1, May 2005
NAME
----
diff --git a/Documentation/git-checkout.txt b/Documentation/git-checkout.txt
index f753c14..b7bb1b4 100644
--- a/Documentation/git-checkout.txt
+++ b/Documentation/git-checkout.txt
@@ -7,12 +7,24 @@ git-checkout - Checkout and switch to a branch.
SYNOPSIS
--------
-'git-checkout' [-f] [-b <new_branch>] [<branch>]
+'git-checkout' [-f] [-b <new_branch>] [<branch>] [<paths>...]
DESCRIPTION
-----------
-Updates the index and working tree to reflect the specified branch,
-<branch>. Updates HEAD to be <branch> or, if specified, <new_branch>.
+
+When <paths> are not given, this command switches branches, by
+updating the index and working tree to reflect the specified
+branch, <branch>, and updating HEAD to be <branch> or, if
+specified, <new_branch>.
+
+When <paths> are given, this command does *not* switch
+branches. It updates the named paths in the working tree from
+the index file (i.e. it runs `git-checkout-index -f -u`). In
+this case, `-f` and `-b` options are meaningless and giving
+either of them results in an error. <branch> argument can be
+used to specify a specific tree-ish to update the index for the
+given paths before updating the working tree.
+
OPTIONS
-------
@@ -29,6 +41,30 @@ OPTIONS
Branch to checkout; may be any object ID that resolves to a
commit. Defaults to HEAD.
+
+EXAMPLE
+-------
+
+The following sequence checks out the `master` branch, reverts
+the `Makefile` to two revisions back, deletes hello.c by
+mistake, and gets it back from the index.
+
+------------
+$ git checkout master
+$ git checkout master~2 Makefile
+$ rm -f hello.c
+$ git checkout hello.c
+------------
+
+If you have an unfortunate branch that is named `hello.c`, the
+last step above would be confused as an instruction to switch to
+that branch. You should instead write:
+
+------------
+$ git checkout -- hello.c
+------------
+
+
Author
------
Written by Linus Torvalds <torvalds@osdl.org>
diff --git a/Documentation/git-cherry-pick.txt b/Documentation/git-cherry-pick.txt
index 8462e06..26e0467 100644
--- a/Documentation/git-cherry-pick.txt
+++ b/Documentation/git-cherry-pick.txt
@@ -1,6 +1,5 @@
git-cherry-pick(1)
==================
-v0.99.5 Aug 2005
NAME
----
diff --git a/Documentation/git-clone-pack.txt b/Documentation/git-clone-pack.txt
index a7868e5..cfc7b62 100644
--- a/Documentation/git-clone-pack.txt
+++ b/Documentation/git-clone-pack.txt
@@ -1,6 +1,5 @@
git-clone-pack(1)
=================
-v0.1, July 2005
NAME
----
@@ -9,27 +8,23 @@ git-clone-pack - Clones a repository by receiving packed objects.
SYNOPSIS
--------
-'git-clone-pack' [-q] [--exec=<git-upload-pack>] [<host>:]<directory> [<head>...]
+'git-clone-pack' [--exec=<git-upload-pack>] [<host>:]<directory> [<head>...]
DESCRIPTION
-----------
Clones a repository into the current repository by invoking
'git-upload-pack', possibly on the remote host via ssh, in
-the named repository, and invoking 'git-unpack-objects' locally
-to receive the pack.
+the named repository, and stores the sent pack in the local
+repository.
OPTIONS
-------
--q::
- Pass '-q' flag to 'git-unpack-objects'; this makes the
- cloning process less verbose.
-
--exec=<git-upload-pack>::
Use this to specify the path to 'git-upload-pack' on the
remote side, if it is not found on your $PATH.
Installations of sshd ignore the user's environment
setup scripts for login shells (e.g. .bash_profile) and
- your privately installed GIT may not be found on the system
+ your privately installed git may not be found on the system
default $PATH. Another workaround suggested is to set
up your $PATH in ".bashrc", but this flag is for people
who do not want to pay the overhead for non-interactive
diff --git a/Documentation/git-clone.txt b/Documentation/git-clone.txt
index 7d713c7..dd92cde 100644
--- a/Documentation/git-clone.txt
+++ b/Documentation/git-clone.txt
@@ -1,6 +1,5 @@
git-clone(1)
============
-v0.1, July 2005
NAME
----
@@ -9,7 +8,7 @@ git-clone - Clones a repository.
SYNOPSIS
--------
-'git clone' [-l [-s]] [-q] [-n] [-u <upload-pack>] <repository> <directory>
+'git-clone' [-l [-s]] [-q] [-n] [-u <upload-pack>] <repository> <directory>
DESCRIPTION
-----------
diff --git a/Documentation/git-commit-tree.txt b/Documentation/git-commit-tree.txt
index 9aba868..b64cd6a 100644
--- a/Documentation/git-commit-tree.txt
+++ b/Documentation/git-commit-tree.txt
@@ -1,6 +1,5 @@
git-commit-tree(1)
==================
-v0.1, May 2005
NAME
----
@@ -49,8 +48,8 @@ A commit encapsulates:
- committer name and email and the commit time.
If not provided, "git-commit-tree" uses your name, hostname and domain to
-provide author and committer info. This can be overridden using the
-following environment variables.
+provide author and committer info. This can be overridden by
+either `.git/config` file, or using the following environment variables.
GIT_AUTHOR_NAME
GIT_AUTHOR_EMAIL
@@ -60,10 +59,17 @@ following environment variables.
(nb "<", ">" and "\n"s are stripped)
+In `.git/config` file, the following items are used:
+
+ [user]
+ name = "Your Name"
+ email = "your@email.address.xz"
+
A commit comment is read from stdin (max 999 chars). If a changelog
entry is not provided via "<" redirection, "git-commit-tree" will just wait
for one to be entered and terminated with ^D.
+
Diagnostics
-----------
You don't exist. Go away!::
diff --git a/Documentation/git-commit.txt b/Documentation/git-commit.txt
index 790a8eb..1edc278 100644
--- a/Documentation/git-commit.txt
+++ b/Documentation/git-commit.txt
@@ -1,6 +1,5 @@
git-commit(1)
=============
-v0.99.4, Aug 2005
NAME
----
@@ -8,7 +7,7 @@ git-commit - Record your changes
SYNOPSIS
--------
-'git commit' [-a] [-s] [-v] [(-c | -C) <commit> | -F <file> | -m <msg>] [-e] <file>...
+'git-commit' [-a] [-s] [-v] [(-c | -C) <commit> | -F <file> | -m <msg>] [-e] <file>...
DESCRIPTION
-----------
diff --git a/Documentation/git-convert-objects.txt b/Documentation/git-convert-objects.txt
index 6ce62dc..b1220c0 100644
--- a/Documentation/git-convert-objects.txt
+++ b/Documentation/git-convert-objects.txt
@@ -1,10 +1,9 @@
git-convert-objects(1)
======================
-v0.1, May 2005
NAME
----
-git-convert-objects - Converts old-style GIT repository
+git-convert-objects - Converts old-style git repository
SYNOPSIS
@@ -13,7 +12,7 @@ SYNOPSIS
DESCRIPTION
-----------
-Converts old-style GIT repository to the latest format
+Converts old-style git repository to the latest format
Author
diff --git a/Documentation/git-cvsimport.txt b/Documentation/git-cvsimport.txt
index b5753a4..f5248c9 100644
--- a/Documentation/git-cvsimport.txt
+++ b/Documentation/git-cvsimport.txt
@@ -1,6 +1,5 @@
git-cvsimport(1)
================
-v0.1, July 2005
NAME
----
@@ -11,7 +10,7 @@ SYNOPSIS
--------
'git-cvsimport' [ -o <branch-for-HEAD> ] [ -h ] [ -v ]
[ -d <CVSROOT> ] [ -p <options-for-cvsps> ]
- [ -C <GIT_repository> ] [ -i ] [ -k ]
+ [ -C <git_repository> ] [ -i ] [ -k ]
[ -s <subst> ] [ -m ] [ -M regex ] [ <CVS_module> ]
@@ -31,7 +30,7 @@ OPTIONS
are supported.
-C <target-dir>::
- The GIT repository to import to. If the directory doesn't
+ The git repository to import to. If the directory doesn't
exist, it will be created. Default is the current directory.
-i::
diff --git a/Documentation/git-daemon.txt b/Documentation/git-daemon.txt
index 065f2aa..67c5f22 100644
--- a/Documentation/git-daemon.txt
+++ b/Documentation/git-daemon.txt
@@ -3,11 +3,12 @@ git-daemon(1)
NAME
----
-git-daemon - A really simple server for GIT repositories.
+git-daemon - A really simple server for git repositories.
SYNOPSIS
--------
-'git-daemon' [--verbose] [--syslog] [--inetd | --port=n]
+'git-daemon' [--verbose] [--syslog] [--inetd | --port=n] [--export-all]
+ [--timeout=n] [--init-timeout=n] [directory...]
DESCRIPTION
-----------
@@ -20,18 +21,35 @@ what directory to upload, and it verifies that the directory is ok.
It verifies that the directory has the magic file "git-daemon-export-ok", and
it will refuse to export any git directory that hasn't explicitly been marked
-for export this way.
+for export this way (unless the '--export-all' parameter is specified). If you
+pass some directory paths as 'git-daemon' arguments, you can further restrict
+the offers to a whitelist comprising of those.
This is ideally suited for read-only updates, ie pulling from git repositories.
OPTIONS
-------
+--export-all::
+ Allow pulling from all directories that look like GIT repositories
+ (have the 'objects' subdirectory and a 'HEAD' file), even if they
+ do not have the 'git-daemon-export-ok' file.
+
--inetd::
Have the server run as an inetd service.
--port::
Listen on an alternative port.
+--init-timeout::
+ Timeout between the moment the connection is established and the
+ client request is received (typically a rather low value, since
+ that should be basically immediate).
+
+--timeout::
+ Timeout for specific client sub-requests. This includes the time
+ it takes for the server to process the sub-request and time spent
+ waiting for next client's request.
+
--syslog::
Log to syslog instead of stderr. Note that this option does not imply
--verbose, thus by default only error conditions will be logged.
diff --git a/Documentation/git-diff-files.txt b/Documentation/git-diff-files.txt
index eb9fb74..e387388 100644
--- a/Documentation/git-diff-files.txt
+++ b/Documentation/git-diff-files.txt
@@ -1,6 +1,5 @@
git-diff-files(1)
=================
-v0.1, May 2005
NAME
----
diff --git a/Documentation/git-diff-index.txt b/Documentation/git-diff-index.txt
index 8b6a953..2fc3eed 100644
--- a/Documentation/git-diff-index.txt
+++ b/Documentation/git-diff-index.txt
@@ -1,6 +1,5 @@
git-diff-index(1)
=================
-v0.1, May 2005
NAME
----
diff --git a/Documentation/git-diff-stages.txt b/Documentation/git-diff-stages.txt
index 276d7bd..28c60fc 100644
--- a/Documentation/git-diff-stages.txt
+++ b/Documentation/git-diff-stages.txt
@@ -1,6 +1,5 @@
git-diff-stages(1)
==================
-v0.1, June 2005
NAME
----
diff --git a/Documentation/git-diff-tree.txt b/Documentation/git-diff-tree.txt
index 339a9228..f57c8d0 100644
--- a/Documentation/git-diff-tree.txt
+++ b/Documentation/git-diff-tree.txt
@@ -1,6 +1,5 @@
git-diff-tree(1)
================
-v0.1, May 2005
NAME
----
@@ -9,7 +8,7 @@ git-diff-tree - Compares the content and mode of blobs found via two tree object
SYNOPSIS
--------
-'git-diff-tree' [--stdin] [-m] [-s] [-v] [--pretty] [-t] [<common diff options>] <tree-ish> [<tree-ish>] [<path>...]
+'git-diff-tree' [--stdin] [-m] [-s] [-v] [--pretty] [-t] [-r] [--root] [<common diff options>] <tree-ish> [<tree-ish>] [<path>...]
DESCRIPTION
-----------
@@ -34,6 +33,9 @@ include::diff-options.txt[]
Note that this parameter does not provide any wildcard or regexp
features.
+-r::
+ recurse into sub-trees
+
-t::
show tree entry itself as well as subtrees. Implies -r.
diff --git a/Documentation/git-fetch-pack.txt b/Documentation/git-fetch-pack.txt
index 1d28182..ea6faab 100644
--- a/Documentation/git-fetch-pack.txt
+++ b/Documentation/git-fetch-pack.txt
@@ -1,6 +1,5 @@
git-fetch-pack(1)
=================
-v0.1, July 2005
NAME
----
@@ -35,7 +34,7 @@ OPTIONS
remote side, if is not found on your $PATH.
Installations of sshd ignores the user's environment
setup scripts for login shells (e.g. .bash_profile) and
- your privately installed GIT may not be found on the system
+ your privately installed git may not be found on the system
default $PATH. Another workaround suggested is to set
up your $PATH in ".bashrc", but this flag is for people
who do not want to pay the overhead for non-interactive
diff --git a/Documentation/git-fetch.txt b/Documentation/git-fetch.txt
index 1fa9f4d..7169365 100644
--- a/Documentation/git-fetch.txt
+++ b/Documentation/git-fetch.txt
@@ -1,6 +1,5 @@
git-fetch(1)
============
-v0.99.5, Aug 2005
NAME
----
@@ -26,6 +25,11 @@ OPTIONS
-------
include::pull-fetch-param.txt[]
+-a, \--append::
+ Append ref names and object names of fetched refs to the
+ existing contents of $GIT_DIR/FETCH_HEAD. Without this
+ option old data in $GIT_DIR/FETCH_HEAD will be overwritten.
+
-u, \--update-head-ok::
By default 'git-fetch' refuses to update the head which
corresponds to the current branch. This flag disables the
diff --git a/Documentation/git-format-patch.txt b/Documentation/git-format-patch.txt
index a1483ff..f3ef4c1 100644
--- a/Documentation/git-format-patch.txt
+++ b/Documentation/git-format-patch.txt
@@ -8,7 +8,7 @@ git-format-patch - Prepare patches for e-mail submission.
SYNOPSIS
--------
-'git-format-patch' [-n][-o <dir>][-k][--mbox][--diff-options] <his> [<mine>]
+'git-format-patch' [-n][-o <dir>|--stdout][-k][--mbox][--diff-options] <his> [<mine>]
DESCRIPTION
-----------
@@ -54,6 +54,10 @@ OPTIONS
concatenated together and fed to `git-applymbox`.
Implies --author and --date.
+--stdout::
+ This flag generates the mbox formatted output to the
+ standard output, instead of saving them into a file per
+ patch and implies --mbox.
Author
------
diff --git a/Documentation/git-fsck-objects.txt b/Documentation/git-fsck-objects.txt
index ba251a5..5dc9dbd 100644
--- a/Documentation/git-fsck-objects.txt
+++ b/Documentation/git-fsck-objects.txt
@@ -1,6 +1,5 @@
git-fsck-objects(1)
===================
-v0.1, May 2005
NAME
----
@@ -42,22 +41,22 @@ index file and all SHA1 references in .git/refs/* as heads.
($GIT_DIR/objects), making sure that it is consistent and
complete without referring to objects found in alternate
object pools listed in GIT_ALTERNATE_OBJECT_DIRECTORIES,
- nor packed GIT archives found in $GIT_DIR/objects/pack;
+ nor packed git archives found in $GIT_DIR/objects/pack;
cannot be used with --full.
--full::
Check not just objects in GIT_OBJECT_DIRECTORY
($GIT_DIR/objects), but also the ones found in alternate
object pools listed in GIT_ALTERNATE_OBJECT_DIRECTORIES,
- and in packed GIT archives found in $GIT_DIR/objects/pack
+ and in packed git archives found in $GIT_DIR/objects/pack
and corresponding pack subdirectories in alternate
object pools; cannot be used with --standalone.
--strict::
Enable more strict checking, namely to catch a file mode
recorded with g+w bit set, which was created by older
- versions of GIT. Existing repositories, including the
- Linux kernel, GIT itself, and sparse repository have old
+ versions of git. Existing repositories, including the
+ Linux kernel, git itself, and sparse repository have old
objects that triggers this check, but it is recommended
to check new projects with this flag.
@@ -81,7 +80,7 @@ Any corrupt objects you will have to find in backups or other archives
the hopes that somebody else has the object you have corrupted).
Of course, "valid tree" doesn't mean that it wasn't generated by some
-evil person, and the end result might be crap. Git is a revision
+evil person, and the end result might be crap. git is a revision
tracking system, not a quality assurance system ;)
Extracted Diagnostics
diff --git a/Documentation/git-grep.txt b/Documentation/git-grep.txt
index 5f08216..0175793 100644
--- a/Documentation/git-grep.txt
+++ b/Documentation/git-grep.txt
@@ -1,6 +1,5 @@
git-grep(1)
===========
-v0.99.6, Sep 2005
NAME
----
diff --git a/Documentation/git-hash-object.txt b/Documentation/git-hash-object.txt
index 935cc66..9239f11 100644
--- a/Documentation/git-hash-object.txt
+++ b/Documentation/git-hash-object.txt
@@ -1,6 +1,5 @@
git-hash-object(1)
==================
-v0.1, May 2005
NAME
----
diff --git a/Documentation/git-http-fetch.txt b/Documentation/git-http-fetch.txt
index c034272..088624f 100644
--- a/Documentation/git-http-fetch.txt
+++ b/Documentation/git-http-fetch.txt
@@ -1,10 +1,9 @@
git-http-fetch(1)
=================
-v0.1, May 2005
NAME
----
-git-http-fetch - Downloads a remote GIT repository via HTTP
+git-http-fetch - Downloads a remote git repository via HTTP
SYNOPSIS
@@ -13,7 +12,7 @@ SYNOPSIS
DESCRIPTION
-----------
-Downloads a remote GIT repository via HTTP.
+Downloads a remote git repository via HTTP.
-c::
Get the commit objects.
diff --git a/Documentation/git-index-pack.txt b/Documentation/git-index-pack.txt
new file mode 100644
index 0000000..71ce557
--- /dev/null
+++ b/Documentation/git-index-pack.txt
@@ -0,0 +1,44 @@
+git-index-pack(1)
+=================
+
+NAME
+----
+git-index-pack - Build pack index file for an existing packed archive
+
+
+SYNOPSIS
+--------
+'git-index-pack' [-o <index-file>] <pack-file>
+
+
+DESCRIPTION
+-----------
+Reads a packed archive (.pack) from the specified file, and
+builds a pack index file (.idx) for it. The packed archive
+together with the pack index can then be placed in the
+objects/pack/ directory of a git repository.
+
+
+OPTIONS
+-------
+-o <index-file>::
+ Write the generated pack index into the specified
+ file. Without this option the name of pack index
+ file is constructed from the name of packed archive
+ file by replacing .pack with .idx (and the program
+ fails if the name of packed archive does not end
+ with .pack).
+
+
+Author
+------
+Written by Sergey Vlasov <vsu@altlinux.ru>
+
+Documentation
+-------------
+Documentation by Sergey Vlasov
+
+GIT
+---
+Part of the gitlink:git[7] suite
+
diff --git a/Documentation/git-init-db.txt b/Documentation/git-init-db.txt
index ef2d04a..ef1826a 100644
--- a/Documentation/git-init-db.txt
+++ b/Documentation/git-init-db.txt
@@ -1,6 +1,5 @@
git-init-db(1)
==============
-v0.1, May 2005
NAME
----
diff --git a/Documentation/git-local-fetch.txt b/Documentation/git-local-fetch.txt
index ccf9735..87abec1 100644
--- a/Documentation/git-local-fetch.txt
+++ b/Documentation/git-local-fetch.txt
@@ -1,10 +1,9 @@
git-local-fetch(1)
==================
-v0.1, May 2005
NAME
----
-git-local-fetch - Duplicates another GIT repository on a local system
+git-local-fetch - Duplicates another git repository on a local system
SYNOPSIS
@@ -13,7 +12,7 @@ SYNOPSIS
DESCRIPTION
-----------
-Duplicates another GIT repository on a local system.
+Duplicates another git repository on a local system.
OPTIONS
-------
diff --git a/Documentation/git-log.txt b/Documentation/git-log.txt
index 2a0e5ac..13a3998 100644
--- a/Documentation/git-log.txt
+++ b/Documentation/git-log.txt
@@ -1,6 +1,5 @@
git-log(1)
==========
-v0.99.4, Aug 2005
NAME
----
@@ -9,7 +8,7 @@ git-log - Show commit logs
SYNOPSIS
--------
-'git log' <option>...
+'git-log' <option>...
DESCRIPTION
-----------
diff --git a/Documentation/git-ls-files.txt b/Documentation/git-ls-files.txt
index f4501d6..8c1784d 100644
--- a/Documentation/git-ls-files.txt
+++ b/Documentation/git-ls-files.txt
@@ -54,7 +54,7 @@ OPTIONS
succeed.
-z::
- \0 line termination on output
+ \0 line termination on output.
-x|--exclude=<pattern>::
Skips files matching pattern.
@@ -100,6 +100,10 @@ the dircache records up to three such pairs; one from tree O in stage
the user (or the porcelain) to see what should eventually be recorded at the
path. (see git-read-tree for more information on state)
+When `-z` option is not used, TAB, LF, and backslash characters
+in pathnames are represented as `\t`, `\n`, and `\\`,
+respectively.
+
Exclude Patterns
----------------
diff --git a/Documentation/git-ls-remote.txt b/Documentation/git-ls-remote.txt
index 89bd609..c0a80d4 100644
--- a/Documentation/git-ls-remote.txt
+++ b/Documentation/git-ls-remote.txt
@@ -1,6 +1,5 @@
git-ls-remote(1)
================
-v0.1, May 2005
NAME
----
diff --git a/Documentation/git-ls-tree.txt b/Documentation/git-ls-tree.txt
index 0d159fd..ba0438e 100644
--- a/Documentation/git-ls-tree.txt
+++ b/Documentation/git-ls-tree.txt
@@ -1,6 +1,5 @@
git-ls-tree(1)
==============
-v0.1, May 2005
NAME
----
@@ -39,6 +38,10 @@ Output Format
-------------
<mode> SP <type> SP <object> TAB <file>
+When `-z` option is not used, TAB, LF, and backslash characters
+in pathnames are represented as `\t`, `\n`, and `\\`,
+respectively.
+
Author
------
diff --git a/Documentation/git-mailsplit.txt b/Documentation/git-mailsplit.txt
index 557d2e9..03a9477 100644
--- a/Documentation/git-mailsplit.txt
+++ b/Documentation/git-mailsplit.txt
@@ -7,7 +7,7 @@ git-mailsplit - Totally braindamaged mbox splitter program.
SYNOPSIS
--------
-'git-mailsplit' <mbox> <directory>
+'git-mailsplit' [-d<prec>] [<mbox>] <directory>
DESCRIPTION
-----------
@@ -17,14 +17,23 @@ directory so you can process them further from there.
OPTIONS
-------
<mbox>::
- Mbox file to split.
+ Mbox file to split. If not given, the mbox is read from
+ the standard input.
<directory>::
Directory in which to place the individual messages.
+-d<prec>::
+ Instead of the default 4 digits with leading zeros,
+ different precision can be specified for the generated
+ filenames.
+
+
Author
------
Written by Linus Torvalds <torvalds@osdl.org>
+and Junio C Hamano <junkio@cox.net>
+
Documentation
--------------
diff --git a/Documentation/git-merge-base.txt b/Documentation/git-merge-base.txt
index e469216..d1d56f1 100644
--- a/Documentation/git-merge-base.txt
+++ b/Documentation/git-merge-base.txt
@@ -1,6 +1,5 @@
git-merge-base(1)
=================
-v0.1, May 2005
NAME
----
diff --git a/Documentation/git-merge-index.txt b/Documentation/git-merge-index.txt
index 5caee90..d072fda 100644
--- a/Documentation/git-merge-index.txt
+++ b/Documentation/git-merge-index.txt
@@ -1,6 +1,5 @@
git-merge-index(1)
==================
-v0.1, May 2005
NAME
----
diff --git a/Documentation/git-merge-one-file.txt b/Documentation/git-merge-one-file.txt
index 7127397..86aad37 100644
--- a/Documentation/git-merge-one-file.txt
+++ b/Documentation/git-merge-one-file.txt
@@ -1,6 +1,5 @@
git-merge-one-file(1)
=====================
-v0.99.4, Aug 2005
NAME
----
diff --git a/Documentation/git-merge.txt b/Documentation/git-merge.txt
index dca363d..a007a8b 100644
--- a/Documentation/git-merge.txt
+++ b/Documentation/git-merge.txt
@@ -1,6 +1,5 @@
git-merge(1)
============
-v0.99.6, Sep 2005
NAME
----
diff --git a/Documentation/git-mktag.txt b/Documentation/git-mktag.txt
index 44ed4b5..2860a3d 100644
--- a/Documentation/git-mktag.txt
+++ b/Documentation/git-mktag.txt
@@ -1,6 +1,5 @@
git-mktag(1)
============
-v0.1, May 2005
NAME
----
diff --git a/Documentation/git-mv.txt b/Documentation/git-mv.txt
new file mode 100644
index 0000000..f2d5882
--- /dev/null
+++ b/Documentation/git-mv.txt
@@ -0,0 +1,51 @@
+git-mv(1)
+=========
+
+NAME
+----
+git-mv - Script used to move or rename a file, directory or symlink.
+
+
+SYNOPSIS
+--------
+'git-mv' [-f] [-n] <source> <destination>
+'git-mv' [-f] [-k] [-n] <source> ... <destination directory>
+
+DESCRIPTION
+-----------
+This script is used to move or rename a file, directory or symlink.
+In the first form, it renames <source>, which must exist and be either
+a file, symlink or directory, to <destination>, which must not exist.
+In the second form, the last argument has to be an existing
+directory; the given sources will be moved into this directory.
+
+The index is updated after successful completion, but the change must still be
+committed.
+
+OPTIONS
+-------
+-f::
+ Force renaming or moving even targets exist
+-k::
+ Skip move or rename actions which would lead to an error
+ condition. An error happens when a source is neither existing nor
+ controlled by GIT, or when it would overwrite an existing
+ file unless '-f' is given.
+-n::
+ Do nothing; only show what would happen
+
+
+Author
+------
+Written by Linus Torvalds <torvalds@osdl.org>
+Rewritten by Ryan Anderson <ryan@michonline.com>
+Move functionality added by Josef Weidendorfer <Josef.Weidendorfer@gmx.de>
+
+Documentation
+--------------
+Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.
+
+GIT
+---
+Part of the gitlink:git[7] suite
+
diff --git a/Documentation/git-name-rev.txt b/Documentation/git-name-rev.txt
new file mode 100644
index 0000000..e37b0b8
--- /dev/null
+++ b/Documentation/git-name-rev.txt
@@ -0,0 +1,66 @@
+git-name-rev(1)
+===============
+
+NAME
+----
+git-name-rev - Find symbolic names for given revs.
+
+
+SYNOPSIS
+--------
+'git-name-rev' [--tags] ( --all | --stdin | <commitish>... )
+
+DESCRIPTION
+-----------
+Finds symbolic names suitable for human digestion for revisions given in any
+format parsable by git-rev-parse.
+
+
+OPTIONS
+-------
+
+--tags::
+ Do not use branch names, but only tags to name the commits
+
+--all::
+ List all commits reachable from all refs
+
+--stdin::
+ Read from stdin, append "(<rev_name>)" to all sha1's of name'able
+ commits, and pass to stdout
+
+EXAMPLE
+-------
+
+Given a commit, find out where it is relative to the local refs. Say somebody
+wrote you about that phantastic commit 33db5f4d9027a10e477ccf054b2c1ab94f74c85a.
+Of course, you look into the commit, but that only tells you what happened, but
+not the context.
+
+Enter git-name-rev:
+
+------------
+% git name-rev 33db5f4d9027a10e477ccf054b2c1ab94f74c85a
+------------
+
+Now you are wiser, because you know that it happened 940 revisions before v0.99.
+
+Another nice thing you can do is:
+
+------------
+% git log | git name-rev --stdin
+------------
+
+
+Author
+------
+Written by Johannes Schindelin <Johannes.Schindelin@gmx.de>
+
+Documentation
+--------------
+Documentation by Johannes Schindelin.
+
+GIT
+---
+Part of the gitlink:git[7] suite
+
diff --git a/Documentation/git-octopus.txt b/Documentation/git-octopus.txt
index 881c317..6e32ea3 100644
--- a/Documentation/git-octopus.txt
+++ b/Documentation/git-octopus.txt
@@ -1,6 +1,5 @@
git-octopus(1)
==============
-v0.99.5, Aug 2005
NAME
----
diff --git a/Documentation/git-pack-objects.txt b/Documentation/git-pack-objects.txt
index 44aba94..d1e93db 100644
--- a/Documentation/git-pack-objects.txt
+++ b/Documentation/git-pack-objects.txt
@@ -1,6 +1,5 @@
git-pack-objects(1)
===================
-v0.1, July 2005
NAME
----
@@ -9,7 +8,7 @@ git-pack-objects - Create a packed archive of objects.
SYNOPSIS
--------
-'git-pack-objects' [--incremental] [--window=N] [--depth=N] {--stdout | base-name} < object-list
+'git-pack-objects' [--local] [--incremental] [--window=N] [--depth=N] {--stdout | base-name} < object-list
DESCRIPTION
@@ -31,7 +30,7 @@ transport by their peers.
Placing both in the pack/ subdirectory of $GIT_OBJECT_DIRECTORY (or
any of the directories on $GIT_ALTERNATE_OBJECT_DIRECTORIES)
-enables GIT to read from such an archive.
+enables git to read from such an archive.
OPTIONS
@@ -65,6 +64,11 @@ base-name::
This flag causes an object already in a pack ignored
even if it appears in the standard input.
+--local::
+ This flag is similar to `--incremental`; instead of
+ ignoring all packed objects, it only ignores objects
+ that are packed and not in the local object store
+ (i.e. borrowed from an alternate).
Author
------
diff --git a/Documentation/git-patch-id.txt b/Documentation/git-patch-id.txt
index 3e560a3..c8bd197 100644
--- a/Documentation/git-patch-id.txt
+++ b/Documentation/git-patch-id.txt
@@ -18,6 +18,12 @@ ID" are almost guaranteed to be the same thing.
IOW, you can use this thing to look for likely duplicate commits.
+When dealing with git-diff-tree output, it takes advantage of
+the fact that the patch is prefixed with the object name of the
+commit, and outputs two 40-byte hexadecimal string. The first
+string is the patch ID, and the second string is the commit ID.
+This can be used to make a mapping from patch ID to commit ID.
+
OPTIONS
-------
<patch>::
diff --git a/Documentation/git-peek-remote.txt b/Documentation/git-peek-remote.txt
index c1527f1..915d3f8 100644
--- a/Documentation/git-peek-remote.txt
+++ b/Documentation/git-peek-remote.txt
@@ -1,6 +1,5 @@
git-peek-remote(1)
==================
-v0.1, July 2005
NAME
----
@@ -23,7 +22,7 @@ OPTIONS
remote side, if it is not found on your $PATH. Some
installations of sshd ignores the user's environment
setup scripts for login shells (e.g. .bash_profile) and
- your privately installed GIT may not be found on the system
+ your privately installed git may not be found on the system
default $PATH. Another workaround suggested is to set
up your $PATH in ".bashrc", but this flag is for people
who do not want to pay the overhead for non-interactive
diff --git a/Documentation/git-prune-packed.txt b/Documentation/git-prune-packed.txt
index 5c48a09..28a1500 100644
--- a/Documentation/git-prune-packed.txt
+++ b/Documentation/git-prune-packed.txt
@@ -1,6 +1,5 @@
git-prune-packed(1)
=====================
-v0.1, August 2005
NAME
----
diff --git a/Documentation/git-prune.txt b/Documentation/git-prune.txt
index d1676cb..3367c9b 100644
--- a/Documentation/git-prune.txt
+++ b/Documentation/git-prune.txt
@@ -1,6 +1,5 @@
git-prune(1)
============
-v0.99.5, Aug 2005
NAME
----
diff --git a/Documentation/git-pull.txt b/Documentation/git-pull.txt
index c35d2eb..bae05de 100644
--- a/Documentation/git-pull.txt
+++ b/Documentation/git-pull.txt
@@ -1,6 +1,5 @@
git-pull(1)
===========
-v0.99.4, Aug 2005
NAME
----
@@ -25,6 +24,10 @@ OPTIONS
-------
include::pull-fetch-param.txt[]
+-a, \--append::
+ Append ref names and object names of fetched refs to the
+ existing contents of $GIT_DIR/FETCH_HEAD. Without this
+ option old data in $GIT_DIR/FETCH_HEAD will be overwritten.
Author
------
diff --git a/Documentation/git-push.txt b/Documentation/git-push.txt
index 809ac8b..f45ac5e 100644
--- a/Documentation/git-push.txt
+++ b/Documentation/git-push.txt
@@ -21,6 +21,15 @@ OPTIONS
-------
include::pull-fetch-param.txt[]
+\--all::
+ Instead of naming each ref to push, specifies all refs
+ to be pushed.
+
+-f, \--force::
+ Usually, the command refuses to update a local ref that is
+ not an ancestor of the remote ref used to overwrite it.
+ This flag disables the check. What this means is that the
+ local repository can lose commits; use it with care.
Author
------
diff --git a/Documentation/git-read-tree.txt b/Documentation/git-read-tree.txt
index 5653bac..7db5fb5 100644
--- a/Documentation/git-read-tree.txt
+++ b/Documentation/git-read-tree.txt
@@ -1,6 +1,5 @@
git-read-tree(1)
================
-v0.1, May 2005
NAME
----
diff --git a/Documentation/git-receive-pack.txt b/Documentation/git-receive-pack.txt
index fb4b76b..8afde14 100644
--- a/Documentation/git-receive-pack.txt
+++ b/Documentation/git-receive-pack.txt
@@ -1,6 +1,5 @@
git-receive-pack(1)
===================
-v0.1, July 2005
NAME
----
diff --git a/Documentation/git-rename.txt b/Documentation/git-rename.txt
index 21928dc..583cb03 100644
--- a/Documentation/git-rename.txt
+++ b/Documentation/git-rename.txt
@@ -1,6 +1,5 @@
git-rename(1)
=============
-v0.1, May 2005
NAME
----
diff --git a/Documentation/git-repack.txt b/Documentation/git-repack.txt
index bd830ad..0c1ae49 100644
--- a/Documentation/git-repack.txt
+++ b/Documentation/git-repack.txt
@@ -1,6 +1,5 @@
git-repack(1)
=============
-v0.99.5, August 2005
NAME
----
diff --git a/Documentation/git-resolve.txt b/Documentation/git-resolve.txt
index 7d3eb79..4e57c2b 100644
--- a/Documentation/git-resolve.txt
+++ b/Documentation/git-resolve.txt
@@ -1,6 +1,5 @@
git-resolve(1)
==============
-v0.99.5, Aug 2005
NAME
----
@@ -9,7 +8,7 @@ git-resolve - Merge two commits
SYNOPSIS
--------
-'git resolve' <current> <merged> <message>
+'git-resolve' <current> <merged> <message>
DESCRIPTION
-----------
diff --git a/Documentation/git-rev-list.txt b/Documentation/git-rev-list.txt
index f386a3a..064ccb1 100644
--- a/Documentation/git-rev-list.txt
+++ b/Documentation/git-rev-list.txt
@@ -1,6 +1,5 @@
git-rev-list(1)
===============
-v0.1, May 2005
NAME
----
@@ -9,7 +8,18 @@ git-rev-list - Lists commit objects in reverse chronological order
SYNOPSIS
--------
-'git-rev-list' [ *--max-count*=number ] [ *--max-age*=timestamp ] [ *--min-age*=timestamp ] [ *--bisect* ] [ *--pretty* ] [ *--objects* ] [ *--merge-order* [ *--show-breaks* ] ] <commit> [ <commit> ...] [ ^<commit> ...]
+'git-rev-list' [ \--max-count=number ]
+ [ \--max-age=timestamp ]
+ [ \--min-age=timestamp ]
+ [ \--sparse ]
+ [ \--no-merges ]
+ [ \--all ]
+ [ [ \--merge-order [ \--show-breaks ] ] | [ \--topo-order ] | ]
+ [ \--parents ]
+ [ \--objects [ \--unpacked ] ]
+ [ \--pretty | \--header | ]
+ [ \--bisect ]
+ <commit>... [ \-- <paths>... ]
DESCRIPTION
-----------
@@ -17,22 +27,34 @@ Lists commit objects in reverse chronological order starting at the
given commit(s), taking ancestry relationship into account. This is
useful to produce human-readable log output.
-Commits which are stated with a preceding '^' cause listing to stop at
-that point. Their parents are implied. "git-rev-list foo bar ^baz" thus
+Commits which are stated with a preceding '{caret}' cause listing to stop at
+that point. Their parents are implied. "git-rev-list foo bar {caret}baz" thus
means "list all the commits which are included in 'foo' and 'bar', but
not in 'baz'".
+A special notation <commit1>..<commit2> can be used as a
+short-hand for {caret}<commit1> <commit2>.
+
+
OPTIONS
-------
--pretty::
Print the contents of the commit changesets in human-readable form.
+--header::
+ Print the contents of the commit in raw-format; each
+ record is separated with a NUL character.
+
--objects::
Print the object IDs of any object referenced by the listed commits.
'git-rev-list --objects foo ^bar' thus means "send me all object IDs
which I need to download if I have the commit object 'bar', but
not 'foo'".
+--unpacked::
+ Only useful with `--objects`; print the object IDs that
+ are not in packs.
+
--bisect::
Limit output to the one commit object which is roughly halfway
between the included and excluded commits. Thus, if 'git-rev-list
@@ -43,6 +65,30 @@ OPTIONS
repeatedly generate and test new 'midpoint's until the commit chain
is of length one.
+--max-count::
+ Limit the number of commits output.
+
+--max-age=timestamp, --min-age=timestamp::
+ Limit the commits output to specified time range.
+
+--sparse::
+ When optional paths are given, the command outputs only
+ the commits that changes at least one of them, and also
+ ignores merges that do not touch the given paths. This
+ flag makes the command output all eligible commits
+ (still subject to count and age limitation), but apply
+ merge simplification nevertheless.
+
+--all::
+ Pretend as if all the refs in `$GIT_DIR/refs/` are
+ listed on the command line as <commit>.
+
+--topo-order::
+ By default, the commits are shown in reverse
+ chronological order. This option makes them appear in
+ topological order (i.e. descendant commits are shown
+ before their parents).
+
--merge-order::
When specified the commit history is decomposed into a unique
sequence of minimal, non-linear epochs and maximal, linear epochs.
@@ -85,7 +131,8 @@ Commits marked with (^) are not parents of the immediately preceding commit.
These "breaks" represent necessary discontinuities implied by trying to
represent an arbtirary DAG in a linear form.
+
-*--show-breaks* is only valid if *--merge-order* is also specified.
+`--show-breaks` is only valid if `--merge-order` is also specified.
+
Author
------
diff --git a/Documentation/git-rev-parse.txt b/Documentation/git-rev-parse.txt
index 99fd90e..099db29 100644
--- a/Documentation/git-rev-parse.txt
+++ b/Documentation/git-rev-parse.txt
@@ -79,8 +79,9 @@ OPTIONS
SPECIFYING REVISIONS
--------------------
-A revision parameter typically names a commit object. They use
-what is called an 'extended SHA1' syntax.
+A revision parameter typically, but not necessarily, names a
+commit object. They use what is called an 'extended SHA1'
+syntax.
* The full SHA1 object name (40-byte hexadecimal string), or
a substring of such that is unique within the repository.
@@ -91,7 +92,7 @@ what is called an 'extended SHA1' syntax.
* A symbolic ref name. E.g. 'master' typically means the commit
object referenced by $GIT_DIR/refs/heads/master. If you
happen to have both heads/master and tags/master, you can
- explicitly say 'heads/master' to tell GIT which one you mean.
+ explicitly say 'heads/master' to tell git which one you mean.
* A suffix '{caret}' to a revision parameter means the first parent of
that commit object. '{caret}<n>' means the <n>th parent (i.e.
@@ -106,6 +107,18 @@ what is called an 'extended SHA1' syntax.
equivalent to rev{caret}{caret}{caret} which is equivalent to\
rev{caret}1{caret}1{caret}1.
+* A suffix '{caret}' followed by an object type name enclosed in
+ brace pair (e.g. `v0.99.8{caret}\{commit\}`) means the object
+ could be a tag, and dereference the tag recursively until an
+ object of that type is found or the object cannot be
+ dereferenced anymore (in which case, barf). `rev{caret}0`
+ introduced earlier is a short-hand for `rev{caret}\{commit\}`.
+
+* A suffix '{caret}' followed by an empty brace pair
+ (e.g. `v0.99.8{caret}\{\}`) means the object could be a tag,
+ and dereference the tag recursively until a non-tag object is
+ found.
+
'git-rev-parse' also accepts a prefix '{caret}' to revision parameter,
which is passed to 'git-rev-list'. Two revision parameters
concatenated with '..' is a short-hand for writing a range
diff --git a/Documentation/git-send-email.txt b/Documentation/git-send-email.txt
index b95e33d..b9bec55 100644
--- a/Documentation/git-send-email.txt
+++ b/Documentation/git-send-email.txt
@@ -1,6 +1,5 @@
git-send-email(1)
=================
-v0.1, July 2005
NAME
----
diff --git a/Documentation/git-send-pack.txt b/Documentation/git-send-pack.txt
index 219dfc2..577f06a 100644
--- a/Documentation/git-send-pack.txt
+++ b/Documentation/git-send-pack.txt
@@ -1,6 +1,5 @@
git-send-pack(1)
================
-v0.1, July 2005
NAME
----
diff --git a/Documentation/git-shell.txt b/Documentation/git-shell.txt
new file mode 100644
index 0000000..3f4d804
--- /dev/null
+++ b/Documentation/git-shell.txt
@@ -0,0 +1,35 @@
+git-shell(1)
+============
+
+NAME
+----
+git-shell - Restricted login shell for GIT over SSH only
+
+
+SYNOPSIS
+--------
+'git-shell -c <command> <argument>'
+
+DESCRIPTION
+-----------
+This is meant to be used as a login shell for SSH accounts you want
+to restrict to GIT pull/push access only. It permits execution only
+of server-side GIT commands implementing the pull/push functionality.
+The commands can be executed only by the '-c' option; the shell is not
+interactive.
+
+Currently, only the `git-receive-pack` and `git-upload-pack` commands
+are permitted to be called, with a single required argument.
+
+Author
+------
+Written by Linus Torvalds <torvalds@osdl.org>
+
+Documentation
+--------------
+Documentation by Petr Baudis and the git-list <git@vger.kernel.org>.
+
+GIT
+---
+Part of the gitlink:git[7] suite
+
diff --git a/Documentation/git-shortlog.txt b/Documentation/git-shortlog.txt
index a852e9b..65ca77f 100644
--- a/Documentation/git-shortlog.txt
+++ b/Documentation/git-shortlog.txt
@@ -1,6 +1,5 @@
git-shortlog(1)
===============
-v0.99.4, Aug 2005
NAME
----
@@ -9,7 +8,7 @@ git-shortlog - Summarize 'git log' output.
SYNOPSIS
--------
-'git log --pretty=short | git shortlog'
+'git-log --pretty=short | git shortlog'
DESCRIPTION
-----------
diff --git a/Documentation/git-show-branch.txt b/Documentation/git-show-branch.txt
index 5b80d5a..c6c97b2 100644
--- a/Documentation/git-show-branch.txt
+++ b/Documentation/git-show-branch.txt
@@ -1,6 +1,5 @@
git-show-branch(1)
==================
-v0.99.5, Aug 2005
NAME
----
@@ -8,7 +7,7 @@ git-show-branch - Show branches and their commits.
SYNOPSIS
--------
-'git show-branch [--all] [--heads] [--tags] [--more=<n> | --list | --independent | --merge-base] <reference>...'
+'git-show-branch [--all] [--heads] [--tags] [--more=<n> | --list | --independent | --merge-base] [--no-name | --sha1-name] <reference>...'
DESCRIPTION
-----------
@@ -45,6 +44,15 @@ OPTIONS
Among the <reference>s given, display only the ones that
cannot be reached from any other <reference>.
+--no-name::
+ Do not show naming strings for each commit.
+
+--sha1-name::
+ Instead of naming the commits using the path to reach
+ them from heads (e.g. "master~2" to mean the grandparent
+ of "master"), name them with the unique prefix of their
+ object names.
+
Note that --more, --list, --independent and --merge-base options
are mutually exclusive.
@@ -89,21 +97,6 @@ whose commit message is "Add 'git show-branch'. "fixes" branch
adds one commit 'Introduce "reset type"'. "mhf" branch has many
other commits.
-When only one head is given, the output format changes slightly
-to conserve space. The '+' sign to show which commit is
-reachable from which head and the first N lines to show the list
-of heads being displayed are both meaningless so they are
-omitted. Also the label given to each commit does not repeat
-the name of the branch because it is obvious.
-
-------------------------------------------------
-$ git show-branch --more=4 master
-[master] Add 'git show-branch'.
-[~1] Add a new extended SHA1 syntax <name>~<num>
-[~2] Fix "git-diff A B"
-[~3] git-ls-files: generalized pathspecs
-[~4] Make "git-ls-files" work in subdirectories
-------------------------------------------------
Author
------
diff --git a/Documentation/git-show-index.txt b/Documentation/git-show-index.txt
index 72720ad..be09b62 100644
--- a/Documentation/git-show-index.txt
+++ b/Documentation/git-show-index.txt
@@ -1,6 +1,5 @@
git-show-index(1)
=================
-v0.1, July 2005
NAME
----
@@ -14,7 +13,7 @@ SYNOPSIS
DESCRIPTION
-----------
-Reads given idx file for packed GIT archive created with
+Reads given idx file for packed git archive created with
git-pack-objects command, and dumps its contents.
The information it outputs is subset of what you can get from
diff --git a/Documentation/git-ssh-fetch.txt b/Documentation/git-ssh-fetch.txt
index e3887ac..b7116b3 100644
--- a/Documentation/git-ssh-fetch.txt
+++ b/Documentation/git-ssh-fetch.txt
@@ -1,6 +1,5 @@
git-ssh-fetch(1)
================
-v0.1, May 2005
NAME
----
diff --git a/Documentation/git-ssh-upload.txt b/Documentation/git-ssh-upload.txt
index b625019..702674e 100644
--- a/Documentation/git-ssh-upload.txt
+++ b/Documentation/git-ssh-upload.txt
@@ -1,6 +1,5 @@
git-ssh-upload(1)
=================
-v0.1, Jun 2005
NAME
----
diff --git a/Documentation/git-status.txt b/Documentation/git-status.txt
index 6d49a5a..753fc08 100644
--- a/Documentation/git-status.txt
+++ b/Documentation/git-status.txt
@@ -1,6 +1,5 @@
git-status(1)
=============
-v0.99.4, Aug 2005
NAME
----
@@ -9,7 +8,7 @@ git-status - Show working tree status.
SYNOPSIS
--------
-'git status'
+'git-status'
DESCRIPTION
-----------
diff --git a/Documentation/git-svnimport.txt b/Documentation/git-svnimport.txt
new file mode 100644
index 0000000..88bdc08
--- /dev/null
+++ b/Documentation/git-svnimport.txt
@@ -0,0 +1,137 @@
+git-svnimport(1)
+================
+v0.1, July 2005
+
+NAME
+----
+git-svnimport - Import a SVN repository into git
+
+
+SYNOPSIS
+--------
+'git-svnimport' [ -o <branch-for-HEAD> ] [ -h ] [ -v ] [ -d | -D ]
+ [ -C <GIT_repository> ] [ -i ] [ -u ] [-l limit_nr_changes]
+ [ -b branch_subdir ] [ -t trunk_subdir ] [ -T tag_subdir ]
+ [ -s start_chg ] [ -m ] [ -M regex ]
+ <SVN_repository_URL> [ <path> ]
+
+
+DESCRIPTION
+-----------
+Imports a SVN repository into git. It will either create a new
+repository, or incrementally import into an existing one.
+
+SVN access is done by the SVN:: Perl module.
+
+git-svnimport assumes that SVN repositories are organized into one
+"trunk" directory where the main development happens, "branch/FOO"
+directories for branches, and "/tags/FOO" directories for tags.
+Other subdirectories are ignored.
+
+git-svnimport creates a file ".git/svn2git", which is required for
+incremental SVN imports.
+
+OPTIONS
+-------
+-C <target-dir>::
+ The GIT repository to import to. If the directory doesn't
+ exist, it will be created. Default is the current directory.
+
+-s <start_rev>::
+ Start importing at this SVN change number. The default is 1.
++
+When importing incementally, you might need to edit the .git/svn2git file.
+
+-i::
+ Import-only: don't perform a checkout after importing. This option
+ ensures the working directory and cache remain untouched and will
+ not create them if they do not exist.
+
+-t <trunk_subdir>::
+ Name the SVN trunk. Default "trunk".
+
+-T <tag_subdir>::
+ Name the SVN subdirectory for tags. Default "tags".
+
+-b <branch_subdir>::
+ Name the SVN subdirectory for branches. Default "branches".
+
+-o <branch-for-HEAD>::
+ The 'trunk' branch from SVN is imported to the 'origin' branch within
+ the git repository. Use this option if you want to import into a
+ different branch.
+
+-m::
+ Attempt to detect merges based on the commit message. This option
+ will enable default regexes that try to capture the name source
+ branch name from the commit message.
+
+-M <regex>::
+ Attempt to detect merges based on the commit message with a custom
+ regex. It can be used with -m to also see the default regexes.
+ You must escape forward slashes.
+
+-l <max_num_changes>::
+ Limit the number of SVN changesets we pull before quitting.
+ This option is necessary because the SVN library has serious memory
+ leaks; the recommended value for nontrivial imports is 100.
+
+ git-svnimport will still exit with a zero exit code. You can check
+ the size of the file ".git/svn2git" to determine whether to call
+ the importer again.
+
+-v::
+ Verbosity: let 'svnimport' report what it is doing.
+
+-d::
+ Use direct HTTP requests if possible. The "<path>" argument is used
+ only for retrieving the SVN logs; the path to the contents is
+ included in the SVN log.
+
+-D::
+ Use direct HTTP requests if possible. The "<path>" argument is used
+ for retrieving the logs, as well as for the contents.
++
+There's no safe way to automatically find out which of these options to
+use, so you need to try both. Usually, the one that's wrong will die
+with a 40x error pretty quickly.
+
+<SVN_repository_URL>::
+ The URL of the SVN module you want to import. For local
+ repositories, use "file:///absolute/path".
++
+If you're using the "-d" or "-D" option, this is the URL of the SVN
+repository itself; it usually ends in "/svn".
+
+<SVN_repository_URL>::
+ The URL of the SVN module you want to import. For local
+ repositories, use "file:///absolute/path".
+
+<path>
+ The path to the module you want to check out.
+
+-h::
+ Print a short usage message and exit.
+
+OUTPUT
+------
+If '-v' is specified, the script reports what it is doing.
+
+Otherwise, success is indicated the Unix way, i.e. by simply exiting with
+a zero exit status.
+
+Author
+------
+Written by Matthias Urlichs <smurf@smurf.noris.de>, with help from
+various participants of the git-list <git@vger.kernel.org>.
+
+Based on a cvs2git script by the same author.
+
+Documentation
+--------------
+Documentation by Matthias Urlichs <smurf@smurf.noris.de>.
+
+GIT
+---
+Part of the gitlink:git[7] suite
+
diff --git a/Documentation/git-tag.txt b/Documentation/git-tag.txt
index e11f51c..3984812 100644
--- a/Documentation/git-tag.txt
+++ b/Documentation/git-tag.txt
@@ -8,19 +8,27 @@ git-tag - Create a tag object signed with GPG
SYNOPSIS
--------
-'git-tag' [-a | -s] [-f] [-m <msg>] <name> [<head>]
+'git-tag' [-a | -s | -u <key-id>] [-f] [-m <msg>] <name> [<head>]
DESCRIPTION
-----------
-Adds a "tag" reference in .git/refs/tags/
+Adds a 'tag' reference in .git/refs/tags/
-Unless "-f" is given, the tag must not yet exist in ".git/refs/tags"
+Unless `-f` is given, the tag must not yet exist in
+`.git/refs/tags/` directory.
-If "-s" or "-a" is passed, the user will be prompted for a tag message.
-and a tag object is created. Otherwise just the SHA1 object
-name of the commit object is written.
+If one of `-a`, `-s`, or `-u <key-id>` is passed, the command
+creates a 'tag' object, and requires the tag message. Unless
+`-m <msg>` is given, an editor is started for the user to type
+in the tag message.
-A GnuPG signed tag object will be created when "-s" is used.
+Otherwise just the SHA1 object name of the commit object is
+written (i.e. an lightweight tag).
+
+A GnuPG signed tag object will be created when `-s` or `-u
+<key-id>` is used. When `-u <key-id>` is not used, the
+committer identity for the current user is used to find the
+GnuPG key for signing.
Author
diff --git a/Documentation/git-tar-tree.txt b/Documentation/git-tar-tree.txt
index 480a0cf..2139b6f 100644
--- a/Documentation/git-tar-tree.txt
+++ b/Documentation/git-tar-tree.txt
@@ -1,6 +1,5 @@
git-tar-tree(1)
===============
-v0.1, May 2005
NAME
----
diff --git a/Documentation/git-unpack-file.txt b/Documentation/git-unpack-file.txt
index 3903b2d..213dc81 100644
--- a/Documentation/git-unpack-file.txt
+++ b/Documentation/git-unpack-file.txt
@@ -1,6 +1,5 @@
git-unpack-file(1)
==================
-v0.1, May 2005
NAME
----
diff --git a/Documentation/git-unpack-objects.txt b/Documentation/git-unpack-objects.txt
index 9b982d9..b716ba1 100644
--- a/Documentation/git-unpack-objects.txt
+++ b/Documentation/git-unpack-objects.txt
@@ -1,6 +1,5 @@
git-unpack-objects(1)
=====================
-v0.1, July 2005
NAME
----
diff --git a/Documentation/git-update-index.txt b/Documentation/git-update-index.txt
index 6fa1d98..58b9e49 100644
--- a/Documentation/git-update-index.txt
+++ b/Documentation/git-update-index.txt
@@ -9,12 +9,13 @@ git-update-index - Modifies the index or directory cache
SYNOPSIS
--------
'git-update-index'
- [--add] [--remove] [--refresh] [--replace]
- [--ignore-missing]
- [--force-remove]
+ [--add] [--remove | --force-remove] [--replace]
+ [--refresh [-q] [--unmerged] [--ignore-missing]]
[--cacheinfo <mode> <object> <file>]\*
- [--info-only]
+ [--chmod=(+|-)x]
+ [--info-only] [--index-info]
[-z] [--stdin]
+ [--verbose]
[--] [<file>]\*
DESCRIPTION
@@ -42,12 +43,28 @@ OPTIONS
Looks at the current cache and checks to see if merges or
updates are needed by checking stat() information.
+-q::
+ Quiet. If --refresh finds that the cache needs an update, the
+ default behavior is to error out. This option makes
+ git-update-index continue anyway.
+
+--unmerged::
+ If --refresh finds unmerged changes in the cache, the default
+ behavior is to error out. This option makes git-update-index
+ continue anyway.
+
--ignore-missing::
Ignores missing files during a --refresh
--cacheinfo <mode> <object> <path>::
Directly insert the specified info into the cache.
+--index-info::
+ Read index info from stdin.
+
+--chmod=(+|-)x::
+ Set the execute permissions on the updated files.
+
--info-only::
Do not create objects in the object database for all
<file> arguments that follow this flag; just insert
@@ -70,6 +87,9 @@ OPTIONS
read list of paths from the standard input. Paths are
separated by LF (i.e. one path per line) by default.
+--verbose::
+ Report what is being added and removed from index.
+
-z::
Only meaningful with `--stdin`; paths are separated with
NUL character instead of LF.
@@ -79,7 +99,7 @@ OPTIONS
<file>::
Files to act on.
- Note that files begining with '.' are discarded. This includes
+ Note that files beginning with '.' are discarded. This includes
`./file` and `dir/./file`. If you don't want this, then use
cleaner names.
The same applies to directories ending '/' and paths with '//'
@@ -121,6 +141,17 @@ To update and refresh only the files already checked out:
git-checkout-index -n -f -a && git-update-index --ignore-missing --refresh
+Configuration
+-------------
+
+The command honors `core.filemode` configuration variable. If
+your repository is on an filesystem whose executable bits are
+unreliable, this should be set to 'false'. This causes the
+command to ignore differences in file modes recorded in the
+index and the file mode on the filesystem if they differ only on
+executable bit. On such an unfortunate filesystem, you may
+need to use `git-update-index --chmod=`.
+
Author
------
Written by Linus Torvalds <torvalds@osdl.org>
diff --git a/Documentation/git-update-server-info.txt b/Documentation/git-update-server-info.txt
index 2efd540..3d0dea0 100644
--- a/Documentation/git-update-server-info.txt
+++ b/Documentation/git-update-server-info.txt
@@ -1,6 +1,5 @@
git-update-server-info(1)
=========================
-v0.1, July 2005
NAME
----
diff --git a/Documentation/git-upload-pack.txt b/Documentation/git-upload-pack.txt
index 98815b6..3d8f8ef 100644
--- a/Documentation/git-upload-pack.txt
+++ b/Documentation/git-upload-pack.txt
@@ -1,6 +1,5 @@
git-upload-pack(1)
==================
-v0.1, July 2005
NAME
----
diff --git a/Documentation/git-var.txt b/Documentation/git-var.txt
index c1c7172..c22d34f 100644
--- a/Documentation/git-var.txt
+++ b/Documentation/git-var.txt
@@ -1,6 +1,5 @@
git-var(1)
==========
-v0.1, July 2005
NAME
----
diff --git a/Documentation/git-verify-pack.txt b/Documentation/git-verify-pack.txt
index b100aa7..cd74ffd 100644
--- a/Documentation/git-verify-pack.txt
+++ b/Documentation/git-verify-pack.txt
@@ -1,10 +1,9 @@
git-verify-pack(1)
==================
-v0.1, June 2005
NAME
----
-git-verify-pack - Validate packed GIT archive files.
+git-verify-pack - Validate packed git archive files.
SYNOPSIS
@@ -14,7 +13,7 @@ SYNOPSIS
DESCRIPTION
-----------
-Reads given idx file for packed GIT archive created with
+Reads given idx file for packed git archive created with
git-pack-objects command and verifies idx file and the
corresponding pack file.
diff --git a/Documentation/git-whatchanged.txt b/Documentation/git-whatchanged.txt
index db2efea..e6f57d9 100644
--- a/Documentation/git-whatchanged.txt
+++ b/Documentation/git-whatchanged.txt
@@ -1,6 +1,5 @@
git-whatchanged(1)
==================
-v0.99.4, Aug 2005
NAME
----
@@ -9,7 +8,7 @@ git-whatchanged - Show logs with difference each commit introduces.
SYNOPSIS
--------
-'git whatchanged' <option>...
+'git-whatchanged' <option>...
DESCRIPTION
-----------
diff --git a/Documentation/git-write-tree.txt b/Documentation/git-write-tree.txt
index 71e16d1..51be44d 100644
--- a/Documentation/git-write-tree.txt
+++ b/Documentation/git-write-tree.txt
@@ -1,6 +1,5 @@
git-write-tree(1)
=================
-v0.1, May 2005
NAME
----
diff --git a/Documentation/git.txt b/Documentation/git.txt
index e141021..59d0dc8 100644
--- a/Documentation/git.txt
+++ b/Documentation/git.txt
@@ -1,6 +1,5 @@
git(7)
======
-v0.99.6, Sep 2005
NAME
----
@@ -69,6 +68,9 @@ gitlink:git-commit-tree[1]::
gitlink:git-hash-object[1]::
Computes the object ID from a file.
+gitlink:git-index-pack.html[1]::
+ Build pack index file for an existing packed archive.
+
gitlink:git-init-db[1]::
Creates an empty git object database
@@ -131,6 +133,9 @@ gitlink:git-ls-tree[1]::
gitlink:git-merge-base[1]::
Finds as good a common ancestor as possible for a merge
+gitlink:git-name-rev[1]::
+ Find symbolic names for given revs
+
gitlink:git-rev-list[1]::
Lists commit objects in reverse chronological order
@@ -147,7 +152,7 @@ gitlink:git-var[1]::
Displays a git logical variable
gitlink:git-verify-pack[1]::
- Validates packed GIT archive files
+ Validates packed git archive files
The interrogate commands may create files - and you can force them to
touch the working file set - but in general they don't
@@ -164,11 +169,11 @@ gitlink:git-fetch-pack[1]::
Updates from a remote repository.
gitlink:git-http-fetch[1]::
- Downloads a remote GIT repository via HTTP
+ Downloads a remote git repository via HTTP
Previously this command was known as git-http-pull.
gitlink:git-local-fetch[1]::
- Duplicates another GIT repository on a local system
+ Duplicates another git repository on a local system
Previously this command was known as git-local-pull.
gitlink:git-peek-remote[1]::
@@ -180,6 +185,9 @@ gitlink:git-receive-pack[1]::
gitlink:git-send-pack[1]::
Pushes to a remote repository, intelligently.
+gitlink:git-shell[1]::
+ Restricted shell for GIT-only SSH access.
+
gitlink:git-ssh-fetch[1]::
Pulls from a remote repository over ssh connection
Previously this command was known as git-ssh-pull.
@@ -204,6 +212,9 @@ gitlink:git-add[1]::
Add paths to the index file.
Previously this command was known as git-add-script.
+gitlink:git-am[1]::
+ Apply patches from a mailbox, but cooler.
+
gitlink:git-applymbox[1]::
Apply patches from a mailbox.
@@ -257,6 +268,9 @@ gitlink:git-ls-remote[1]::
gitlink:git-merge[1]::
Grand unified merge driver.
+gitlink:git-mv[1]::
+ Move or rename a file, a directory, or a symlink.
+
gitlink:git-octopus[1]::
Merge more than two commits.
Previously this command was known as git-octopus-script.
@@ -323,7 +337,7 @@ gitlink:git-archimport[1]::
Previously this command was known as git-archimport-script.
gitlink:git-convert-objects[1]::
- Converts old-style GIT repository
+ Converts old-style git repository
Previously this command was known as git-convert-cache.
gitlink:git-cvsimport[1]::
@@ -342,17 +356,29 @@ gitlink:git-relink[1]::
Hardlink common objects in local repositories.
Previously this command was known as git-relink-script.
+gitlink:git-svnimport[1]::
+ Import a SVN repository into git.
+
gitlink:git-sh-setup[1]::
Common git shell script setup code.
Previously this command was known as git-sh-setup-script.
+gitlink:git-symbolic-ref[1]::
+ Read and modify symbolic refs
+
gitlink:git-tag[1]::
An example script to create a tag object signed with GPG
Previously this command was known as git-tag-script.
+gitlink:git-update-ref[1]::
+ Update the object name stored in a ref safely.
+
Interrogators:
+gitlink:git-check-ref-format[1]::
+ Make sure ref name is well formed.
+
gitlink:git-cherry[1]::
Find commits not merged upstream.
@@ -361,7 +387,7 @@ gitlink:git-count-objects[1]::
Previously this command was known as git-count-objects-script.
gitlink:git-daemon[1]::
- A really simple server for GIT repositories.
+ A really simple server for git repositories.
gitlink:git-get-tar-commit-id[1]::
Extract commit ID from an archive created using git-tar-tree.
@@ -390,6 +416,9 @@ gitlink:git-send-email[1]::
Send patch e-mails out of "format-patch --mbox" output.
Previously this command was known as git-send-email-script.
+gitlink:git-symbolic-refs[1]::
+ Read and modify symbolic refs.
+
gitlink:git-stripspace[1]::
Filter out empty lines.
@@ -401,6 +430,37 @@ gitlink:gitk[1]::
gitk.
+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
+people. Here is an example:
+
+------------
+#
+# This is the config file, and
+# a '#' or ';' character indicates
+# a comment
+#
+
+; core variables
+[core]
+ ; Don't trust file modes
+ filemode = false
+
+; user identity
+[user]
+ name = "Junio C Hamano"
+ email = "junkio@twinsun.com"
+
+------------
+
+Various commands read from the configuration file and adjust
+their operation accordingly.
+
+
Identifier Terminology
----------------------
<object>::
diff --git a/Documentation/glossary.txt b/Documentation/glossary.txt
index a069b7b..eb7b471 100644
--- a/Documentation/glossary.txt
+++ b/Documentation/glossary.txt
@@ -1,5 +1,5 @@
object::
- The unit of storage in GIT. It is uniquely identified by
+ The unit of storage in git. It is uniquely identified by
the SHA1 of its contents. Consequently, an object can not
be changed.
diff --git a/Documentation/hooks.txt b/Documentation/hooks.txt
index 57f4720..7ee3571 100644
--- a/Documentation/hooks.txt
+++ b/Documentation/hooks.txt
@@ -1,6 +1,5 @@
-Hooks used by GIT
+Hooks used by git
=================
-v0.99.6, Sep 2005
Hooks are little scripts you can place in `$GIT_DIR/hooks`
directory to trigger action at certain points. When
diff --git a/Documentation/pull-fetch-param.txt b/Documentation/pull-fetch-param.txt
index 8dbddbf..e8db9d7 100644
--- a/Documentation/pull-fetch-param.txt
+++ b/Documentation/pull-fetch-param.txt
@@ -6,7 +6,7 @@
===============================================================
- Rsync URL: rsync://remote.machine/path/to/repo.git/
- HTTP(s) URL: http://remote.machine/path/to/repo.git/
-- GIT URL: git://remote.machine/path/to/repo.git/
+- git URL: git://remote.machine/path/to/repo.git/
or remote.machine:/path/to/repo.git/
- Local directory: /path/to/repo.git/
===============================================================
@@ -75,13 +75,3 @@ Some short-cut notations are also supported.
pushing. That is, do not store it locally if
fetching, and update the same name if pushing.
--a, \--append::
- Append ref names and object names of fetched refs to the
- existing contents of $GIT_DIR/FETCH_HEAD. Without this
- option old data in $GIT_DIR/FETCH_HEAD will be overwritten.
-
--f, \--force::
- Usually, the command refuses to update a local ref that is
- not an ancestor of the remote ref used to overwrite it.
- This flag disables the check. What this means is that the
- local repository can lose commits; use it with care.
diff --git a/Documentation/repository-layout.txt b/Documentation/repository-layout.txt
index d20fa80..1b5f228 100644
--- a/Documentation/repository-layout.txt
+++ b/Documentation/repository-layout.txt
@@ -1,6 +1,5 @@
-GIT repository layout
+git repository layout
=====================
-v0.99.5, Sep 2005
You may find these things in your git repository (`.git`
directory for a repository associated with your working tree, or
@@ -120,7 +119,7 @@ info/grafts::
info/exclude::
This file, by convention among Porcelains, stores the
exclude pattern list. `git status` looks at it, but
- otherwise it is not looked at by any of the core GIT
+ otherwise it is not looked at by any of the core git
commands.
remotes::
diff --git a/Documentation/tutorial.txt b/Documentation/tutorial.txt
index 36f42e0..b9f737e 100644
--- a/Documentation/tutorial.txt
+++ b/Documentation/tutorial.txt
@@ -1,6 +1,5 @@
A short git tutorial
====================
-v0.99.5, Aug 2005
Introduction
------------
@@ -52,7 +51,9 @@ your new project. You will now have a `.git` directory, and you can
inspect that with `ls`. For your new empty project, it should show you
three entries, among other things:
- - a symlink called `HEAD`, pointing to `refs/heads/master`
+ - a symlink called `HEAD`, pointing to `refs/heads/master` (if your
+ platform does not have native symlinks, it is a file containing the
+ line "ref: refs/heads/master")
+
Don't worry about the fact that the file that the `HEAD` link points to
doesn't even exist yet -- you haven't created the commit that will
@@ -161,7 +162,7 @@ you'll have to use the object name, not the filename of the object:
git-cat-file -t 557db03de997c86a4a028e1ebd3a1ceb225be238
where the `-t` tells `git-cat-file` to tell you what the "type" of the
-object is. Git will tell you that you have a "blob" object (ie just a
+object is. git will tell you that you have a "blob" object (ie just a
regular file), and you can see the contents with
git-cat-file "blob" 557db03
@@ -228,6 +229,7 @@ which will spit out
------------
diff --git a/hello b/hello
+index 557db03..263414f 100644
--- a/hello
+++ b/hello
@@ -1 +1,2 @@
@@ -290,13 +292,16 @@ also wants to get a commit message
on its standard input, and it will write out the resulting object name for the
commit to its standard output.
-And this is where we start using the `.git/HEAD` file. The `HEAD` file is
-supposed to contain the reference to the top-of-tree, and since that's
-exactly what `git-commit-tree` spits out, we can do this all with a simple
-shell pipeline:
+And this is where we create the `.git/refs/heads/master` file
+which is pointed at by `HEAD`. This file is supposed to contain
+the reference to the top-of-tree of the master branch, and since
+that's exactly what `git-commit-tree` spits out, we can do this
+all with a sequence of simple shell commands:
------------------------------------------------
-echo "Initial commit" | git-commit-tree $(git-write-tree) > .git/HEAD
+tree=$(git-write-tree)
+commit=$(echo 'Initial commit' | git-commit-tree $tree)
+git-update-ref HEAD $(commit)
------------------------------------------------
which will say:
@@ -378,7 +383,7 @@ come from the working tree or not.
This is not hard to understand, as soon as you realize that git simply
never knows (or cares) about files that it is not told about
-explicitly. Git will never go *looking* for files to compare, it
+explicitly. git will never go *looking* for files to compare, it
expects you to tell it what the files are, and that's what the index
is there for.
================
@@ -544,7 +549,7 @@ name for the state at that point.
Copying repositories
--------------------
-Git repositories are normally totally self-sufficient, and it's worth noting
+git repositories are normally totally self-sufficient, and it's worth noting
that unlike CVS, for example, there is no separate notion of
"repository" and "working tree". A git repository normally *is* the
working tree, with the local git information hidden in the `.git`
@@ -692,7 +697,9 @@ other point in the history than the current `HEAD`, you can do so by
just telling `git checkout` what the base of the checkout would be.
In other words, if you have an earlier tag or branch, you'd just do
- git checkout -b mybranch earlier-commit
+------------
+git checkout -b mybranch earlier-commit
+------------
and it would create the new branch `mybranch` at the earlier commit,
and check out the state at that time.
@@ -700,17 +707,29 @@ and check out the state at that time.
You can always just jump back to your original `master` branch by doing
- git checkout master
+------------
+git checkout master
+------------
(or any other branch-name, for that matter) and if you forget which
branch you happen to be on, a simple
- ls -l .git/HEAD
+------------
+ls -l .git/HEAD
+------------
-will tell you where it's pointing. To get the list of branches
-you have, you can say
+will tell you where it's pointing (Note that on platforms with bad or no
+symlink support, you have to execute
- git branch
+------------
+cat .git/HEAD
+------------
+
+instead). To get the list of branches you have, you can say
+
+------------
+git branch
+------------
which is nothing more than a simple script around `ls .git/refs/heads`.
There will be asterisk in front of the branch you are currently on.
@@ -718,7 +737,9 @@ There will be asterisk in front of the branch you are currently on.
Sometimes you may wish to create a new branch _without_ actually
checking it out and switching to it. If so, just use the command
- git branch <branchname> [startingpoint]
+------------
+git branch <branchname> [startingpoint]
+------------
which will simply _create_ the branch, but will not do anything further.
You can then later -- once you decide that you want to actually develop
@@ -844,7 +865,6 @@ $ git show-branch master mybranch
! [mybranch] Some work.
--
+ [master] Merged "mybranch" changes.
-+ [master~1] Some fun.
++ [mybranch] Some work.
------------------------------------------------
@@ -871,8 +891,10 @@ Now, let's pretend you are the one who did all the work in
to the `master` branch. Let's go back to `mybranch`, and run
resolve to get the "upstream changes" back to your branch.
- git checkout mybranch
- git resolve HEAD master "Merge upstream changes."
+------------
+git checkout mybranch
+git resolve HEAD master "Merge upstream changes."
+------------
This outputs something like this (the actual commit object names
would be different)
@@ -951,7 +973,7 @@ This transport is the same as SSH transport but uses `sh` to run
both ends on the local machine instead of running other end on
the remote machine via `ssh`.
-GIT Native::
+git Native::
`git://remote.machine/path/to/repo.git/`
+
This transport was designed for anonymous downloading. Like SSH
@@ -972,13 +994,13 @@ necessary objects. Because of this behaviour, they are
sometimes also called 'commit walkers'.
+
The 'commit walkers' are sometimes also called 'dumb
-transports', because they do not require any GIT aware smart
-server like GIT Native transport does. Any stock HTTP server
+transports', because they do not require any git aware smart
+server like git Native transport does. Any stock HTTP server
would suffice.
+
There are (confusingly enough) `git-ssh-fetch` and `git-ssh-upload`
programs, which are 'commit walkers'; they outlived their
-usefulness when GIT Native and SSH transports were introduced,
+usefulness when git Native and SSH transports were introduced,
and not used by `git pull` or `git push` scripts.
Once you fetch from the remote repository, you `resolve` that
@@ -1082,19 +1104,23 @@ done only once.
on the remote machine. The communication between the two over
the network internally uses an SSH connection.
-Your private repository's GIT directory is usually `.git`, but
+Your private repository's git directory is usually `.git`, but
your public repository is often named after the project name,
i.e. `<project>.git`. Let's create such a public repository for
project `my-git`. After logging into the remote machine, create
an empty directory:
- mkdir my-git.git
+------------
+mkdir my-git.git
+------------
-Then, make that directory into a GIT repository by running
+Then, make that directory into a git repository by running
`git init-db`, but this time, since its name is not the usual
`.git`, we do things slightly differently:
- GIT_DIR=my-git.git git-init-db
+------------
+GIT_DIR=my-git.git git-init-db
+------------
Make sure this directory is available for others you want your
changes to be pulled by via the transport of your choice. Also
@@ -1118,7 +1144,9 @@ Your "public repository" is now ready to accept your changes.
Come back to the machine you have your private repository. From
there, run this command:
- git push <public-host>:/path/to/my-git.git master
+------------
+git push <public-host>:/path/to/my-git.git master
+------------
This synchronizes your public repository to match the named
branch head (i.e. `master` in this case) and objects reachable
@@ -1128,7 +1156,9 @@ As a real example, this is how I update my public git
repository. Kernel.org mirror network takes care of the
propagation to other publicly visible machines:
- git push master.kernel.org:/pub/scm/git/git.git/
+------------
+git push master.kernel.org:/pub/scm/git/git.git/
+------------
Packing your repository
@@ -1141,7 +1171,9 @@ not so convenient to transport over the network. Since git objects are
immutable once they are created, there is a way to optimize the
storage by "packing them together". The command
- git repack
+------------
+git repack
+------------
will do it for you. If you followed the tutorial examples, you
would have accumulated about 17 objects in `.git/objects/??/`
@@ -1165,7 +1197,9 @@ Our programs are always perfect ;-).
Once you have packed objects, you do not need to leave the
unpacked objects that are contained in the pack file anymore.
- git prune-packed
+------------
+git prune-packed
+------------
would remove them for you.