doc/git-commit: add documentation for fixup=[amend|reword] options
Mentored-by: Christian Couder <chriscool@tuxfamily.org> Mentored-by: Phillip Wood <phillip.wood@dunelm.org.uk> Helped-by: Eric Sunshine <sunshine@sunshineco.com> Helped-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Charvi Mendiratta <charvi077@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
8bedae4599
commit
00ea64ed7a
@ -9,7 +9,7 @@ SYNOPSIS
|
|||||||
--------
|
--------
|
||||||
[verse]
|
[verse]
|
||||||
'git commit' [-a | --interactive | --patch] [-s] [-v] [-u<mode>] [--amend]
|
'git commit' [-a | --interactive | --patch] [-s] [-v] [-u<mode>] [--amend]
|
||||||
[--dry-run] [(-c | -C | --fixup | --squash) <commit>]
|
[--dry-run] [(-c | -C | --squash) <commit> | --fixup [(amend|reword):]<commit>)]
|
||||||
[-F <file> | -m <msg>] [--reset-author] [--allow-empty]
|
[-F <file> | -m <msg>] [--reset-author] [--allow-empty]
|
||||||
[--allow-empty-message] [--no-verify] [-e] [--author=<author>]
|
[--allow-empty-message] [--no-verify] [-e] [--author=<author>]
|
||||||
[--date=<date>] [--cleanup=<mode>] [--[no-]status]
|
[--date=<date>] [--cleanup=<mode>] [--[no-]status]
|
||||||
@ -86,11 +86,44 @@ OPTIONS
|
|||||||
Like '-C', but with `-c` the editor is invoked, so that
|
Like '-C', but with `-c` the editor is invoked, so that
|
||||||
the user can further edit the commit message.
|
the user can further edit the commit message.
|
||||||
|
|
||||||
--fixup=<commit>::
|
--fixup=[(amend|reword):]<commit>::
|
||||||
Construct a commit message for use with `rebase --autosquash`.
|
Create a new commit which "fixes up" `<commit>` when applied with
|
||||||
The commit message will be the subject line from the specified
|
`git rebase --autosquash`. Plain `--fixup=<commit>` creates a
|
||||||
commit with a prefix of "fixup! ". See linkgit:git-rebase[1]
|
"fixup!" commit which changes the content of `<commit>` but leaves
|
||||||
for details.
|
its log message untouched. `--fixup=amend:<commit>` is similar but
|
||||||
|
creates an "amend!" commit which also replaces the log message of
|
||||||
|
`<commit>` with the log message of the "amend!" commit.
|
||||||
|
`--fixup=reword:<commit>` creates an "amend!" commit which
|
||||||
|
replaces the log message of `<commit>` with its own log message
|
||||||
|
but makes no changes to the content of `<commit>`.
|
||||||
|
+
|
||||||
|
The commit created by plain `--fixup=<commit>` has a subject
|
||||||
|
composed of "fixup!" followed by the subject line from <commit>,
|
||||||
|
and is recognized specially by `git rebase --autosquash`. The `-m`
|
||||||
|
option may be used to supplement the log message of the created
|
||||||
|
commit, but the additional commentary will be thrown away once the
|
||||||
|
"fixup!" commit is squashed into `<commit>` by
|
||||||
|
`git rebase --autosquash`.
|
||||||
|
+
|
||||||
|
The commit created by `--fixup=amend:<commit>` is similar but its
|
||||||
|
subject is instead prefixed with "amend!". The log message of
|
||||||
|
<commit> is copied into the log message of the "amend!" commit and
|
||||||
|
opened in an editor so it can be refined. When `git rebase
|
||||||
|
--autosquash` squashes the "amend!" commit into `<commit>`, the
|
||||||
|
log message of `<commit>` is replaced by the refined log message
|
||||||
|
from the "amend!" commit. It is an error for the "amend!" commit's
|
||||||
|
log message to be empty unless `--allow-empty-message` is
|
||||||
|
specified.
|
||||||
|
+
|
||||||
|
`--fixup=reword:<commit>` is shorthand for `--fixup=amend:<commit>
|
||||||
|
--only`. It creates an "amend!" commit with only a log message
|
||||||
|
(ignoring any changes staged in the index). When squashed by `git
|
||||||
|
rebase --autosquash`, it replaces the log message of `<commit>`
|
||||||
|
without making any other changes.
|
||||||
|
+
|
||||||
|
Neither "fixup!" nor "amend!" commits change authorship of
|
||||||
|
`<commit>` when applied by `git rebase --autosquash`.
|
||||||
|
See linkgit:git-rebase[1] for details.
|
||||||
|
|
||||||
--squash=<commit>::
|
--squash=<commit>::
|
||||||
Construct a commit message for use with `rebase --autosquash`.
|
Construct a commit message for use with `rebase --autosquash`.
|
||||||
|
@ -593,16 +593,17 @@ See also INCOMPATIBLE OPTIONS below.
|
|||||||
|
|
||||||
--autosquash::
|
--autosquash::
|
||||||
--no-autosquash::
|
--no-autosquash::
|
||||||
When the commit log message begins with "squash! ..." (or
|
When the commit log message begins with "squash! ..." or "fixup! ..."
|
||||||
"fixup! ..."), and there is already a commit in the todo list that
|
or "amend! ...", and there is already a commit in the todo list that
|
||||||
matches the same `...`, automatically modify the todo list of rebase
|
matches the same `...`, automatically modify the todo list of
|
||||||
-i so that the commit marked for squashing comes right after the
|
`rebase -i`, so that the commit marked for squashing comes right after
|
||||||
commit to be modified, and change the action of the moved commit
|
the commit to be modified, and change the action of the moved commit
|
||||||
from `pick` to `squash` (or `fixup`). A commit matches the `...` if
|
from `pick` to `squash` or `fixup` or `fixup -C` respectively. A commit
|
||||||
the commit subject matches, or if the `...` refers to the commit's
|
matches the `...` if the commit subject matches, or if the `...` refers
|
||||||
hash. As a fall-back, partial matches of the commit subject work,
|
to the commit's hash. As a fall-back, partial matches of the commit
|
||||||
too. The recommended way to create fixup/squash commits is by using
|
subject work, too. The recommended way to create fixup/amend/squash
|
||||||
the `--fixup`/`--squash` options of linkgit:git-commit[1].
|
commits is by using the `--fixup`, `--fixup=amend:` or `--fixup=reword:`
|
||||||
|
and `--squash` options respectively of linkgit:git-commit[1].
|
||||||
+
|
+
|
||||||
If the `--autosquash` option is enabled by default using the
|
If the `--autosquash` option is enabled by default using the
|
||||||
configuration variable `rebase.autoSquash`, this option can be
|
configuration variable `rebase.autoSquash`, this option can be
|
||||||
|
Loading…
Reference in New Issue
Block a user