Lister tous les commits (dans toutes les branches) pour un fichier donné

94

Cette question est étroitement liée à la liste de tous les commits pour un fichier spécifique, mais elle est différente. Je veux savoir quels commits, dans toutes les branches , ont modifié un fichier donné.

Pour le rendre plus complexe, le fichier donné peut ou non être dans l'arborescence de travail.

Saurabh Nanda
la source

Réponses:

54

Vous pouvez utiliser gitk

gitk --all <path to file> (you need to install gitk)

par exemple

gitk --all -- /home/kit.ho/project/abc.txt

Kit Ho
la source
1
Je ne sais pas pourquoi ma réponse a été rejetée, mais la vôtre ne considère pas que la question demande spécifiquement un journal dans toutes les succursales. Vous donnez simplement une réponse à laquelle le PO est déjà lié.
manojlds
2
Je n'étais pas un downvoter, mais cela nécessite un --allou quelque chose de similaire pour parcourir plus d'histoire que la branche actuelle.
wjl
Pourquoi les votes négatifs? Cela fonctionne parfaitement bien. Les deux réponses sont correctes. L'un fonctionne pour la console texte, l'autre pour l'interface graphique de gitk. Puis-je marquer les deux comme corrects?
Saurabh Nanda le
@Saurabh Nanda: Cochez celle qui vous semble utile.
Kit Ho le
@saurabh - Cette réponse a été modifiée. Kit Ho - Mentionnez que vous êtes en train de modifier. Et donne l'impression que les deux réponses étaient correctes à l'origine.
manojlds
116

Essaye ça:

git log --all -- path
manojlds
la source
8
Nb. vous pourriez avoir besoin d'une --full-historyoption, en fonction de ce que vous voulez voir exactement: voir la section sur la simplification de l'historique dans les pages de manuel git-log ou gitrevisions.
Jakub Narębski
Certainement la bonne réponse, en supposant que vous ne souhaitiez pas utiliser une interface graphique.
Matt Setter
47

Ligne de commande

Je recommande vivement d'ajouter l'option graphique avec git log:

git log --graph --all -- <filename>

git log --graph --all - <nom de fichier>

Gui

Gitk est un outil assez ancien et pas toujours installé, je recommande un autre outil gratuit comme par exemple SourceTree:

SourceTree

DrumM
la source
7
Comment enregistrer un fichier et afficher son graphique de branche dans SourceTree? Cliquez avec le bouton droit sur un fichier et sélectionnez "Journal sélectionné ..." ne montre pas l'historique sur toutes les branches.
aleung