Title: Theory / Important / CS / Softw / VCS / Git / Cherry-pick

Fla: cherry-pick <commit>...
Effect: apply <commit>... on top of HEAD. Do a manual merge for all commit difficult to apply
Page: https://git-scm.com/docs/git-apply
Prefix: git

Fla: --edit
Effect: Edit commit messages prior to comitting
Page: https://git-scm.com/docs/git-apply
Prefix: git cherry-pick <commit>
Flag abbreviation: -e

Fla: --cleanup=<mode>
Effect: same as commit --cleanup=<mode>
Page: https://git-scm.com/docs/git-apply
Prefix: git cherry-pick <commit>

Fla: -x
Effect: When recording the commit, append a line that says "(cherry picked from commit …​)" to the original commit message in order to indicate which commit this change was cherry-picked from.
Page: https://git-scm.com/docs/git-apply
Prefix: git cherry-pick <commit>
Assuming: not done from local branch, as the commit referred may not be known by other

Fla: --mainline <parent-number>
Effect: if cherry-picking a merge, state from which parent the diff should be taken into account
Page: https://git-scm.com/docs/git-apply
Prefix: git cherry-pick <commit>
Flag abbreviation: -m <parent-number>

Fla: --no-commit
Effect: Only apply to working tree and index, don't create commit
Page: https://git-scm.com/docs/git-apply
Prefix: git cherry-pick <commit>
Flag abbreviation: -n

Fla: --signoff
Effect: Add a Signed-off-by trailer at the end of the commit message.
Page: https://git-scm.com/docs/git-apply
Prefix: git cherry-pick <commit>
Flag abbreviation: -s

Fla: --ff
Effect: If the current HEAD is the same as the parent of the cherry-pick’ed commit, then a fast forward to this commit will be performed.
Page: https://git-scm.com/docs/git-apply
Prefix: git cherry-pick <commit>

Fla: -S[<keyid>]
--gpg-sign[=<keyid>]
Effect: GPG-sign commits. The keyid argument is optional and defaults to the committer identity;
Page: https://git-scm.com/docs/git-apply
Prefix: git cherry-pick <commit>

Fla: --no-gpg-sign
Effect: don't gpg sign
Page: https://git-scm.com/docs/git-apply
Prefix: git cherry-pick <commit>

Fla: --allow-empty
Effect: allow to create an empty commit if there is no change to apply
Page: https://git-scm.com/docs/git-apply
Prefix: git cherry-pick <commit>

Fla: --allow-empty-message
Effect: allow commit to have empty message
Page: https://git-scm.com/docs/git-apply
Prefix: git cherry-pick <commit>

Fla: --kep-redundant-commits
Effect: If a commit being cherry picked duplicates a commit already in the current history, it will become empty.
Page: https://git-scm.com/docs/git-apply
Prefix: git cherry-pick <commit>

Fla: --stategy=<strategy>
Effect: Same as git merge --stategy=<strategy>
Page: https://git-scm.com/docs/git-apply
Prefix: git cherry-pick <commit>

Fla: --strategy-option=<option>
Effect: Pass the merge strategy-specific option through to the merge strategy.
Page: https://git-scm.com/docs/git-cherry-pick
Prefix: git cherry-pick <commit>
Flag abbreviation: -X<option>

Fla: --rerere-autoupdate
Effect: Allow the rerere mechanism to update the index with the result of auto-conflict resolution if possible.
Page: https://git-scm.com/docs/git-cherry-pick
Prefix: git cherry-pick <commit>

Fla: --continue
Effect: Continue the operation in progress using the information in .git/sequencer
Page: https://git-scm.com/docs/git-cherry-pick
Prefix: git cherry-pick

Fla: --skip
Effect: Skip the current commit and continue with the rest of the sequence.
Page: https://git-scm.com/docs/git-cherry-pick
Prefix: git cherry-pick

Fla: --quit
Effect: Forget about the current operation in progress. Can be used to clear the sequencer state after a failed cherry-pick or revert.
Page: https://git-scm.com/docs/git-cherry-pick
Prefix: git cherry-pick

Fla: --abort
Effect: Cancel the operation and return to the pre-sequence state.
Page: https://git-scm.com/docs/git-cherry-pick
Prefix: git cherry-pick

Fla: --quit
Effect: Forget about the current operation in progress. Can be used to clear the sequencer state after a failed cherry-pick or revert.
Page: https://git-scm.com/docs/git-revert
Prefix: git revert

Name: Cherry-picking
Definition: Choose a subset of changes out of a series of changes (typically commits) and record them as a new series of changes on top of a different codebase.
Page: https://git-scm.com/docs/gitglossary
Context: git