$ git checkout -b freds_fixbug42 $ git am --keep-cr -s --ignore-whitespace < their-patch-file.diff
- make sure you have a clean local checkout
- no need to check on multiple OSes (unless the ticket is specific to this)
- Please If you are committing i.e. you own the lib, please note the importance of -s above, it is important, as it indicates that you are the one accepting this patch.
- The --keep-cr helps when files being patched contain DOS CR/LF line endings. It seems to be harmless when it isn't needed, but leave it off or use --no-keep-cr if you suspect it is causing issues.
- The --ignore-whitespace helps when the only changes made to master since the patch was created are to whitespace in the context lines. Without this option, some patches will fail to apply. With that option, screeners can help avoid making contributors update patches merely because some whitespace changed in master.
Once you have a working copy, you should take note of the following kinds of things: