Sometimes I’m working with several branches at once. Say I have branches called master, release-1.1, and experimental. I create a new file or make a change in experimental and I want that one single change to apply to the other branches.
Can I do this in git? If I simply merge the commit into another branch, git automatically “fast-forwards” and includes any commits in between. But there must be some way to handle this use case.
What you want to do is called cherry picking. You can cherry pick a single commit using the following command:
This will incorporate the change from that commit only into your current branch. Note, however, that this creates a new commit; this new commit has the exact same changes as the cherry-picked commit (and even the same commit date and author), but it is technically a new commit, so you’ll see it as a new commit in, e.g.,
gitk. You’ll also have to perform the cherry pick for each branch in which you want to see the change.