How to git-cherry-pick only changes to certain files?

Question:

If I want to merge into a Git branch the changes made only to some of the files changed in a particular commit which includes changes to multiple files, how can this be achieved?

Suppose the Git commit called stuff has changes to files ABC, and D but I want to merge only stuff‘s changes to files A and B. It sounds like a job for git cherry-pick but cherry-pick only knows how to merge entire commits, not a subset of the files.

Answer:

I’d do it with cherry-pick -n (--no-commit) which lets you inspect (and modify) the result before committing:

If the vast majority of modifications are things you don’t want, instead of checking out individual paths (the middle step), you could reset everything back, then add in what you want:

Leave a Reply

Close Menu