Je veux juste obtenir une liste des fichiers modifiés entre deux révisions, ce qui est simple:
git diff -–name-only commit1 commit2 > /path/to/my/file
Mais, que dois-je écrire, si je veux copier tous les fichiers répertoriés dans un autre endroit? Et j'ai besoin d'une structure de répertoire complètement identique pour les fichiers copiés.
Par exemple, j'ai modifié et ajouté des fichiers:
/protected/texts/file1.txt
/protected/scripts/index.php
/public/pics/pic1.png
Je veux avoir dans /home/changes/
tous ces fichiers modifiés et ajoutés:
/home/changes/protected/texts/file1.txt
/home/changes/protected/scripts/index.php
/home/changes/public/pics/pic1.png
git format-patch
peut faire cela pour les plages de validation.
git diff commit1 commit2 > my.patch
et puis cd other/path; patch -p1 < my.patch
. Pourquoi faut-il le faire avec des copies complètes des fichiers? Si c'est parce que vous pensez que le correctif pourrait ne pas s'appliquer, et que par conséquent l'autre répertoire n'est pas vraiment dans l' commit1
état, vous devriez vraiment tout copier de l' commit2
état ...