The list of what happens when a change is hard to apply states without qualification that CHERRY_PICK_HEAD is set. Under --no-commit it is not: d7e5c0cbfb (Introduce CHERRY_PICK_HEAD, 2011年02月19日) skips the ref on purpose there, expecting the user to pick further commits and edit the result before committing. The option's own description says nothing about the ref or about authorship. "git commit" reads the author of a cherry-pick from CHERRY_PICK_HEAD, so a commit made after "cherry-pick --no-commit" records your own identity as the author. Picking a single commit this way still leaves its log message in MERGE_MSG, so the result reads like a faithful pick apart from the author. Assisted-by: LLM Signed-off-by: Aleksei Sviridkin <f@xxxxxx> --- Notes: The trap is sharpest in the use this option's own description recommends. Picking several commits in a row leaves one commit that carries the last picked commit's message over the combined effect of all of them, under the committer's authorship, with nothing on screen to say so. The added text scopes the "git commit -c" remedy to the single-commit case, since after several picks there is no one original author to restore. One more thing worth knowing when following that advice: if the picks were made with -x, the "(cherry picked from commit ...)" line lives in MERGE_MSG, and "git commit -c <commit>" replaces the message with the original commit's and drops the annotation. I left git-revert.adoc alone on purpose. "revert --no-commit" does write REVERT_HEAD (t3507), so the two commands are asymmetric here, but a revert's authorship belongs to the reverter either way, so there is no equivalent consequence to document there. Documentation/revisions.adoc describes CHERRY_PICK_HEAD without the --no-commit qualification as well; I can send that as a follow-up if it is wanted. Documentation/git-cherry-pick.adoc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Documentation/git-cherry-pick.adoc b/Documentation/git-cherry-pick.adoc index 42b41923d5..d352e7e956 100644 --- a/Documentation/git-cherry-pick.adoc +++ b/Documentation/git-cherry-pick.adoc @@ -25,7 +25,8 @@ happens: 1. The current branch and `HEAD` pointer stay at the last commit successfully made. 2. The `CHERRY_PICK_HEAD` ref is set to point at the commit that - introduced the change that is difficult to apply. + introduced the change that is difficult to apply, unless the + `--no-commit` option was given. 3. Paths in which the change applied cleanly are updated both in the index file and in your working tree. 4. For conflicting paths, the index file records up to three @@ -101,6 +102,11 @@ OPTIONS + This is useful when cherry-picking more than one commits' effect to your index in a row. ++ +Because `CHERRY_PICK_HEAD` is not recorded, the commit you make +afterwards records you as its author. When a single commit is picked +this way, `git commit -c <commit>` keeps the original authorship and +log message. -s:: --signoff:: -- 2.55.0