Existe-t-il un moyen de répertorier toutes les validations qui ont modifié un fichier spécifique?
Existe-t-il un moyen de répertorier toutes les validations qui ont modifié un fichier spécifique?
le --follow
fonctionne pour un fichier particulier
git log --follow -- filename
Différence par rapport aux autres solutions données
Notez que d'autres solutions incluent git log path
(sans le --follow
). Cette approche est pratique si vous souhaitez effectuer le suivi par ex. changements dans un annuaire, mais trébuche lorsque les fichiers ont été renommés (utilisez donc --follow filename
).
git log path
devrait faire ce que vous voulez. Du git log
homme:
[--] <path>…
Show only commits that affect any of the specified paths. To prevent confusion with
options and branch names, paths may need to be prefixed with "-- " to separate them
from options or refnames.
Devrait être aussi simple que git log <somepath>
, vérifiez la page de manuel (git-log(1)
).
Personnellement, j'aime utiliser git log --stat <path>
donc je peux voir l'impact de chaque commit sur le fichier.
J'ai examiné cela de près et toutes ces réponses ne semblent pas vraiment me montrer tous les engagements dans toutes les branches.
Voici ce que j'ai trouvé en jouant avec les options d'affichage d'édition gitk. Cela me montre tous les commits pour un fichier indépendamment de la branche, locale, reflog, et à distance.
gitk --all --first-parent --remotes --reflog --author-date-order -- filename
Utilisez la commande ci-dessous pour obtenir des validations pour un fichier spécifique:
git log -p filename
Comme l'a souligné jackrabb1t, --follow
est plus robuste car il continue à répertorier l'histoire au-delà des renames / mouvements. Donc, si vous cherchez un fichier qui n'est pas actuellement dans le même chemin ou un fichier qui a été renommé dans plusieurs commits, --follow le suivra.
Cela peut être une meilleure option si vous voulez visualiser les changements de nom / chemin:
git log --follow --name-status -- <path>
Mais si vous voulez une liste plus compacte avec seulement ce qui compte:
git log --follow --name-status --format='%H' -- <path>
ou même
git log --follow --name-only --format='%H' -- <path>
L'inconvénient est que --follow
ne fonctionne que pour un seul fichier.
Si vous essayez de --suivre un fichier supprimé dans une utilisation de validation précédente
git log --follow -- filename