Disons que j'ai cloné un référentiel et commencé à modifier des fichiers. Je sais que si j'ai des modifications locales non validées, je peux faire un diff comme suit git diff test.txt
et cela me montrera la différence entre la HEAD locale actuelle et les modifications modifiées et non validées dans le fichier. Si je valide ces modifications, je peux les comparer au référentiel d'origine en utilisantgit diff master origin/master
Mais existe-t-il un moyen de différencier les modifications locales avec le référentiel d'origine sur le serveur avant de les valider localement? J'ai essayé diverses permutations de git diff --cached master origin/master
sans succès .
Réponses:
Étant donné que le référentiel distant a été mis en cache via,
git fetch
il devrait être possible de comparer avec ces commits. Essayez ce qui suit:la source
git diff master origin/master
c'était toujours la comparaison avec la version validée (évidente rétrospectivement). Mais en laissant de côté le maître compare maintenant les modifications locales à la version récupérée.origin master
et ailleursorigin/master
. Il y a encore du travail à faire, à mon humble avis.git diff origin/master
renvoie lefatal: ambiguous argument 'origin/master': unknown revision or path not in the working tree.
maître existe à l'origine, par exemplegit fetch origin master
fonctionne bien,Je sais que ce n'est pas une réponse à la question exacte posée, mais j'ai trouvé cette question cherchant à différencier un fichier dans une branche et un fichier local non validé et j'ai pensé que je partagerais
Syntaxe:
Exemples:
(Merci Eric Boehs pour un moyen de ne pas avoir à taper le nom de fichier deux fois)
la source
commit-ish
et le séparateur de deux points. La documentation sur git-diff ne semble pas le mentionner. Je l'ai utilisé pendant si longtemps que je ne me souviens plus où je l'ai trouvé pour la première fois. Probablement des exemples d'autres personnes sur d'autres commandes et je viens d'expérimentergit-diff
. J'ai bien peur qu'une autre réponsecommit-ish
soit la meilleure que je puisse trouver pour le moment.git diff master:./ -- README.md
. De cette façon, vous n'avez pas à taperREADME.md
deux fois et vous pouvez l'ajouter à un alias plus facilement.git diff master: -- README.md
la./
crée une/dev/null
source plutôt que la branche à distance. Utilisation de la version 2.19.0 de gitPour voir les modifications non par étapes (non ajoutées) des fichiers existants
git diff
Notez que cela ne suit pas les nouveaux fichiers. Pour voir les modifications par étapes et non validées
git diff --cached
la source
Si vous souhaitez comparer des fichiers visuellement, vous pouvez utiliser:
Il démarrera automatiquement votre application de comparaison pour chaque fichier modifié.
PS: Si vous n'avez pas défini d'application diff, vous pouvez le faire comme dans l'exemple ci-dessous (j'utilise Winmerge ):
la source