Voglio solo ottenere un elenco di file modificati tra due revisioni, il che è semplice:
git diff -–name-only commit1 commit2 > /path/to/my/file
Ma cosa devo scrivere se voglio copiare tutti i file elencati in un altro posto? E ho bisogno di una struttura di directory completamente identica per i file copiati.
Ad esempio, ho modificato e aggiunto file:
/protected/texts/file1.txt
/protected/scripts/index.php
/public/pics/pic1.png
Voglio avere in /home/changes/
tutti quei file modificati e aggiunti:
/home/changes/protected/texts/file1.txt
/home/changes/protected/scripts/index.php
/home/changes/public/pics/pic1.png
git format-patch
può farlo per gli intervalli di commit.
git diff commit1 commit2 > my.patch
e poi cd other/path; patch -p1 < my.patch
. Perché deve essere fatto con copie complete dei file? Se è perché pensi che la patch potrebbe non essere applicabile, e quindi l'altra directory non è davvero nello commit1
stato, dovresti davvero copiare tutto dallo commit2
stato ...