2009-12-29 8 views
16

J'ai un dépôt Git avec environ deux ans d'histoire. J'ai un fichier unique, pour lequel je souhaite trouver tous les commits, et pour chaque commit: tous les autres fichiers qui y ont été engagés. Supposons que ce fichier s'appelle file.txt. Je peux exécuter gitk avec ce fichier comme argument:Comment afficher les validations complètes lors du suivi de l'historique d'un seul fichier dans Git?

gitk file.txt 

et je reçois chaque validation. Cependant, la navigation dans cet arbre dans gitk ne montre que les modifications apportées à file.txt. J'aimerais voir quels autres fichiers ont été modifiés dans ce commit. Je peux copier coller chaque commit SHA1 et l'afficher, mais il y a plus d'une centaine de commits liés à ce fichier.

Je remarque que la section "commentaires" dans la partie inférieure droite de l'écran est vide (affiche seulement le texte "Commentaires"). Peut-être qu'une liste de fichiers pourrait être montrée là?

+0

Pour EOL ailleurs où voir http://unix.stackexchange.com/questions/10277/ignore-whitespaces-changes-in-all-git-commands –

Répondre

15

Dans la ligne de commande,

git log -p --full-diff file.txt 

va afficher ce que vous voulez.

Si vous devez le voir dans gitk, invoquez-le avec aucun argument, trouvez commit "pathing path" file.txt, et la validation contient ce fichier en gras. Et vous pouvez utiliser les boutons "haut" et "bas" pour le parcourir.

+0

j'ai modifié ma réponse, espérons que c'est ce que vous voulez . – iamamac

+0

Excellent! Exactement ce dont j'ai besoin. Merci beaucoup (je suis désolé je ne peux que l'upvote et l'accepter) –

7

Vous pouvez réellement avoir la fonctionnalité '--full-diff' dans gitk, mais pas directement depuis la ligne de commande. Il suffit de faire ce qui suit:

  • Démarrer gitk la manière habituelle, par exemple .: gitk file.txt
  • Sélectionnez 'Affichage -> Modifier ...' dans le menu. Vérifiez que vous modifiez la vue 'Ligne de commande'.
  • Dans la zone d'édition à côté de "Arguments supplémentaires au journal git", tapez --full-diff
  • Cliquez sur "Appliquer" ou appuyez sur [F5].

Cela devrait le faire. Pourquoi gitk ne vous permet pas de l'utiliser à partir de la ligne de commande est un mystère pour moi, car c'est une option très utile.

3

Une autre solution de la liste de diffusion du loin dans 2008:

Essayez de désactiver l'option dans le menu Préférences « Limiter diffs aux chemins répertoriés » (ou en ajoutant « set limitdiffs 0 » à votre ~ /.gitk).

+0

c'est la seule solution qui fonctionne pour moi .. le ~ /. Gitk ne fonctionne pas mais changer dans les préférences fonctionne très bien – nayana