git replace [-f] <object> <replacement> git replace [-f] --edit <object> git replace [-f] --graft <commit> [<parent>...] git replace [-f] --convert-graft-file git replace -d <object>... git replace [--format=<format>] [-l [<pattern>]]
$ git --no-replace-objects cat-file commit foo
$ git cat-file commit foo
If an existing replace ref for the same object exists, it will be overwritten (instead of failing).-d, --delete
Delete existing replace refs for the given objects.--edit <object>
Edit an object’s content interactively. The existing content for <object> is pretty-printed into a temporary file, an editor is launched on the file, and the result is parsed to create a new object of the same type as <object>. A replacement ref is then created to replace <object> with the newly created object. See git-var(1) for details about how the editor will be chosen.--raw
When editing, provide the raw object contents rather than pretty-printed ones. Currently this only affects trees, which will be shown in their binary form. This is harder to work with, but can help when repairing a tree that is so corrupted it cannot be pretty-printed. Note that you may need to configure your editor to cleanly read and write binary data.--graft <commit> [<parent>...]
Create a graft commit. A new commit is created with the same content as <commit> except that its parents will be [<parent>...] instead of <commit>'s parents. A replacement ref is then created to replace <commit> with the newly created commit. Use --convert-graft-file to convert a $GIT_DIR/info/grafts file and use replace refs instead.--convert-graft-file
Creates graft commits for all entries in $GIT_DIR/info/grafts and deletes that file upon success. The purpose is to help users with transitioning off of the now-deprecated graft file.-l <pattern>, --list <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.--format=<format>
When listing, use the specified <format>, which can be one of short, medium and long. When omitted, the format defaults to short.
•short: <replaced sha1>
•medium: <replaced sha1> → <replacement sha1>
•long: <replaced sha1> (<replaced type>) → <replacement sha1> (<replacement type>)git-filter-branch(1), git-hash-object(1) and git-rebase(1), among other git commands, can be used to create replacement objects from existing objects. The --edit option can also be used with git replace to create a replacement object by editing an existing object.