Obtener collections de diffs

Tengo un proyecto en github.com. Todo el verano hice commits. Ahora necesito get todos los pathes.

Sé que puedo:

git log -p > project.path 

Pero esta variante escribe todas las pathes en un file. ¿Cómo puedo hacer?

Tengo 3 files en el repository de Github:

  • test.c

  • test1.c

  • test2.c

¿Cómo puedo get 3 files con todos los pathes?

  • test.diff

  • test1.diff

  • test2.diff

Gracias

Puede usar git format-patch para crear una secuencia de parches a partir de sus commits (un parche por commit).

No puedo pensar en ninguna forma real automatizada de hacerlo, pero esto funcionó para mí en un sistema Unix.

Para comenzar, necesita tener el ID del primer commit en su proyecto, 123abcd que es 123abcd (¿alguien sabe de una manera automática de get esto?).

Una vez que tenga el ID de la primera confirmación, puede recorrer los files que han cambiado desde la primera confirmación y ejecutar una diferencia en cada uno:

 for file in `git diff --name-only 123abcd`; do git diff 123abcd ${file} > `basename ${file}.patch` done 

Lo que todo significa:

 git diff --name-only 123abcd 

Le dará una list de los files que han cambiado desde la revisión 123abcd

 git diff 123abcd ${file} > `basename ${file}.patch` 

Genera el diff real y lo guarda en el nombre del file sin la ruta hacia él.

Cuando hayas terminado, tu directory de trabajo actual debería contener todos tus files .patch.