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 `refs/replace/` namespace.

The name of the 'replace' reference is the SHA-1 of the object that is
replaced. The content of the 'replace' reference is the SHA-1 of the
replacement object.

Unless `-f` is given, the 'replace' reference must not yet exist.

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
