mirror of
https://github.com/git/git
synced 2024-08-25 10:45:59 +00:00
![Jeff King](/assets/img/avatar_default.png)
The point of these sections is generally to: 1. Give credit where it is due. 2. Give the reader an idea of where to ask questions or file bug reports. But they don't do a good job of either case. For (1), they are out of date and incomplete. A much more accurate answer can be gotten through shortlog or blame. For (2), the correct contact point is generally git@vger, and even if you wanted to cc the contact point, the out-of-date and incomplete fields mean you're likely sending to somebody useless. So let's drop the fields entirely from all manpages except git(1) itself. We already point people to the mailing list for bug reports there, and we can update the Authors section to give credit to the major contributors and point to shortlog and blame for more information. Each page has a "This is part of git" footer, so people can follow that to the main git manpage.
86 lines
2.3 KiB
Plaintext
86 lines
2.3 KiB
Plaintext
git-replace(1)
|
|
==============
|
|
|
|
NAME
|
|
----
|
|
git-replace - Create, list, delete refs to replace objects
|
|
|
|
SYNOPSIS
|
|
--------
|
|
[verse]
|
|
'git replace' [-f] <object> <replacement>
|
|
'git replace' -d <object>...
|
|
'git replace' -l [<pattern>]
|
|
|
|
DESCRIPTION
|
|
-----------
|
|
Adds a 'replace' reference in `.git/refs/replace/`
|
|
|
|
The name of the 'replace' reference is the SHA1 of the object that is
|
|
replaced. The content of the 'replace' reference is the SHA1 of the
|
|
replacement object.
|
|
|
|
Unless `-f` is given, the 'replace' reference must not yet exist in
|
|
`.git/refs/replace/` directory.
|
|
|
|
Replacement references will be used by default by all git commands
|
|
except those doing reachability traversal (prune, pack transfer and
|
|
fsck).
|
|
|
|
It is possible to disable use of replacement references for any
|
|
command using the `--no-replace-objects` option just after 'git'.
|
|
|
|
For example if commit 'foo' has been replaced by commit 'bar':
|
|
|
|
------------------------------------------------
|
|
$ git --no-replace-objects cat-file commit foo
|
|
------------------------------------------------
|
|
|
|
shows information about commit 'foo', while:
|
|
|
|
------------------------------------------------
|
|
$ git cat-file commit foo
|
|
------------------------------------------------
|
|
|
|
shows information about commit 'bar'.
|
|
|
|
The 'GIT_NO_REPLACE_OBJECTS' environment variable can be set to
|
|
achieve the same effect as the `--no-replace-objects` option.
|
|
|
|
OPTIONS
|
|
-------
|
|
-f::
|
|
If an existing replace ref for the same object exists, it will
|
|
be overwritten (instead of failing).
|
|
|
|
-d::
|
|
Delete existing replace refs for the given objects.
|
|
|
|
-l <pattern>::
|
|
List replace refs for objects that match the given pattern (or
|
|
all if no pattern is given).
|
|
Typing "git replace" without arguments, also lists all replace
|
|
refs.
|
|
|
|
BUGS
|
|
----
|
|
Comparing blobs or trees that have been replaced with those that
|
|
replace them will not work properly. And using `git reset --hard` to
|
|
go back to a replaced commit will move the branch to the replacement
|
|
commit instead of the replaced commit.
|
|
|
|
There may be other problems when using 'git rev-list' related to
|
|
pending objects. And of course things may break if an object of one
|
|
type is replaced by an object of another type (for example a blob
|
|
replaced by a commit).
|
|
|
|
SEE ALSO
|
|
--------
|
|
linkgit:git-tag[1]
|
|
linkgit:git-branch[1]
|
|
linkgit:git[1]
|
|
|
|
GIT
|
|
---
|
|
Part of the linkgit:git[1] suite
|