Dans l'un de nos projets, MysQL-Dumps est synchronisé avec git. Un fichier pour chaque table de la base de données. Après avoir extrait / fusionné, les dumps sont importés dans la base de données locale avec un hook. Le problème est maintenant, je dois trouver tous les dumps de table qui ont été modifiés avec le pull pour importer uniquement ceux-ci. Comment puis-je obtenir le hook post-fusion de savoir quels fichiers ont changé? Ce n'est peut-être pas seulement un commit avant d'être fusionné, en général, il y a plus de commits.
Comment puis-je obtenir une liste de fichiers modifiés?
Le moyen le plus simple que j'ai trouvé est
puisque
HEAD@{n}
signifie la n-ème valeur précédente deHEAD
la source
J'ai utilisé
git reflog
juste après avoirgit pull
obtenu quelque chose comme:la SHA juste après la lecture "Tirer: Avance rapide" est celle où vous vous trouviez avant la traction.
Après cela, j’ai utilisé la
git diff --name-only SHA2
réponse de l’autre réponse, qui vous donnera une liste des fichiers qui ont été modifiés à partir de cette validation en votre état actuel.Je ne suis pas tout à fait sûr de savoir comment cela fonctionne pour les tracés avec beaucoup de modifications et de fusions, mais pour une simple avance rapide, cela a très bien fonctionné.
la source
HEAD@{0}
(ou celui qui lit "pull: Fast-Forward") est le commit réel - après le pull - et non celui avant le pull!