git merge –no-commit vs git cherry-pick –no-commit
And is there any difference in history if I commit after these two commands?
- Git merge - trivial merge?
- Git rebase (Merge Squash) my feature branch onto another branch
- Merge-only Branch on BitBucket/GitLab/GitHub?
- Git pull - Please move or remove them before you can merge
- How to commit only changes between two arbitrary commits to a branch?
- Git avoiding “merge branch master”
2 Solutions collect form web for “git merge –no-commit vs git cherry-pick –no-commit”
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
E, you won’t get modifications of commit
D. Whereas if you
merge, you’ll get both.
While git-merge is used to join two or more development histories together, git-cherry-pick is used to apply changes introduced by some existing commits.
So then, once you commit after performing a git-merge, Git will add what’s called a merge commit. In the other side, when cherry-pick(ing) commits, git will apply the changes introduced by these commits on the top of your working tree (There’s no fusion between two or many branches). Put another way, Commits are cloned and put on top of your branch.
Take a look at Git Cherry-pick vs Merge Workflow to undestand the differences based on a repo maintainer real needs.