Search code examples
gitgit-mergegit-cherry-pick

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


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?


Solution

  • 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.