Git - how to selectively apply part of a patch
git
Solution
- Normally apply patch to working tree
- Use `git add -i` to interactively select files or parts of files to stage.
- to add whole file use `2 update`
- to review changes on selected files use `5 patch`, in this mode for every change git will ask you if you want to stage it or not
- Commit staged changes, things you don't want will stay in working tree.
- If you wish to clean working tree of unwanted changes use `git reset` and `git clean`
Problem
On a project I am looking after, one user has helpfully provided a large bunch of changes as a single patch. 80%+ is very good and should be included in the project. However there are a few changes he is proposing where I do not agree at all (He has misunderstood how one feature works). How can I with git be selective on his proposed changes. I have read about git checkout -p but don't understand how to use it, if this is the best answer.