Quero encontrar as diferenças entre um arquivo que tenho no meu repositório local e o que está no arquivo origin master
.
Eu sei que existe git diff
, no entanto, eu apenas quero isolá-lo neste arquivo em particular.
Para simplificar, digamos que o arquivo seja nomeado file1.txt
e tenha um caminho de arquivo local = [local_path]
e na origem ele tenha o caminho de arquivo = [remote-path]
.
Qual seria o comando git que preciso digitar?
EDIT: Obrigado a todos por sua contribuição, foi muito esclarecedor. Para aqueles que estão usando o Eclipse (que eu sou e deveria ter declarado anteriormente), acabei de descobrir que você pode clicar com o botão direito do mouse -> Comparar com -> Filial, tag ou referência -> selecionar a versão apropriada e pronto.
Respostas:
Se
[remote-path]
e[local-path]
são iguais, você pode fazerNota 1: O segundo comando acima será comparado ao ramo de rastreamento remoto armazenado localmente. O comando buscar é necessário para atualizar a ramificação de rastreamento remoto para estar sincronizada com o conteúdo do servidor remoto. Como alternativa, você pode simplesmente fazer
Nota 2:
master
pode ser substituída nos exemplos acima por qualquer nome de filialfonte
git diff master:README.md -- README.md
git diff origin/master -- README.md
git fetch master
usar usadogit fetch .
(origem / mestre também não funcionou) Mas o resto funcionou bem.git fetch **origin**
.Para visualizar as diferenças que vão do arquivo remoto para o arquivo local:
Para visualizar as diferenças na outra direção:
Basicamente, você pode diferenciar dois arquivos em qualquer lugar usando esta notação:
Como de costume,
ref1
eref2
podem ser nomes de filiais, nome do remot / branchname, confirmar SHAs etc.fonte
Para comparar o repositório local com o remoto, basta usar a sintaxe abaixo:
fonte
Para isso, escrevi um script bash:
No script acima, busco a ramificação principal remota (não é necessário sua ramificação mestre QUALQUER ramificação) para
FETCH_HEAD
, em seguida, faço uma lista apenas do meu arquivo modificado e comparo os arquivos modificadosgit difftool
.Existem muitos
difftool
suportados pelo git, eu configureiMeld Diff Viewer
para uma boa comparação da GUI.A partir do script acima, eu tenho conhecimento prévio de quais alterações foram feitas por outras equipes no mesmo arquivo, antes de seguir os estágios git
untrack-->staged-->commit
que me ajudam a evitar conflitos desnecessários de mesclagem com a equipe remota ou criar uma nova filial local e comparar e mesclar na filial principal.fonte
Eu tentei algumas soluções, mas acho fácil dessa maneira (você está na pasta local):
Então você comparou o último número de confirmação local do git e do git remoto ....
fonte
A resposta completa para a pergunta original que estava falando sobre um possível caminho diferente no local e no remoto está abaixo
git fetch origin
git diff master -- [local-path] origin/master -- [remote-path]
Supondo que o caminho local seja docs / file1.txt e o caminho remoto seja docs2 / file1.txt, use
git diff master -- docs/file1.txt origin/master -- docs2/file1.txt
Isso é adaptado da página de ajuda do GitHub aqui e a resposta do Code-Apprentice acima
fonte