Git: comment différencier deux fichiers différents dans des branches différentes?

j'ai deux fichiers différents dans des branches différentes. Comment puis-je les différencier en une seule commande?

quelque chose comme

# git diff branch1/foo.txt branch2/foo-another.txt

je pourrais vérifier l'autre fichier, le différencier et le restaurer, mais c'est une solution assez sale.

135
demandé sur Vadim Kotov 2011-11-15 07:32:44

4 réponses

git diff branch1:full/path/to/foo.txt branch2:full/path/to/foo-another.txt

Vous pouvez également utiliser des chemins relatifs:

git diff branch1:./relative/path/to/foo.txt branch2:./relative/path/to/foo-another.txt
179
répondu twaggs 2014-09-11 14:47:48

Sidenote: pas besoin de chemins complets, vous pouvez commencer par ./ pour les chemins relatifs. Il peut être pratique parfois.

git diff branch1:./relative/path/to/foo.txt branch2:./relative/path/to/foo-another.txt
20
répondu Campa 2013-06-10 09:56:33

il y a plusieurs façons de comparer les fichiers de deux branchs diferents. Par exemple:

  • si le nom est identique ou différent:

     git diff branch1:file branch2:file
    

    exemple:

     git diff branch1:full/path/to/foo.txt branch2:full/path/to/foo-another.txt
    
  • seulement si le nom est le même et que vous voulez comparer votre répertoire de travail actuel à une branche quelconque:

    git diff ..someBranch path/to/file
    

    exemple:

    git diff ..branch2 full/path/to/foo.txt
    

    dans cet exemple, vous comparez le fichier de votre branche actuelle à le fichier dans la branche master.

vous pouvez vérifier cette réponse:

Comparez un fichier de deux branchs différents en Git

0
répondu Javier C. 2018-04-04 13:50:42

juste pour l'ajouter car je trouve que c'est une syntaxe très simple:

git diff <branch1> <branch2> <filepath>

fonctionne aussi avec des réf relatifs comme par exemple:

# compare the previous committed state from HEAD with the state branch1 was 3 commits ago
git diff HEAD^ <branch1>~3 <filepath>
0
répondu RomainVALERI 2018-07-17 06:29:42