Montrer quels fichiers ont changé entre deux révisions

Je veux fusionner deux twigs qui ont été séparées pendant un moment et je voulais savoir quels fichiers ont été modifiés.

Entré sur ce lien: http://linux.yyz.us/git-howto.html qui était très utile.

Les outils pour comparer les twigs que je rencontre sont:

  • git diff master..branch
  • git log master..branch
  • git shortlog master..branch

Je me demandais s’il y avait quelque chose comme “git status master..branch” pour ne voir que les fichiers différents entre les deux twigs.

Sans créer un nouvel outil, je pense que c’est le plus proche de ce que vous pouvez faire maintenant (ce qui bien sûr montrera les répétitions si un fichier a été modifié plusieurs fois):

  • git diff master..branch | grep "^diff"

Je me demandais s’il y avait quelque chose qui me manquait …

Pour comparer la twig en cours avec le master

 $ git diff --name-status master 

Pour comparer n’importe quelle paire de twigs

 $ git diff --name-status firstbranch..yourBranchName 

Cela devrait faire ce dont vous avez besoin, si je vous comprends bien.

Essayer

 $ git diff --stat --color master..branchName 

Cela vous donnera plus d’informations sur chaque changement, tout en utilisant le même nombre de lignes.

Vous pouvez également retourner les twigs pour obtenir une image encore plus claire de la différence si vous deviez fusionner dans l’autre sens:

 $ git diff --stat --color branchName..master 

Gardez également à l’esprit que git a des twigs faciles et peu coûteuses. Si je pense qu’une fusion pourrait être problématique, je crée une twig pour la fusion. Donc, si master a les modifications que je veux fusionner et que ba est ma twig qui a besoin du code de master, je pourrais faire ce qui suit:

 git checkout ba git checkout -b ba-merge git merge master .... review new code and fix conflicts.... git commit git checkout ba git merge ba-merge git branch -d ba-merge git merge master 

Le résultat final est que je dois essayer la fusion sur une twig jetable avant de visser avec ma twig. Si je m’embrouille, je peux simplement supprimer la twig de ba-merge et recommencer.

Si quelqu’un essaie de générer un fichier diff à partir de deux twigs:

 git diff master..otherbranch > myDiffFile.diff 

Notez que git vous permet d’essayer simplement la fusion et de résoudre les problèmes si vous n’aimez pas le résultat. Cela pourrait être plus facile que de rechercher des problèmes potentiels à l’avance.

Il existe également une méthode basée sur l’interface graphique.

Vous pouvez utiliser gitk .

  1. Courir:

     $ gitk --all 
  2. Cliquez avec le bouton droit sur une validation d’une twig et sélectionnez Marquer cette validation dans le menu contextuel.

  3. Faites un clic droit sur un commit d’une autre twig et sélectionnez Diff this -> marqué commit ou Diff marqué commit -> this .

Ensuite, il y aura une liste de fichiers modifiés dans le panneau inférieur droit et des détails diff dans le panneau inférieur gauche.

Une autre option, en utilisant Meld dans ce cas:

 git difftool -d master otherbranch 

Cela permet non seulement de voir les différences entre les fichiers, mais fournit également un moyen simple de pointer et de cliquer dans un fichier spécifique.

Lorsque vous travaillez en collaboration ou sur plusieurs fonctionnalités à la fois, il est fréquent que le stream amont ou même votre fichier maître contienne des travaux qui ne sont pas inclus dans votre twig et apparaissent incorrectement dans les différences de base.

Si votre Amont peut avoir été déplacé, vous devriez le faire:

 git fetch git diff origin/master... 

L’utilisation de git diff master peut inclure ou ne pas inclure les modifications pertinentes.

Et si vous recherchez des modifications uniquement parmi certains fichiers, alors:

 git diff branch1 branch2 -- myfile1.js myfile2.js 

branch1 est facultatif et votre twig actuelle (la twig sur laquelle vous vous trouvez) sera considérée par défaut si branch1 n’est pas fourni. par exemple:

 git diff master -- controller/index.js 

Si vous utilisez IntelliJ IDEA , vous pouvez également comparer n’importe quelle twig avec votre twig de travail actuelle. Voir http://www.jetbrains.com/idea/webhelp/merging-deleting-and-comparing-twigs.html#d288093e3827 pour plus d’informations. Ceci est également disponible dans l’ édition gratuite .

Il y a deux twigs, disons

  • A (twig sur laquelle vous travaillez)
  • B (une autre twig avec laquelle vous voulez comparer)

Être dans la twig A, vous pouvez taper

 git diff --color B 

alors cela vous donnera une sortie de

entrer la description de l'image ici

Le point important à ce sujet est

  1. Le texte en vert est présent à l’intérieur de la twig A

  2. Le texte en rouge est présent dans la twig B

Il y a beaucoup de réponses ici, mais je voulais append quelque chose que j’utilise couramment. Si vous êtes dans l’une des twigs que vous souhaitez comparer, je réalise généralement l’une des opérations suivantes. Pour cette réponse, nous dirons que nous sums dans notre twig secondaire. Selon la vue dont vous avez besoin à ce moment-là, cela dépendra de votre choix, mais la plupart du temps, j’utilise la deuxième option. La première option peut être utile si vous essayez de revenir à une copie originale – de toute façon, les deux font le travail!

Cela comparera le maître à la twig dans laquelle nous nous trouvons (ce qui est secondaire) et le code d’origine sera les lignes ajoutées et le nouveau code sera considéré comme les lignes supprimées.

 git diff ..master 

OU

Cela comparera également le maître à la twig dans laquelle nous nous trouvons (ce qui est secondaire) et le code d’origine sera les anciennes lignes et le nouveau code sera les nouvelles lignes.

 git diff master.. 

Si vous aimez l’interface graphique et que vous utilisez Windows, voici un moyen simple.

  1. Télécharger WinMerge
  2. Découvrez les deux twigs dans différents dossiers
  3. Faites un dossier par dossier comparer en utilisant WinMerge. Vous pouvez également facilement apporter des modifications si l’une des twigs est celle sur laquelle vous travaillez.

Vous pouvez également comparer facilement les twigs pour les fichiers modifiés en utilisant par exemple TortoiseGit . Cliquez simplement sur Parcourir les références et choisissez les twigs que vous souhaitez comparer.

Par exemple, si vous comparez votre twig avec master, vous obtiendrez comme résultat la liste des fichiers qui seront modifiés dans master si vous décidez de fusionner votre twig en master .

Rappelez-vous que vous obtiendrez des résultats différents si vous comparez le maître avec votre twig et votre twig avec le maître .