git merge --no-commit vs git cherry-pick --no-commit

whenov picture whenov · Dec 30, 2013 · Viewed 33.9k times · Source

Is there any difference between git merge --no-commit and git cherry-pick --no-commit?

And is there any difference in history if I commit after these two commands?

Answer

gturri picture gturri · Dec 30, 2013

If you commit after git merge --no-commit, you'll actually get a merge commit. Whereas after a git cherry-pick --no-commit you'll get a commit with a single parent.

Hence, yes, there is a difference between those two commands.

In particular if you have something like

A -- B -- C
 \        L HEAD
  \
   -- D -- E

If you cherry-pick commit E, you won't get modifications of commit D. Whereas if you merge, you'll get both.