Digamos que eu clonei um repositório e comecei a modificar arquivos. Sei que, se houver alterações não confirmadas locais, posso fazer uma comparação da seguinte forma git diff test.txt
e ele me mostrará a diferença entre o HEAD local atual e as alterações não confirmadas modificadas no arquivo. Se eu confirmar essas alterações, posso diferenciá-lo do repositório original usandogit diff master origin/master
Mas existe alguma maneira de diferenciar as alterações locais com o repositório original no servidor antes de confirmar localmente? Eu tentei várias permutações de git diff --cached master origin/master
sem sorte.
Respostas:
Dado que o repositório remoto foi armazenado em cache via
git fetch
, deve ser possível comparar com esses commits. Tente o seguinte:fonte
git diff master origin/master
ainda estava comparando com a versão comprometida (óbvio em retrospecto). Mas deixar de fora o mestre agora compara as alterações locais com a versão buscada.origin master
e em outro lugarorigin/master
. Ainda há trabalho a fazer, IMHO.git diff origin/master
retornosfatal: ambiguous argument 'origin/master': unknown revision or path not in the working tree.
mestre existe na origem, porém, por exemplo,git fetch origin master
funciona bem,Sei que não é uma resposta para a pergunta exata, mas encontrei essa questão procurando diferenciar um arquivo em uma ramificação e um arquivo não confirmado local e achei que compartilharia
Sintaxe:
Exemplos:
(Obrigado Eric Boehs pela maneira de não precisar digitar o nome do arquivo duas vezes)
fonte
commit-ish
e separador de dois pontos. Os documentos sobre git-diff não parecem mencionar. Eu o uso há tanto tempo que não me lembro onde o encontrei. Provavelmente os exemplos de outras pessoas em outros comandos e eu apenas experimenteigit-diff
. Receio que outra respostacommit-ish
seja a melhor que posso encontrar no momento.git diff master:./ -- README.md
. Dessa forma, você não precisa digitarREADME.md
duas vezes e pode adicioná-lo a um alias mais fácil.git diff master: -- README.md
do./
cria uma/dev/null
fonte ao invés da filial remota. Usando git versão 2.19.0Para ver alterações não preparadas (não adicionadas) nos arquivos existentes
git diff
Observe que isso não rastreia novos arquivos. Para ver as mudanças não confirmadas em etapas
git diff --cached
fonte
Se você deseja comparar arquivos visualmente, pode usar:
Ele iniciará seu aplicativo diff automaticamente para cada arquivo alterado.
PS: Se você não definiu um aplicativo diff, pode fazê-lo como no exemplo abaixo (eu uso o Winmerge ):
fonte