Я не могу придумать какой-либо настоящий автоматизированный способ сделать это, но у меня это работает в Unix-системе.
Для начала вам нужно иметь идентификатор первого коммита в вашем проекте, давайтепритвориться, что это 123abcd
(кто-нибудь знает об автоматическом способе получить это?).
Получив идентификатор первого коммита, вы можете просто зацикливаться на файлах, которые изменились с момента первого коммита, и запуститьРазличия в каждом из них:
for file in `git diff --name-only 123abcd`; do
git diff 123abcd ${file} > `basename ${file}.patch`
done
Что все это значит:
git diff --name-only 123abcd
Предоставит вам список любых файлов, которые изменились с момента редакции 123abcd
git diff 123abcd ${file} > `basename ${file}.patch`
Создает фактический diff и сохраняет его в имя файла без указания пути к нему.
Когда вы закончите, ваш текущий рабочий каталог должен содержать все ваши файлы .patch.