Question Liste toutes les validations pour un fichier spécifique


Existe-t-il un moyen de répertorier toutes les validations qui ont modifié un fichier spécifique?


554
2017-09-13 14:37


origine


Réponses:


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).


766
2018-01-10 18:26



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.

116
2017-09-13 14:48



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.


31
2017-09-13 14:50



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

30
2018-01-07 22:50



Utilisez la commande ci-dessous pour obtenir des validations pour un fichier spécifique:

git log -p filename

30
2018-04-02 10:41



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.


11
2017-12-19 02:12



Si vous essayez de --suivre un fichier supprimé dans une utilisation de validation précédente

git log --follow -- filename

8
2017-12-07 15:14