The answer, as given, is to use format-patch but since the question was how to cherry-pick from another folder, here is a piece of code to do just that:
$ git --git-dir=../<some_other_repo>/.git \
format-patch -k -1 --stdout <commit SHA> | \
git am -3 -k
(explanation from @cong ma)
The
git format-patch
command creates a patch fromsome_other_repo
's commit specified by its SHA (-1
for one single commit alone). This patch is piped togit am
, which applies the patch locally (-3
means trying the three-way merge if the patch fails to apply cleanly). Hope that explains.