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