Existem dois cenários para comparar arquivos:
Cenário 1: Compare arquivos em ramificações remotas (ambas as ramificações devem existir no repositório remoto)
Cenário 2: Compare os arquivos locais (na cópia da área de trabalho local) com os arquivos no repositório remoto.
A lógica é simples. Se você fornecer dois nomes de ramificação para diferenças, ele sempre comparará as ramificações remotas e, se você fornecer apenas um nome de ramificação, sempre comparará sua cópia de trabalho local com o repositório remoto (o que você forneceu). Você pode usar o range para fornecer repositórios remotos.
por exemplo, fazer checkout de uma filial
git checkout branch1
git diff branch2 [filename]
nesse caso, se você fornecer o nome do arquivo, ele comparará sua cópia local do nome do arquivo com a ramificação remota denominada " branch2 ".
git diff branch1 branch2 [filename]
nesse caso, ele comparará o nome de arquivo de ramificações remotas denominadas " branch1 " vs " branch2 "
git diff ..branch2 [filename]
também nesse caso, ele comparará o nome de arquivo de ramificações remotas denominadas " branch1 " vs " branch2 ". Então, é o mesmo que acima. No entanto, se você acabou de criar uma ramificação a partir de outra ramificação, diga "master" e sua ramificação atual não existe no repositório remoto, ele comparará " master " remoto versus " branch2 " remoto .
Espero que seja útil.
git diff branch1 branch2 myfile.cs
. (--
Isso não deve mais ser necessário, pois ele pode levar apenas dois argumentos de revisão.) #