97 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			97 lines
		
	
	
		
			2.6 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]
 | |
| 
 | |
| 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
 |