Charvi Mendiratta <charvi077@xxxxxxxxx> writes: > Mentored-by: Christian Couder <chriscool@xxxxxxxxxxxxx> > Mentored-by: Phillip Wood <phillip.wood@xxxxxxxxxxxxx> > Signed-off-by: Charvi Mendiratta <charvi077@xxxxxxxxx> > --- > Documentation/git-commit.txt | 39 ++++++++++++++++++++++++++++++------ > Documentation/git-rebase.txt | 21 ++++++++++--------- > 2 files changed, 44 insertions(+), 16 deletions(-) > > diff --git a/Documentation/git-commit.txt b/Documentation/git-commit.txt > index 17150fa7ea..9a60876845 100644 > --- a/Documentation/git-commit.txt > +++ b/Documentation/git-commit.txt > @@ -9,7 +9,7 @@ SYNOPSIS > -------- > [verse] > '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] > [--allow-empty-message] [--no-verify] [-e] [--author=<author>] > [--date=<date>] [--cleanup=<mode>] [--[no-]status] > @@ -86,11 +86,38 @@ OPTIONS > Like '-C', but with `-c` the editor is invoked, so that > the user can further edit the commit message. > > ---fixup=<commit>:: > - Construct a commit message for use with `rebase --autosquash`. > - The commit message will be the subject line from the specified > - commit with a prefix of "fixup! ". See linkgit:git-rebase[1] > - for details. > +--fixup=[(amend|reword):]<commit>:: > + When used without options, lets's say `git commit --fixup=<commit>`, > + it creates a "fixup!" commit where the commit message will be > + the subject line from the specified commit with a prefix of > + "fixup! ". The resulting "fixup!" commit is further used with > + `git rebase --autosquash` to fixup the content of the specified > + commit. > + > + When used with option `amend`, let's say > + `git commit --fixup=amend:<commit>`, it creates a "amend!" commit > + to fixup both the content and the commit log message of the > + specified commit. The resulting "amend!" commit's commit message > + subject will be the subject line from the specified commit with a > + prefix of "amend! " and the message body will be commit log message > + of the specified commit. It also invokes an editor seeded with the > + "amend!" commit log message to allow to edit further. And it denies > + to create "amend!" commit if it's commit message body is empty unless > + used with `allow-empty-message` option. "amend!" commit when rebased > + with `--autosquash` will fixup the contents and replace the commit > + message of the specified commit with the "amend!" commit's message > + body. > + > + When used with alternative option `reword`, let's say > + `git commit --fixup=reword:<commit>`, it works similar to `amend` > + option, but here it creates an empty "amend!" commit, i.e it does > + not take any staged changes and only allows to fixup the commit > + message of the specified commit. It will reword the specified > + commit when it is rebased with `--autosquash`. > + > + `--fixup`, with or without option, can be used with additional > + commit message option `-m` but not with `-F`/`-c`/`-C`. See > + linkgit:git-rebase[1] for details. You must dedent the second and the subsequent paragraphs and replace each of these blank lines that mark inter-paragraph breaks with a line with a single plus '+' sign on it. See how "is mutually exclusive" explanation is appended to the description of "-m" as its second paragraph. Side note. It probably needs "exclusive -> incompatible". The description in git-rebase.txt you touched is another good example. Mimic the way its second paragraph "If the autosquash is enabled..." is formatted. Thanks. > --squash=<commit>:: > Construct a commit message for use with `rebase --autosquash`. > diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt > index 8bfa5a9272..ffea76e53b 100644 > --- a/Documentation/git-rebase.txt > +++ b/Documentation/git-rebase.txt > @@ -593,16 +593,17 @@ See also INCOMPATIBLE OPTIONS below. > > --autosquash:: > --no-autosquash:: > - When the commit log message begins with "squash! ..." (or > - "fixup! ..."), and there is already a commit in the todo list that > - matches the same `...`, automatically modify the todo list of rebase > - -i so that the commit marked for squashing comes right after the > - commit to be modified, and change the action of the moved commit > - from `pick` to `squash` (or `fixup`). A commit matches the `...` if > - the commit subject matches, or if the `...` refers to the commit's > - hash. As a fall-back, partial matches of the commit subject work, > - too. The recommended way to create fixup/squash commits is by using > - the `--fixup`/`--squash` options of linkgit:git-commit[1]. > + When the commit log message begins with "squash! ..." (or "fixup! ..." > + or "amend! ..."), and there is already a commit in the todo list that > + matches the same `...`, automatically modify the todo list of > + `rebase -i`, so that the commit marked for squashing comes right after > + the commit to be modified, and change the action of the moved commit > + from `pick` to `squash` (or `fixup` or `fixup -C`) respectively. A commit > + matches the `...` if the commit subject matches, or if the `...` refers > + to the commit's hash. As a fall-back, partial matches of the commit > + subject work, too. The recommended way to create fixup/squash/amend > + commits is by using the `--fixup=[amend|reword]`/`--squash` options of > + linkgit:git-commit[1]. > + > If the `--autosquash` option is enabled by default using the > configuration variable `rebase.autoSquash`, this option can be