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.

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]

Author
------
Written by Christian Couder <chriscool@tuxfamily.org> and Junio C
Hamano <gitster@pobox.com>, based on 'git tag' by Kristian Hogsberg
<krh@redhat.com> and Carlos Rica <jasampler@gmail.com>.

Documentation
--------------
Documentation by Christian Couder <chriscool@tuxfamily.org> and the
git-list <git@vger.kernel.org>, based on 'git tag' documentation.

GIT
---
Part of the linkgit:git[1] suite
