Comment voir commits complet lorsque l'histoire suivi d'un seul fichier dans Git?
Question
J'ai un dépôt Git avec deux ans sur l'histoire en elle. Je file en elle, pour laquelle je souhaite trouver tous les commits, et pour chaque livraison: tous les autres fichiers qui ont été commis en elle. Supposons que ce fichier est nommé file.txt. Je peux courir gitk avec ce fichier comme argument:
gitk file.txt
et je reçois chaque validation. Cependant, la navigation dans cet arbre gitk montre que les changements effectués à file.txt. Je voudrais voir ce que les autres fichiers ont été modifiés dans ce commit. Je peux copier coller chaque validation SHA1 et l'afficher, mais il y a plus d'une centaine de commits liées à ce fichier.
Je remarque que la section « commentaires » dans la partie inférieure droite de l'écran est vide (uniquement affiche le texte « Commentaires »). Peut-être une liste de fichiers pourrait être montré là?
La solution
Dans la ligne de commande,
git log -p --full-diff file.txt
Affichera ce que vous voulez.
Si vous devez le voir dans gitk, invoquer avec pas arguments, trouver commit « chemin toucher » fichier.txt et commit contient ce fichier sera gras. Et vous pouvez utiliser les boutons « vers le haut » et « bas » pour traverser à travers elle.
Autres conseils
Vous pouvez effectivement avoir des fonctionnalités « --full-diff » dans gitk, mais pas directement à partir de 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 « en ligne de commande ».
- Dans la zone d'édition à côté de "arguments supplémentaires à git log", le type
--full-diff
- Cliquez sur "Appliquer" ou appuyez sur [F5].
Cela devrait le faire. Pourquoi gitk ne vous permet pas d'utiliser ce à partir de la ligne de commande est un mystère pour moi, car il est une option très utile.
Une autre solution de la liste de diffusion du loin dans 2008 :
Essayez de désactiver l'option « Limiter diffs aux chemins répertoriés » dans le menu Préférences (ou en ajoutant "set limitdiffs 0" à votre ~ / .gitk).