On Fri, 26 Feb 2021 at 02:18, Junio C Hamano <gitster@xxxxxxxxx> wrote: > > Charvi Mendiratta <charvi077@xxxxxxxxx> writes: > > > +--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 > > Be careful to use word 'option' that refers to something other than > what a casual reader would think of an `--option` in the description > of the `--fixup` option. > > Without `amend:` or `reword:`, create a `fixup!` commit where... > > would be sufficient, no? > Okay, I agree this is more clear. > > + 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 > > The `--fixup=amend:<commit>` form creates an "amend!" commit to... > > > +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 > > While that SP inside the double-quote may be technically more > correct (and it was inherited from the original), I think with 'a > prefix of "amend!"' is still understandable and a lot easier to > read, especially because you'd mention "amend!" a few more times in > the same paragraph below. > > The same comment applies to "fixup! " above. > Okay, I will fix it. > > +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 > > "amend!" commit log message -> log message of the "amend!" commit > > denies -> refuses > > > +if it's commit message body is empty unless used with `allow-empty-message` > > +option. "amend!" commit when rebased with `--autosquash` will fixup the > > with the `--allow-empty-message` option. > > > +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 > > The `--fixup=reword:<commit>` form creates an `amend!` > commit similar to `--fixup=amend:<commit>` creates, but it > records the same tree as `HEAD`, i.e. it does not ... > Thanks for pointing out these changes. I agree these are more clear and will fix them all. > > +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`. > > ++ > > +Unlike `--fixup` without options, `--fixup=[amend/reword]:` is incompatible with > > +`-m` commit message option. > > The `--fixup=amend:` and `--fixup=reword:` forms cannot be > used with other options to add to the commit log message, > e.g. `-m`. > > Again, why is `-m` so special? Shouldn't -F/-c/-C also be > incompatible? > Yes, they are also incompatible. I thought to highlight -m because `--fixup` allows the `-m` but I agree to reword it in above way with slight change : s/e.g. `-m`/i.e it is incompatible with `-m`/`-F`/`-c`/`-C` options.