Following what appears to be the predominant style, format
names of commands and commandlines both as `teletype text`.
While we're at it, add articles ("a" and "the") in some
places, italicize the name of the command in the manual page
synopsis line, and add a comma or two where it seems appropriate.
Signed-off-by: Jonathan Nieder <jrnieder@uchicago.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Jonathan Nieder17 years agocommitted byJunio C Hamano
@ -20,13 +20,13 @@ structure for the named tree, and writes it out to the standard
@@ -20,13 +20,13 @@ structure for the named tree, and writes it out to the standard
output. If <prefix> is specified it is
prepended to the filenames in the archive.
'git-archive' behaves differently when given a tree ID versus when
`git-archive` behaves differently when given a tree ID versus when
given a commit ID or tag ID. In the first case the current time is
used as modification time of each file in the archive. In the latter
case the commit time as recorded in the referenced commit object is
used instead. Additionally the commit ID is stored in a global
extended pax header if the tar format is used; it can be extracted
using 'git-get-tar-commit-id'. In ZIP files it is stored as a file
using `git-get-tar-commit-id`. In ZIP files it is stored as a file
@ -21,7 +21,7 @@ last modified the line. Optionally, start annotating from the given revision.
@@ -21,7 +21,7 @@ last modified the line. Optionally, start annotating from the given revision.
Also it can limit the range of lines annotated.
This report doesn't tell you anything about lines which have been deleted or
replaced; you need to use a tool such as linkgit:git-diff[1] or the "pickaxe"
replaced; you need to use a tool such as `git-diff` or the "pickaxe"
interface briefly mentioned in the following paragraph.
Apart from supporting file annotation, git also supports searching the
@ -37,7 +37,7 @@ working tree to it; use "git checkout <newbranch>" to switch to the
@@ -37,7 +37,7 @@ working tree to it; use "git checkout <newbranch>" to switch to the
new branch.
When a local branch is started off a remote branch, git sets up the
branch so that linkgit:git-pull[1] will appropriately merge from
branch so that `git-pull` will appropriately merge from
the remote branch. This behavior may be changed via the global
`branch.autosetupmerge` configuration flag. That setting can be
overridden by using the `--track` and `--no-track` options.
@ -54,7 +54,7 @@ has a reflog then the reflog will also be deleted.
@@ -54,7 +54,7 @@ has a reflog then the reflog will also be deleted.
Use -r together with -d to delete remote-tracking branches. Note, that it
only makes sense to delete remote-tracking branches if they no longer exist
in remote repository or if linkgit:git-fetch[1] was configured not to fetch
in remote repository or if `git-fetch` was configured not to fetch
them again. See also 'prune' subcommand of linkgit:git-remote[1] for way to
@ -21,9 +21,9 @@ Some workflows require that one or more branches of development on one
@@ -21,9 +21,9 @@ Some workflows require that one or more branches of development on one
machine be replicated on another machine, but the two machines cannot
be directly connected so the interactive git protocols (git, ssh,
rsync, http) cannot be used. This command provides support for
git-fetch and git-pull to operate by packaging objects and references
`git-fetch` and `git-pull` to operate by packaging objects and references
in an archive at the originating machine, then importing those into
another repository using linkgit:git-fetch[1] and linkgit:git-pull[1]
another repository using `git-fetch` and `git-pull`
after moving the archive by some means (i.e., by sneakernet). As no
direct connection between repositories exists, the user must specify a
basis for the bundle that is held by the destination repository: the
@ -68,10 +68,10 @@ it unless you understand what it does. If you clone your
@@ -68,10 +68,10 @@ it unless you understand what it does. If you clone your
repository using this option and then delete branches (or use any
other git command that makes any existing commit unreferenced) in the
source repository, some objects may become unreferenced (or dangling).
These objects may be removed by normal git operations (such as git-commit[1])
which automatically call git-gc[1]. If these objects are removed and
were referenced by the cloned repository, then the cloned repository
will become corrupt.
These objects may be removed by normal git operations (such as `git-commit`)
which automatically call `git gc --auto`. (See linkgit:git-gc[1].)
If these objects are removed and were referenced by the cloned repository,
then the cloned repository will become corrupt.
@ -88,7 +88,7 @@ will become corrupt.
@@ -88,7 +88,7 @@ will become corrupt.
--quiet::
-q::
Operate quietly. This flag is passed to "rsync" and
"git-fetch-pack" commands when given.
`git-fetch-pack` commands when given.
--no-checkout::
-n::
@ -114,7 +114,7 @@ will become corrupt.
@@ -114,7 +114,7 @@ will become corrupt.
--upload-pack <upload-pack>::
-u <upload-pack>::
When given, and the repository to clone from is handled
by 'git-fetch-pack', '--exec=<upload-pack>' is passed to
by `git-fetch-pack`, `--exec=<upload-pack>` is passed to
the command to specify non-default path for the command
@ -70,7 +70,7 @@ is taken from the configuration items user.name and user.email, or, if not
@@ -70,7 +70,7 @@ is taken from the configuration items user.name and user.email, or, if not
present, system user name and fully qualified hostname.
A commit comment is read from stdin. If a changelog
entry is not provided via "<" redirection, "git-commit-tree" will just wait
entry is not provided via "<" redirection, `git-commit-tree` will just wait
@ -20,11 +20,11 @@ commit along with a log message describing the changes you have made.
@@ -20,11 +20,11 @@ commit along with a log message describing the changes you have made.
The content to be added can be specified in several ways:
1. by using linkgit:git-add[1] to incrementally "add" changes to the
1. by using `git-add` to incrementally "add" changes to the
index before using the 'commit' command (Note: even modified
files must be "added");
2. by using linkgit:git-rm[1] to remove files from the working tree
2. by using `git-rm` to remove files from the working tree
and the index, again before using the 'commit' command;
3. by listing files as arguments to the 'commit' command, in which
@ -41,13 +41,13 @@ The content to be added can be specified in several ways:
@@ -41,13 +41,13 @@ The content to be added can be specified in several ways:
by one which files should be part of the commit, before finalizing the
operation. Currently, this is done by invoking `git-add --interactive`.
The linkgit:git-status[1] command can be used to obtain a
The `git-status` command can be used to obtain a
summary of what is included by any of the above for the next
commit by giving the same set of parameters you would give to
this command.
If you make a commit and then found a mistake immediately after
that, you can recover from it with linkgit:git-reset[1].
If you make a commit and then find a mistake immediately after
@ -37,7 +37,7 @@ you want to handle the lines that do *not* match the regex, just
@@ -37,7 +37,7 @@ you want to handle the lines that do *not* match the regex, just
prepend a single exclamation mark in front (see also <<EXAMPLES>>).
The type specifier can be either '--int' or '--bool', which will make
'git-config' ensure that the variable(s) are of the given type and
`git-config` ensure that the variable(s) are of the given type and
convert the value to the canonical form (simple decimal number for int,
a "true" or "false" string for bool). If no type specifier is passed,
no checks or transformations are performed on the value.
@ -122,10 +122,10 @@ See also <<FILES>>.
@@ -122,10 +122,10 @@ See also <<FILES>>.
List all variables set in config file.
--bool::
git-config will ensure that the output is "true" or "false"
`git-config` will ensure that the output is "true" or "false"
--int::
git-config will ensure that the output is a simple
`git-config` will ensure that the output is a simple
decimal number. An optional value suffix of 'k', 'm', or 'g'
in the config file will cause the value to be multiplied
@ -8,7 +8,8 @@ git-cvsexportcommit - Export a single commit to a CVS checkout
@@ -8,7 +8,8 @@ git-cvsexportcommit - Export a single commit to a CVS checkout
Use this option if you want to import into a different
branch.
+
@ -136,17 +136,17 @@ This option can be used several times to provide several detection regexes.
@@ -136,17 +136,17 @@ This option can be used several times to provide several detection regexes.
---------
+
git-cvsimport will make it appear as those authors had
`git-cvsimport` will make it appear as those authors had
their GIT_AUTHOR_NAME and GIT_AUTHOR_EMAIL set properly
all along.
+
For convenience, this data is saved to `$GIT_DIR/cvs-authors`
each time the '-A' option is provided and read from that same
file each time git-cvsimport is run.
file each time `git-cvsimport` is run.
+
It is not recommended to use this feature if you intend to
@ -77,7 +77,7 @@ over pserver for anonymous CVS access.
@@ -77,7 +77,7 @@ over pserver for anonymous CVS access.
CVS clients cannot tag, branch or perform GIT merges.
git-cvsserver maps GIT branches to CVS modules. This is very different
`git-cvsserver` maps GIT branches to CVS modules. This is very different
from what most CVS users would expect since in CVS modules usually represent
one or more directories.
@ -103,7 +103,7 @@ looks like
@@ -103,7 +103,7 @@ looks like
------
No special setup is needed for SSH access, other than having GIT tools
in the PATH. If you have clients that do not accept the CVS_SERVER
environment variable, you can rename git-cvsserver to cvs.
environment variable, you can rename `git-cvsserver` to `cvs`.
Note: Newer CVS versions (>= 1.12.11) also support specifying
CVS_SERVER directly in CVSROOT like
@ -113,9 +113,9 @@ cvs -d ":ext;CVS_SERVER=git-cvsserver:user@server/path/repo.git" co <HEAD_name>
@@ -113,9 +113,9 @@ cvs -d ":ext;CVS_SERVER=git-cvsserver:user@server/path/repo.git" co <HEAD_name>
------
This has the advantage that it will be saved in your 'CVS/Root' files and
you don't need to worry about always setting the correct environment
variable. SSH users restricted to git-shell don't need to override the default
with CVS_SERVER (and shouldn't) as git-shell understands `cvs` to mean
git-cvsserver and pretends that the other end runs the real cvs better.
variable. SSH users restricted to `git-shell` don't need to override the default
with CVS_SERVER (and shouldn't) as `git-shell` understands `cvs` to mean
`git-cvsserver` and pretends that the other end runs the real `cvs` better.
--
2. For each repo that you want accessible from CVS you need to edit config in
the repo and add the following section.
@ -128,7 +128,7 @@ git-cvsserver and pretends that the other end runs the real cvs better.
@@ -128,7 +128,7 @@ git-cvsserver and pretends that the other end runs the real cvs better.
logfile=/path/to/logfile
------
Note: you need to ensure each user that is going to invoke git-cvsserver has
Note: you need to ensure each user that is going to invoke `git-cvsserver` has
write access to the log file and to the database (see
<<dbbackend,Database Backend>>. If you want to offer write access over
SSH, the users of course also need write access to the git repository itself.
@ -150,7 +150,7 @@ allowing access over SSH.
@@ -150,7 +150,7 @@ allowing access over SSH.
automatically saving it in your 'CVS/Root' files, then you need to set them
explicitly in your environment. CVSROOT should be set as per normal, but the
directory should point at the appropriate git repo. As above, for SSH clients
_not_ restricted to git-shell, CVS_SERVER should be set to git-cvsserver.
_not_ restricted to `git-shell`, CVS_SERVER should be set to `git-cvsserver`.
+
--
------
@ -178,27 +178,27 @@ allowing access over SSH.
@@ -178,27 +178,27 @@ allowing access over SSH.
Database Backend
----------------
git-cvsserver uses one database per git head (i.e. CVS module) to
`git-cvsserver` uses one database per git head (i.e. CVS module) to
store information about the repository for faster access. The
database doesn't contain any persistent data and can be completely
regenerated from the git repository at any time. The database
needs to be updated (i.e. written to) after every commit.
If the commit is done directly by using git (as opposed to
using git-cvsserver) the update will need to happen on the
next repository access by git-cvsserver, independent of
If the commit is done directly by using `git` (as opposed to
using `git-cvsserver`) the update will need to happen on the
next repository access by `git-cvsserver`, independent of
access method and requested operation.
That means that even if you offer only read access (e.g. by using
the pserver method), git-cvsserver should have write access to
the pserver method), `git-cvsserver` should have write access to
the database to work reliably (otherwise you need to make sure
that the database is up-to-date any time git-cvsserver is executed).
that the database is up-to-date any time `git-cvsserver` is executed).
By default it uses SQLite databases in the git directory, named
`gitcvs.<module_name>.sqlite`. Note that the SQLite backend creates
temporary files in the same directory as the database file on
write so it might not be enough to grant the users using
git-cvsserver write access to the database file without granting
`git-cvsserver` write access to the database file without granting
them write access to the directory, too.
You can configure the database backend with the following
git-cvsserver uses the Perl DBI module. Please also read
`git-cvsserver` uses the Perl DBI module. Please also read
its documentation if changing these variables, especially
about `DBI->connect()`.
@ -259,7 +259,7 @@ In `dbdriver` and `dbuser` you can use the following variables:
@@ -259,7 +259,7 @@ In `dbdriver` and `dbuser` you can use the following variables:
%a::
access method (one of "ext" or "pserver")
%u::
Name of the user running git-cvsserver.
Name of the user running `git-cvsserver`.
If no name can be determined, the
numeric uid is used.
@ -280,13 +280,13 @@ To get a checkout with the Eclipse CVS client:
@@ -280,13 +280,13 @@ To get a checkout with the Eclipse CVS client:
Protocol notes: If you are using anonymous access via pserver, just select that.
Those using SSH access should choose the 'ext' protocol, and configure 'ext'
access on the Preferences->Team->CVS->ExtConnection pane. Set CVS_SERVER to
'git-cvsserver'. Note that password support is not good when using 'ext',
`git-cvsserver`. Note that password support is not good when using 'ext',
you will definitely want to have SSH keys setup.
Alternatively, you can just use the non-standard extssh protocol that Eclipse
offer. In that case CVS_SERVER is ignored, and you will have to replace
the cvs utility on the server with git-cvsserver or manipulate your `.bashrc`
so that calling 'cvs' effectively calls git-cvsserver.
the cvs utility on the server with `git-cvsserver` or manipulate your `.bashrc`
so that calling 'cvs' effectively calls `git-cvsserver`.
Clients known to work
---------------------
@ -328,14 +328,13 @@ is left blank. But if `gitcvs.allbinary` is set to "guess", then
@@ -328,14 +328,13 @@ is left blank. But if `gitcvs.allbinary` is set to "guess", then
the correct '-k' mode will be guessed based on the contents of
the file.
For best consistency with cvs, it is probably best to override the
For best consistency with `cvs`, it is probably best to override the
To set up `git-daemon` as an inetd service that handles any
repository under the whitelisted set of directories, /pub/foo
and /pub/bar, place an entry like the following into
@ -212,7 +212,7 @@ git-daemon as inetd server::
@@ -212,7 +212,7 @@ git-daemon as inetd server::
------------------------------------------------
git-daemon as inetd server for virtual hosts::
`git-daemon` as inetd server for virtual hosts::
To set up `git-daemon` as an inetd service that handles
repositories for different virtual hosts, `www.example.com`
and `www.example.org`, place an entry like the following into
@ -235,7 +235,7 @@ clients, a symlink from `/software` into the appropriate
@@ -235,7 +235,7 @@ clients, a symlink from `/software` into the appropriate
default repository could be made as well.
git-daemon as regular daemon for virtual hosts::
`git-daemon` as regular daemon for virtual hosts::
To set up `git-daemon` as a regular, non-inetd service that
handles repositories for multiple virtual hosts based on
@ -92,7 +92,7 @@ of commits which would be displayed by "git log v1.0.4..parent".
@@ -92,7 +92,7 @@ of commits which would be displayed by "git log v1.0.4..parent".
The hash suffix is "-g" + 7-char abbreviation for the tip commit
of parent (which was `2414721b194453f058079d897d13c4e377f92dc6`).
Doing a "git-describe" on a tag-name will just show the tag name:
Doing a `git-describe` on a tag-name will just show the tag name:
[torvalds@g5 git]$ git describe v1.0.4
v1.0.4
@ -115,13 +115,13 @@ closest tagname without any suffix:
@@ -115,13 +115,13 @@ closest tagname without any suffix:
SEARCH STRATEGY
---------------
For each committish supplied "git-describe" will first look for
For each committish supplied, `git-describe` will first look for
a tag which tags exactly that commit. Annotated tags will always
be preferred over lightweight tags, and tags with newer dates will
always be preferred over tags with older dates. If an exact match
is found, its name will be output and searching will stop.
If an exact match was not found "git-describe" will walk back
If an exact match was not found, `git-describe` will walk back
through the commit history to locate an ancestor commit which
has been tagged. The ancestor's tag will be output along with an
abbreviation of the input committish's SHA1.
@ -129,7 +129,7 @@ abbreviation of the input committish's SHA1.
@@ -129,7 +129,7 @@ abbreviation of the input committish's SHA1.
If multiple tags were found during the walk then the tag which
has the fewest commits different from the input committish will be
selected and output. Here fewest commits different is defined as
the number of commits which would be shown by "git log tag..input"
the number of commits which would be shown by `git log tag..input`
show me the differences between HEAD and the current index
contents (the ones I'd write with a "git-write-tree")
contents (the ones I'd write using `git-write-tree`)
For example, let's say that you have worked on your working directory, updated
some files in the index and are ready to commit. You want to see exactly
@ -60,9 +60,9 @@ object and compare it that way, and to do that, you just do
@@ -60,9 +60,9 @@ object and compare it that way, and to do that, you just do
git diff-index --cached HEAD
Example: let's say I had renamed `commit.c` to `git-commit.c`, and I had
done an "git-update-index" to make that effective in the index file.
"git diff-files" wouldn't show anything at all, since the index file
matches my working directory. But doing a "git-diff-index" does:
done an `update-index` to make that effective in the index file.
`git diff-files` wouldn't show anything at all, since the index file
matches my working directory. But doing a `git-diff-index` does:
torvalds@ppc970:~/git> git diff-index --cached HEAD
@ -70,11 +70,11 @@ matches my working directory. But doing a "git-diff-index" does:
@@ -70,11 +70,11 @@ matches my working directory. But doing a "git-diff-index" does:
You can see easily that the above is a rename.
In fact, "git diff-index --cached" *should* always be entirely equivalent to
actually doing a "git-write-tree" and comparing that. Except this one is much
In fact, `git diff-index --cached` *should* always be entirely equivalent to
actually doing a `git-write-tree` and comparing that. Except this one is much
nicer for the case where you just want to check where you are.
So doing a "git-diff-index --cached" is basically very useful when you are
So doing a `git-diff-index --cached` is basically very useful when you are
asking yourself "what have I already marked for being committed, and
The "non-cached" mode takes a different approach, and is potentially
the more useful of the two in that what it does can't be emulated with
a "git-write-tree" + "git-diff-tree". Thus that's the default mode.
a `git-write-tree` + `git-diff-tree`. Thus that's the default mode.
The non-cached version asks the question:
show me the differences between HEAD and the currently checked out
tree - index contents _and_ files that aren't up-to-date
which is obviously a very useful question too, since that tells you what
you *could* commit. Again, the output matches the "git-diff-tree -r"
you *could* commit. Again, the output matches the `git-diff-tree -r`
output to a tee, but with a twist.
The twist is that if some file doesn't match the index, we don't have
a backing store thing for it, and we use the magic "all-zero" sha1 to
show that. So let's say that you have edited `kernel/sched.c`, but
have not actually done a "git-update-index" on it yet - there is no
have not actually done a `git-update-index` on it yet - there is no
"object" associated with the new state, and you get:
torvalds@ppc970:~/v2.6/linux> git diff-index HEAD
@ -106,11 +106,11 @@ not up-to-date and may contain new stuff. The all-zero sha1 means that to
@@ -106,11 +106,11 @@ not up-to-date and may contain new stuff. The all-zero sha1 means that to
get the real diff, you need to look at the object in the working directory
directly rather than do an object-to-object diff.
NOTE: As with other commands of this type, "git-diff-index" does not
NOTE: As with other commands of this type, `git-diff-index` does not
actually look at the contents of the file at all. So maybe
`kernel/sched.c` hasn't actually changed, and it's just that you
touched it. In either case, it's a note that you need to
"git-update-index" it to make the index be in sync.
`git-update-index` it to make the index be in sync.
NOTE: You can have a mixture of files show up as "has been updated"
and "is still dirty in the working directory" together. You can always
@ -20,7 +20,7 @@ Compares the content and mode of the blobs found via two tree objects.
@@ -20,7 +20,7 @@ Compares the content and mode of the blobs found via two tree objects.
If there is only one <tree-ish> given, the commit is compared with its parents
(see --stdin below).
Note that "git-diff-tree" can use the tree encapsulated in a commit object.
Note that `git-diff-tree` can use the tree encapsulated in a commit object.
OPTIONS
-------
@ -58,25 +58,25 @@ behavior. This does not apply to the case where two <tree-ish>
@@ -58,25 +58,25 @@ behavior. This does not apply to the case where two <tree-ish>
separated with a single space are given.
-m::
By default, "git-diff-tree --stdin" does not show
By default, `git-diff-tree --stdin` does not show
differences for merge commits. With this flag, it shows
differences to that commit from all of its parents. See
also '-c'.
-s::
By default, "git-diff-tree --stdin" shows differences,
By default, `git-diff-tree --stdin` shows differences,
either in machine-readable form (without '-p') or in patch
form (with '-p'). This output can be suppressed. It is
only useful with '-v' flag.
-v::
This flag causes "git-diff-tree --stdin" to also show
This flag causes `git-diff-tree --stdin` to also show
the commit message before the differences.
include::pretty-options.txt[]
--no-commit-id::
git-diff-tree outputs a line with the commit ID when
`git-diff-tree` outputs a line with the commit ID when
applicable. This flag suppressed the commit ID output.
This program is usually not what the end user wants to run directly.
Most end users want to use one of the existing frontend programs,
which parses a specific type of foreign source and feeds the contents
stored there to git-fast-import.
stored there to `git-fast-import`.
fast-import reads a mixed command/data stream from standard input and
writes one or more packfiles directly into the current repository.
@ -24,7 +24,7 @@ updated branch and tag refs, fully updating the current repository
@@ -24,7 +24,7 @@ updated branch and tag refs, fully updating the current repository
with the newly imported data.
The fast-import backend itself can import into an empty repository (one that
has already been initialized by linkgit:git-init[1]) or incrementally
has already been initialized by `git-init`) or incrementally
update an existing populated repository. Whether or not incremental
imports are supported from a particular foreign source depends on
This information may be useful after importing projects
whose total object set exceeds the 4 GiB packfile limit,
as these commits can be used as edge points during calls
to linkgit:git-pack-objects[1].
to `git-pack-objects`.
--quiet::
Disable all non-fatal output, making fast-import silent when it
@ -220,7 +220,7 @@ variation in formatting will cause fast-import to reject the value.
@@ -220,7 +220,7 @@ variation in formatting will cause fast-import to reject the value.
+
An example value is ``Tue Feb 6 11:22:18 2007 -0500''. The Git
parser is accurate, but a little on the lenient side. It is the
same parser used by linkgit:git-am[1] when applying patches
same parser used by `git-am` when applying patches
received from email.
+
Some malformed strings may be accepted as valid dates. In some of
This particular format is supplied as its short to implement and
may be useful to a process that wants to create a new commit
right now, without needing to use a working directory or
linkgit:git-update-index[1].
`git-update-index`.
+
If separate `author` and `committer` commands are used in a `commit`
the timestamps may not match, as the system clock will be polled
@ -654,7 +654,7 @@ recommended, as the frontend does not (easily) have access to the
@@ -654,7 +654,7 @@ recommended, as the frontend does not (easily) have access to the
complete set of bytes which normally goes into such a signature.
If signing is required, create lightweight tags from within fast-import with
`reset`, then create the annotated versions of those tags offline
with the standard linkgit:git-tag[1] process.
with the standard `git-tag` process.
`reset`
~~~~~~~
@ -955,7 +955,7 @@ is not `refs/heads/TAG_FIXUP`).
@@ -955,7 +955,7 @@ is not `refs/heads/TAG_FIXUP`).
When committing fixups, consider using `merge` to connect the
commit(s) which are supplying file revisions to the fixup branch.
Doing so will allow tools such as linkgit:git-blame[1] to track
Doing so will allow tools such as `git-blame` to track
through the real commit history and properly annotate the source
files.
@ -984,7 +984,7 @@ Repacking Historical Data
@@ -984,7 +984,7 @@ Repacking Historical Data
~~~~~~~~~~~~~~~~~~~~~~~~~
If you are repacking very old imported data (e.g. older than the
last year), consider expending some extra CPU time and supplying
\--window=50 (or higher) when you run linkgit:git-repack[1].
\--window=50 (or higher) when you run `git-repack`.
This will take longer, but will also produce a smaller packfile.
You only need to expend the effort once, and everyone using your
If this filter is specified, it will be called instead of the
linkgit:git-commit-tree[1] command, with arguments of the form
`git-commit-tree` command, with arguments of the form
"<TREE_ID> [-p <PARENT_COMMIT_ID>]..." and the log message on
stdin. The commit id is expected on stdout.
+
@ -119,7 +119,7 @@ have all of them as parents.
@@ -119,7 +119,7 @@ have all of them as parents.
You can use the 'map' convenience function in this filter, and other
convenience functions, too. For example, calling 'skip_commit "$@"'
will leave out the current commit (but not its changes! If you want
that, use linkgit:git-rebase[1] instead).
that, use `git-rebase` instead).
--tag-name-filter <command>::
This is the filter for rewriting tag names. When passed,
@ -169,7 +169,7 @@ to other tags will be rewritten to point to the underlying commit.
@@ -169,7 +169,7 @@ to other tags will be rewritten to point to the underlying commit.
<rev-list-options>::
When options are given after the new branch name, they will
be passed to linkgit:git-rev-list[1]. Only commits in the resulting
be passed to `git-rev-list`. Only commits in the resulting
output will be filtered, although the filtered commits can still
@ -16,7 +16,7 @@ Computes the object ID value for an object with specified type
@@ -16,7 +16,7 @@ Computes the object ID value for an object with specified type
with the contents of the named file (which can be outside of the
work tree), and optionally writes the resulting object into the
object database. Reports its object ID to its standard output.
This is used by "git-cvsimport" to update the index
This is used by `git-cvsimport` to update the index
without modifying files in the work tree. When <type> is not
Before moving the index into its final destination
create an empty .keep file for the associated pack file.
This option is usually necessary with --stdin to prevent a
simultaneous linkgit:git-repack[1] process from deleting
simultaneous `git-repack` process from deleting
the newly constructed pack and index before refs can be
updated to use objects contained in the pack.
@ -86,7 +86,7 @@ Once the index has been created, the list of object names is sorted
@@ -86,7 +86,7 @@ Once the index has been created, the list of object names is sorted
and the SHA1 hash of that list is printed to stdout. If --stdin was
also used then this is prefixed by either "pack\t", or "keep\t" if a
new .keep file was successfully created. This is useful to remove a
.keep file used as a lock to prevent the race with linkgit:git-repack[1]
.keep file used as a lock to prevent the race with `git-repack`
'git-ls-files' can use a list of "exclude patterns" when
`git-ls-files` can use a list of "exclude patterns" when
traversing the directory tree and finding files to show when the
flags --others or --ignored are specified. linkgit:gitignore[5]
specifies the format of exclude patterns.
@ -176,7 +176,7 @@ These exclude patterns come from these places, in order:
@@ -176,7 +176,7 @@ These exclude patterns come from these places, in order:
in the same order they appear in the file.
3. command line flag --exclude-per-directory=<name> specifies
a name of the file in each directory 'git-ls-files'
a name of the file in each directory `git-ls-files`
examines, normally `.gitignore`. Files in deeper
directories take precedence. Patterns are ordered in the
Instead of printing both the SHA-1 and the name, print only
the name. If given with --tags the usual tag prefix of
"tags/" is also omitted from the name, matching the output
of linkgit:git-describe[1] more closely. This option
of `git-describe` more closely. This option
cannot be combined with --stdin.
--no-undefined::
@ -56,7 +56,7 @@ wrote you about that fantastic commit 33db5f4d9027a10e477ccf054b2c1ab94f74c85a.
@@ -56,7 +56,7 @@ wrote you about that fantastic commit 33db5f4d9027a10e477ccf054b2c1ab94f74c85a.
Of course, you look into the commit, but that only tells you what happened, but
@ -30,7 +30,7 @@ Placing both in the pack/ subdirectory of $GIT_OBJECT_DIRECTORY (or
@@ -30,7 +30,7 @@ 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.
'git-unpack-objects' command can read the packed archive and
The `git-unpack-objects` command can read the packed archive and
expand the objects contained in the pack into "one-file
one-object" format; this is typically done by the smart-pull
commands when a pack is created on-the-fly for efficient network
@ -182,8 +182,7 @@ The final command then merges the newly fetched `tmp` into master.
@@ -182,8 +182,7 @@ The final command then merges the newly fetched `tmp` into master.
If you tried a pull which resulted in a complex conflicts and
would want to start over, you can recover with
linkgit:git-reset[1].
would want to start over, you can recover with `git-reset`.
@ -85,7 +85,7 @@ nor in any Push line of the corresponding remotes file---see below).
@@ -85,7 +85,7 @@ nor in any Push line of the corresponding remotes file---see below).
line.
--receive-pack=<git-receive-pack>::
Path to the 'git-receive-pack' program on the remote
Path to the `git-receive-pack` program on the remote
end. Sometimes useful when pushing to a remote
repository over ssh, and you do not have the program in
If only 1 tree is specified, git-read-tree operates as if the user did not
If only 1 tree is specified, `git-read-tree` operates as if the user did not
specify `-m`, except that if the original index has an entry for a
given pathname, and the contents of the path matches with the tree
being read, the stat info from the index is used. (In other words, the
@ -143,7 +143,7 @@ is the head commit of the current repository, and $M is the head
@@ -143,7 +143,7 @@ is the head commit of the current repository, and $M is the head
of a foreign tree, which is simply ahead of $H (i.e. we are in a
fast forward situation).
When two trees are specified, the user is telling git-read-tree
When two trees are specified, the user is telling `git-read-tree`
the following:
1. The current index and work tree is derived from $H, but
@ -193,10 +193,10 @@ Here are the "carry forward" rules:
@@ -193,10 +193,10 @@ Here are the "carry forward" rules:
In all "keep index" cases, the index entry stays as in the
original index file. If the entry were not up to date,
git-read-tree keeps the copy in the work tree intact when
`git-read-tree` keeps the copy in the work tree intact when
operating under the -u flag.
When this form of git-read-tree returns successfully, you can
When this form of `git-read-tree` returns successfully, you can
see what "local changes" you made are carried forward by running
`git diff-index --cached $M`. Note that this does not
necessarily match `git diff-index --cached $H` would have
@ -261,7 +261,7 @@ start a 3-way merge with an index file that is already
@@ -261,7 +261,7 @@ start a 3-way merge with an index file that is already
populated. Here is an outline of how the algorithm works:
- if a file exists in identical format in all three trees, it will
automatically collapse to "merged" state by git-read-tree.
automatically collapse to "merged" state by `git-read-tree`.
- a file that has _any_ difference what-so-ever in the three trees
will stay as separate entries in the index. It's up to "porcelain
If <branch> is specified, git-rebase will perform an automatic
If <branch> is specified, `git-rebase` will perform an automatic
`git checkout <branch>` before doing anything else. Otherwise
it remains on the current branch.
@ -167,8 +167,8 @@ This is useful if F and G were flawed in some way, or should not be
@@ -167,8 +167,8 @@ This is useful if F and G were flawed in some way, or should not be
part of topicA. Note that the argument to --onto and the <upstream>
parameter can be any valid commit-ish.
In case of conflict, git-rebase will stop at the first problematic commit
and leave conflict markers in the tree. You can use git-diff to locate
In case of conflict, `git-rebase` will stop at the first problematic commit
and leave conflict markers in the tree. You can use `git-diff` to locate
the markers (<<<<<<) and make edits to resolve the conflict. For each
file you edit, you need to tell git that the conflict has been resolved,
typically this would be done with
@ -184,7 +184,7 @@ desired resolution, you can continue the rebasing process with
@@ -184,7 +184,7 @@ desired resolution, you can continue the rebasing process with
Invoked by 'git-send-pack' and updates the repository with the
Invoked by `git-send-pack` and updates the repository with the
information fed from the remote end.
This command is usually not invoked directly by the end user.
The UI for the protocol is on the 'git-send-pack' side, and the
The UI for the protocol is on the `git-send-pack` side, and the
program pair is meant to be used to push updates to remote
repository. For pull operations, see 'git-fetch-pack'.
repository. For pull operations, see linkgit:git-fetch-pack[1].
The command allows for creation and fast forwarding of sha1 refs
(heads/tags) on the remote end (strictly speaking, it is the
local end receive-pack runs, but to the user who is sitting at
local end `git-receive-pack` runs, but to the user who is sitting at
the send-pack end, it is updating the remote. Confused?)
There are other real-world examples of using update and
post-update hooks found in the Documentation/howto directory.
git-receive-pack honours the receive.denyNonFastForwards config
`git-receive-pack` honours the receive.denyNonFastForwards config
option, which tells it if updates to a ref should be denied if they
are not fast-forwards.
@ -125,7 +125,7 @@ non-zero exit code will generate an error message.
@@ -125,7 +125,7 @@ non-zero exit code will generate an error message.
Note that it is possible for refname to not have sha1-new when this
hook runs. This can easily occur if another user modifies the ref
after it was updated by receive-pack, but before the hook was able
after it was updated by `git-receive-pack`, but before the hook was able
to evaluate it. It is recommended that hooks rely on sha1-new
rather than the current value of refname.
@ -137,10 +137,10 @@ post-update will called with the list of refs that have been updated.
@@ -137,10 +137,10 @@ post-update will called with the list of refs that have been updated.
This can be used to implement any repository wide cleanup tasks.
The exit code from this hook invocation is ignored; the only thing
left for git-receive-pack to do at that point is to exit itself
left for `git-receive-pack` to do at that point is to exit itself
anyway.
This hook can be used, for example, to run "git update-server-info"
This hook can be used, for example, to run `git update-server-info`
if the repository is packed and is served via a dumb transport.
@ -30,22 +30,22 @@ enable this command.
@@ -30,22 +30,22 @@ enable this command.
COMMANDS
--------
Normally, git-rerere is run without arguments or user-intervention.
Normally, `git-rerere` is run without arguments or user-intervention.
However, it has several commands that allow it to interact with
its working state.
'clear'::
This resets the metadata used by rerere if a merge resolution is to be
is aborted. Calling linkgit:git-am[1] --skip or linkgit:git-rebase[1]
[--skip|--abort] will automatically invoke this command.
is aborted. Calling `git-am --skip` or `git-rebase [--skip|--abort]`
will automatically invoke this command.
'diff'::
This displays diffs for the current state of the resolution. It is
useful for tracking what has changed while the user is resolving
conflicts. Additional arguments are passed directly to the system
diff(1) command installed in PATH.
`diff` command installed in PATH.
'status'::
@ -146,7 +146,7 @@ blew away. `git-rerere` command helps you to resolve this final
@@ -146,7 +146,7 @@ blew away. `git-rerere` command helps you to resolve this final
conflicted merge using the information from your earlier hand
resolve.
Running `git-rerere` command immediately after a conflicted
Running the `git-rerere` command immediately after a conflicted
automerge records the conflicted working tree files, with the
usual conflict markers `<<<<<<<`, `=======`, and `>>>>>>>` in
them. Later, after you are done resolving the conflicts,
@ -83,11 +83,11 @@ between the two operands. The following two commands are equivalent:
@@ -83,11 +83,11 @@ between the two operands. The following two commands are equivalent:
Make git-show-ref act as a filter that reads refs from stdin of the
Make `git-show-ref` act as a filter that reads refs from stdin of the
form "^(?:<anything>\s)?<refname>(?:\^\{\})?$" and performs the
following actions on each:
(1) strip "^{}" at the end of line if any;
@ -137,7 +137,7 @@ When using the '--verify' flag, the command requires an exact path:
@@ -137,7 +137,7 @@ When using the '--verify' flag, the command requires an exact path:
will only match the exact branch called "master".
If nothing matches, linkgit:git-show-ref[1] will return an error code of 1,
If nothing matches, `git-show-ref` will return an error code of 1,
and in the case of verification, it will show an error message.
For scripting, you can ask it to be quiet with the "--quiet" flag, which
@ -16,16 +16,16 @@ Shows one or more objects (blobs, trees, tags and commits).
@@ -16,16 +16,16 @@ Shows one or more objects (blobs, trees, tags and commits).
For commits it shows the log message and textual diff. It also
presents the merge commit in a special format as produced by
'git-diff-tree --cc'.
`git-diff-tree --cc`.
For tags, it shows the tag message and the referenced objects.
For trees, it shows the names (equivalent to linkgit:git-ls-tree[1]
For trees, it shows the names (equivalent to `git-ls-tree`
with \--name-only).
For plain blobs, it shows the plain contents.
The command takes options applicable to the linkgit:git-diff-tree[1] command to
The command takes options applicable to the `git-diff-tree` command to
control how the changes the commit introduces are shown.
This manual page describes only the most frequently used options.
@ -20,10 +20,10 @@ working directory. The command saves your local modifications away
@@ -20,10 +20,10 @@ working directory. The command saves your local modifications away
and reverts the working directory to match the `HEAD` commit.
The modifications stashed away by this command can be listed with
`git-stash list`, inspected with `git-stash show`, and restored
(potentially on top of a different commit) with `git-stash apply`.
Calling git stash without any arguments is equivalent to `git stash
save`. A stash is by default listed as "WIP on 'branchname' ...", but
`git stash list`, inspected with `git stash show`, and restored
(potentially on top of a different commit) with `git stash apply`.
Calling `git stash` without any arguments is equivalent to `git stash save`.
A stash is by default listed as "WIP on 'branchname' ...", but
you can give a more descriptive message on the command line when
This fetches revisions from the SVN parent of the current HEAD
and rebases the current (uncommitted to SVN) work against it.
This works similarly to 'svn update' or 'git-pull' except that
it preserves linear history with 'git-rebase' instead of
'git-merge' for ease of dcommiting with git-svn.
This works similarly to `svn update` or `git-pull` except that
it preserves linear history with `git-rebase` instead of
`git-merge` for ease of dcommiting with `git-svn`.
This accepts all options that 'git-svn fetch' and 'git-rebase'
accepts. However '--fetch-all' only fetches from the current
This accepts all options that `git-svn fetch` and `git-rebase`
accept. However, '--fetch-all' only fetches from the current
[svn-remote], and not all [svn-remote] definitions.
Like 'git-rebase'; this requires that the working tree be clean
Like `git-rebase`; this requires that the working tree be clean
and have no uncommitted changes.
-l;;
--local;;
Do not fetch remotely; only run 'git-rebase' against the
Do not fetch remotely; only run `git-rebase` against the
last fetched commit from the upstream SVN.
'dcommit'::
@ -128,7 +128,7 @@ and have no uncommitted changes.
@@ -128,7 +128,7 @@ and have no uncommitted changes.
repository, and then rebase or reset (depending on whether or
not there is a diff between SVN and head). This will create
a revision in SVN for each commit in git.
It is recommended that you run git-svn fetch and rebase (not
It is recommended that you run `git-svn` fetch and rebase (not
pull or merge) your commits against the latest changes in the
SVN repository.
An optional command-line argument may be specified as an
@ -173,7 +173,7 @@ NOTE: SVN itself only stores times in UTC and nothing else. The regular svn
@@ -173,7 +173,7 @@ NOTE: SVN itself only stores times in UTC and nothing else. The regular svn
client converts the UTC time to the local time (or based on the TZ=
environment). This command has the same behaviour.
+
Any other arguments are passed directly to `git-log'
Any other arguments are passed directly to `git-log`
'blame'::
Show what revision and author last modified each line of a file. The
@ -181,10 +181,10 @@ Any other arguments are passed directly to `git-log'
@@ -181,10 +181,10 @@ Any other arguments are passed directly to `git-log'
`svn blame' by default. Like the SVN blame command,
local uncommitted changes in the working copy are ignored;
the version of the file in the HEAD revision is annotated. Unknown
arguments are passed directly to git-blame.
arguments are passed directly to `git-blame`.
+
--git-format;;
Produce output in the same format as `git-blame', but with
Produce output in the same format as `git-blame`, but with
SVN revision numbers instead of git commit hashes. In this mode,
changes that haven't been committed to SVN (including local
working-copy edits) are shown as revision 0.
@ -203,7 +203,7 @@ Any other arguments are passed directly to `git-log'
@@ -203,7 +203,7 @@ Any other arguments are passed directly to `git-log'
absolutely no attempts to do patching when committing to SVN, it
simply overwrites files with those specified in the tree or
commit. All merging is assumed to have taken place
independently of git-svn functions.
independently of `git-svn` functions.
'create-ignore'::
Recursively finds the svn:ignore property on directories and
@ -219,12 +219,12 @@ Any other arguments are passed directly to `git-log'
@@ -219,12 +219,12 @@ Any other arguments are passed directly to `git-log'
'commit-diff'::
Commits the diff of two tree-ish arguments from the
command-line. This command is intended for interoperability with
git-svnimport and does not rely on being inside an git-svn
init-ed repository. This command takes three arguments, (a) the
`git-svnimport` and does not rely on being inside an `git-svn
init`-ed repository. This command takes three arguments, (a) the
original tree to diff against, (b) the new tree result, (c) the
URL of the target Subversion repository. The final argument
(URL) may be omitted if you are working from a git-svn-aware
repository (that has been init-ed with git-svn).
(URL) may be omitted if you are working from a `git-svn`-aware
repository (that has been `init`-ed with `git-svn`).
Since the noMetadata, rewriteRoot, useSvnsyncProps and useSvmProps
options all affect the metadata generated and used by git-svn; they
options all affect the metadata generated and used by `git-svn`; they
*must* be set in the configuration file before any history is imported
and these settings should never be changed once they are set.
@ -498,12 +498,12 @@ Tracking and contributing to an entire Subversion-managed project
@@ -498,12 +498,12 @@ Tracking and contributing to an entire Subversion-managed project
# of dcommit/rebase/show-ignore should be the same as above.
@ -524,22 +524,22 @@ have each person clone that repository with 'git-clone':
@@ -524,22 +524,22 @@ have each person clone that repository with 'git-clone':
REBASE VS. PULL/MERGE
---------------------
Originally, git-svn recommended that the remotes/git-svn branch be
Originally, `git-svn` recommended that the 'remotes/git-svn' branch be
pulled or merged from. This is because the author favored
'git svn set-tree B' to commit a single head rather than the
'git svn set-tree A..B' notation to commit multiple commits.
`git svn set-tree B` to commit a single head rather than the
`git svn set-tree A..B` notation to commit multiple commits.
If you use 'git svn set-tree A..B' to commit several diffs and you do
If you use `git svn set-tree A..B` to commit several diffs and you do
not have the latest remotes/git-svn merged into my-branch, you should
use 'git svn rebase' to update your work branch instead of 'git pull' or
'git merge'. 'pull/merge' can cause non-linear history to be flattened
use `git svn rebase` to update your work branch instead of `git pull` or
`git merge`. `pull`/`merge' can cause non-linear history to be flattened
when committing into SVN, which can lead to merge commits reversing
previous commits in SVN.
DESIGN PHILOSOPHY
-----------------
Merge tracking in Subversion is lacking and doing branched development
with Subversion can be cumbersome as a result. While git-svn can track
with Subversion can be cumbersome as a result. While `git-svn` can track
copy history (including branches and tags) for repositories adopting a
standard layout, it cannot yet represent merge history that happened
inside git back upstream to SVN users. Therefore it is advised that
For the sake of simplicity and interoperating with a less-capable system
(SVN), it is recommended that all git-svn users clone, fetch and dcommit
directly from the SVN server, and avoid all git-clone/pull/merge/push
(SVN), it is recommended that all `git-svn` users clone, fetch and dcommit
directly from the SVN server, and avoid all `git-clone`/`pull`/`merge`/`push`
operations between git repositories and branches. The recommended
method of exchanging code between git branches and users is
git-format-patch and git-am, or just dcommiting to the SVN repository.
`git-format-patch` and `git-am`, or just 'dcommit'ing to the SVN repository.
Running 'git-merge' or 'git-pull' is NOT recommended on a branch you
plan to dcommit from. Subversion does not represent merges in any
Running `git-merge` or `git-pull` is NOT recommended on a branch you
plan to 'dcommit' from. Subversion does not represent merges in any
reasonable or useful fashion; so users using Subversion cannot see any
merges you've made. Furthermore, if you merge or pull from a git branch
that is a mirror of an SVN branch, dcommit may commit to the wrong
that is a mirror of an SVN branch, 'dcommit' may commit to the wrong
branch.
'git-clone' does not clone branches under the refs/remotes/ hierarchy or
any git-svn metadata, or config. So repositories created and managed with
using git-svn should use rsync(1) for cloning, if cloning is to be done
`git-clone` does not clone branches under the refs/remotes/ hierarchy or
any `git-svn` metadata, or config. So repositories created and managed with
using `git-svn` should use `rsync` for cloning, if cloning is to be done
at all.
Since 'dcommit' uses rebase internally, any git branches you git-push to
before dcommit on will require forcing an overwrite of the existing ref
Since 'dcommit' uses rebase internally, any git branches you `git-push` to
before 'dcommit' on will require forcing an overwrite of the existing ref
on the remote repository. This is generally considered bad practice,
see the git-push(1) documentation for details.
see the linkgit:git-push[1] documentation for details.
Do not use the --amend option of git-commit(1) on a change you've
Do not use the --amend option of linkgit:git-commit[1] on a change you've
already dcommitted. It is considered bad practice to --amend commits
you've already pushed to a remote repository for other users, and
dcommit with SVN is analogous to that.
@ -594,7 +594,7 @@ for git to detect them.
@@ -594,7 +594,7 @@ for git to detect them.
CONFIGURATION
-------------
git-svn stores [svn-remote] configuration information in the
`git-svn` stores [svn-remote] configuration information in the
repository .git/config file. It is similar the core git
[remote] sections except 'fetch' keys do not accept glob
arguments; but they are instead handled by the 'branches'
@ -615,8 +615,7 @@ Keep in mind that the '*' (asterisk) wildcard of the local ref
@@ -615,8 +615,7 @@ Keep in mind that the '*' (asterisk) wildcard of the local ref
however the remote wildcard may be anywhere as long as it's own
independent path component (surrounded by '/' or EOL). This
type of configuration is not automatically created by 'init' and
should be manually entered with a text-editor or using
linkgit:git-config[1]
should be manually entered with a text-editor or using `git-config`.
@ -49,7 +49,7 @@ cumbersome. On some platforms, `ln -sf` does not even work as
@@ -49,7 +49,7 @@ cumbersome. On some platforms, `ln -sf` does not even work as
advertised (horrors). Therefore symbolic links are now deprecated
and symbolic refs are used by default.
git-symbolic-ref will exit with status 0 if the contents of the
`git-symbolic-ref` will exit with status 0 if the contents of the
symbolic ref were printed correctly, with status 1 if the requested
name is not a symbolic ref, or 128 if another error occurs.
@ -19,12 +19,12 @@ Creates a tar archive containing the tree structure for the named tree.
@@ -19,12 +19,12 @@ Creates a tar archive containing the tree structure for the named tree.
When <base> is specified it is added as a leading path to the files in the
generated tar archive.
git-tar-tree behaves differently when given a tree ID versus when given
`git-tar-tree` behaves differently when given a tree ID versus when given
a commit ID or tag ID. In the first case the current time is used as
modification time of each file in the archive. In the latter case the
commit time as recorded in the referenced commit object is used instead.
Additionally the commit ID is stored in a global extended pax header.
It can be extracted using git-get-tar-commit-id.
It can be extracted using `git-get-tar-commit-id`.
@ -21,7 +21,7 @@ Objects that already exist in the repository will *not* be unpacked
@@ -21,7 +21,7 @@ Objects that already exist in the repository will *not* be unpacked
from the pack-file. Therefore, nothing will be unpacked if you use
this command on a pack-file that exists within the target repository.
Please see the `git-repack` documentation for options to generate
By default, when a file `path` exists in the index,
git-update-index refuses an attempt to add `path/file`.
`git-update-index` refuses an attempt to add `path/file`.
Similarly if a file `path/file` exists, a file `path`
cannot be added. With --replace flag, existing entries
that conflicts with the entry being added are
@ -145,7 +145,7 @@ up-to-date for mode/content changes. But what it *does* do is to
@@ -145,7 +145,7 @@ up-to-date for mode/content changes. But what it *does* do is to
can refresh the index for a file that hasn't been changed but where
the stat entry is out of date.
For example, you'd want to do this after doing a "git-read-tree", to link
For example, you'd want to do this after doing a `git-read-tree`, to link
up the stat index details with the proper files.
Using --cacheinfo or --info-only
@ -186,13 +186,13 @@ back on 3-way merge.
@@ -186,13 +186,13 @@ back on 3-way merge.
. mode SP type SP sha1 TAB path
+
The second format is to stuff git-ls-tree output
The second format is to stuff `git-ls-tree` output
into the index file.
. mode SP sha1 SP stage TAB path
+
This format is to put higher order stages into the
index file and matches git-ls-files --stage output.
index file and matches `git-ls-files --stage` output.
To place a higher stage entry to the index, the path should
first be removed by feeding a mode=0 entry for the path, and
@ -16,7 +16,7 @@ Invoked by 'git-archive --remote' and sends a generated archive to the
@@ -16,7 +16,7 @@ Invoked by 'git-archive --remote' and sends a generated archive to the
other end over the git protocol.
This command is usually not invoked directly by the end user. The UI
for the protocol is on the 'git-archive' side, and the program pair
for the protocol is on the `git-archive` side, and the program pair
is meant to be used to get an archive from a remote repository.
When the browser, specified by options or configuration variables, is
not among the supported ones, then the corresponding
'browser.<tool>.cmd' configuration variable will be looked up. If this
variable exists then "git-web--browse" will treat the specified tool
variable exists then `git-web--browse` will treat the specified tool
as a custom command and will use a shell eval to run the command with
the URLs passed as arguments.
@ -112,7 +112,7 @@ See linkgit:git-config[1] for more information about this.
@@ -112,7 +112,7 @@ See linkgit:git-config[1] for more information about this.
Author
------
Written by Christian Couder <chriscool@tuxfamily.org> and the git-list
<git@vger.kernel.org>, based on git-mergetool by Theodore Y. Ts'o.
<git@vger.kernel.org>, based on `git-mergetool` by Theodore Y. Ts'o.
@ -148,16 +148,16 @@ an irreversible conversion. The safety triggers to prevent such
@@ -148,16 +148,16 @@ an irreversible conversion. The safety triggers to prevent such
a conversion done to the files in the work tree, but there are a
few exceptions. Even though...
- "git-add" itself does not touch the files in the work tree, the
- `git-add` itself does not touch the files in the work tree, the
next checkout would, so the safety triggers;
- "git-apply" to update a text file with a patch does touch the files
- `git-apply` to update a text file with a patch does touch the files
in the work tree, but the operation is about text files and CRLF
conversion is about fixing the line ending inconsistencies, so the
safety does not trigger;
- "git-diff" itself does not touch the files in the work tree, it is
often run to inspect the changes you intend to next "git-add". To
- `git-diff` itself does not touch the files in the work tree, it is
often run to inspect the changes you intend to next `git-add`. To
@ -239,7 +239,7 @@ version of a `diff`, but that internal version really just tells you
@@ -239,7 +239,7 @@ version of a `diff`, but that internal version really just tells you
that it has noticed that "hello" has been modified, and that the old object
contents it had have been replaced with something else.
To make it readable, we can tell git-diff-files to output the
To make it readable, we can tell `git-diff-files` to output the
differences as a patch, using the `-p` flag:
------------
@ -284,7 +284,7 @@ object as a 'commit' object together with an explanation of what the
@@ -284,7 +284,7 @@ object as a 'commit' object together with an explanation of what the
tree was all about, along with information of how we came to that state.
Creating a tree object is trivial, and is done with `git-write-tree`.
There are no options or other input: git write-tree will take the
There are no options or other input: `git write-tree` will take the
current index state, and write an object that describes that whole
index. In other words, we're now tying together all the different
filenames with their contents (and their permissions), and we're
@ -729,7 +729,7 @@ where the `-u` flag means that you want the checkout to keep the index
@@ -729,7 +729,7 @@ where the `-u` flag means that you want the checkout to keep the index
up-to-date (so that you don't have to refresh it afterward), and the
`-a` flag means "check out all files" (if you have a stale copy or an
older version of a checked out tree you may also need to add the `-f`
flag first, to tell git-checkout-index to *force* overwriting of any old
flag first, to tell `git-checkout-index` to *force* overwriting of any old
which will very loudly warn you that you're now committing a merge
(which is correct, so never mind), and you can write a small merge
message about your adventures in git-merge-land.
message about your adventures in `git-merge`-land.
After you're done, start up `gitk \--all` to see graphically what the
history looks like. Notice that `mybranch` still exists, and you can
@ -963,18 +963,18 @@ commits from the master branch. The string inside brackets
@@ -963,18 +963,18 @@ commits from the master branch. The string inside brackets
before the commit log message is a short name you can use to
name the commit. In the above example, 'master' and 'mybranch'
are branch heads. 'master^' is the first parent of 'master'
branch head. Please see 'git-rev-parse' documentation if you
branch head. Please see linkgit:git-rev-parse[1] if you want to
see more complex cases.
[NOTE]
Without the '--more=1' option, 'git-show-branch' would not output the
Without the '--more=1' option, `git-show-branch` would not output the
'[master^]' commit, as '[mybranch]' commit is a common ancestor of
both 'master' and 'mybranch' tips. Please see 'git-show-branch'
documentation for details.
both 'master' and 'mybranch' tips. Please see linkgit:git-show-branch[1]
for details.
[NOTE]
If there were more commits on the 'master' branch after the merge, the
merge commit itself would not be shown by 'git-show-branch' by
merge commit itself would not be shown by `git-show-branch` by
default. You would need to provide '--sparse' option to make the
The diff commands git-diff-index, git-diff-files, and git-diff-tree
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
unconventional ways before showing `diff` 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.
@ -23,18 +23,18 @@ that are easier to understand than the conventional kind.
@@ -23,18 +23,18 @@ that are easier to understand than the conventional kind.
The chain of operation
----------------------
The git-diff-* family works by first comparing two sets of
The `git-diff-{asterisk}` family works by first comparing two sets of
files:
- git-diff-index compares contents of a "tree" object and the
- `git-diff-index` compares contents of a "tree" object and the
working directory (when '\--cached' flag is not used) or a
"tree" object and the index file (when '\--cached' flag is
used);
- git-diff-files compares contents of the index file and the
- `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;
In all of these cases, the commands themselves compare
corresponding paths in the two sets of files. The result of
@ -61,12 +61,12 @@ into another list. There are currently 6 such transformations:
@@ -61,12 +61,12 @@ into another list. There are currently 6 such transformations:
- diffcore-pickaxe
- diffcore-order
These are applied in sequence. The set of filepairs git-diff-\*
These are applied in sequence. The set of filepairs `git-diff-{asterisk}`
commands find are used as the input to diffcore-pathspec, and
the output from diffcore-pathspec is used as the input to the
next transformation. The final result is then passed to the
output routine and generates either diff-raw format (see Output
format sections of the manual for git-diff-\* commands) or
format sections of the manual for `git-diff-{asterisk}` commands) or
The second transformation in the chain is diffcore-break, and is
controlled by the -B option to the git-diff-* commands. This is
controlled by the -B option to the `git-diff-{asterisk}` commands. This is
used to detect a filepair that represents "complete rewrite" and
break such filepair into two filepairs that represent delete and
create. E.g. If the input contained this filepair:
@ -134,7 +134,7 @@ diffcore-rename: For Detection Renames and Copies
@@ -134,7 +134,7 @@ 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
(to detect copies as well) to the git-diff-* commands. If the
(to detect copies as well) to the `git-diff-{asterisk}` commands. If the
input contained these filepairs:
------------------------------------------------
@ -179,11 +179,11 @@ number after the "-M" or "-C" option (e.g. "-M8" to tell it to use
@@ -179,11 +179,11 @@ 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`
option, git-diff-\* commands feed unmodified filepairs to
option, `git-diff-{asterisk}` commands feed unmodified filepairs to
diffcore mechanism as well as modified ones. This lets the copy
detector consider unmodified files as copy source candidates at
the expense of making it slower. Without `\--find-copies-harder`,
git-diff-\* commands can detect copies only if the file that was
`git-diff-{asterisk}` commands can detect copies only if the file that was
copied happened to have been modified in the same changeset.
@ -234,7 +234,7 @@ diffcore-pickaxe: For Detecting Addition/Deletion of Specified String
@@ -234,7 +234,7 @@ 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
-S option and the `\--pickaxe-all` option to the git-diff-*
-S option and the `\--pickaxe-all` option to the `git-diff-{asterisk}`
commands.
When diffcore-pickaxe is in use, it checks if there are
@ -257,7 +257,7 @@ diffcore-order: For Sorting the Output Based on Filenames
@@ -257,7 +257,7 @@ 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.
`git-diff-{asterisk}` commands.
This takes a text file each of whose lines is a shell glob
pattern. Filepairs that match a glob pattern on an earlier line
@ -51,10 +51,10 @@ the user's editor of choice) generally go into a file specified by
@@ -51,10 +51,10 @@ the user's editor of choice) generally go into a file specified by
`core.excludesfile` in the user's `~/.gitconfig`.
The underlying git plumbing tools, such as
linkgit:git-ls-files[1] and linkgit:git-read-tree[1], read
`git-ls-files` and `git-read-tree`, read
`gitignore` patterns specified by command-line options, or from
files specified by command-line options. Higher-level git
tools, such as linkgit:git-status[1] and linkgit:git-add[1],