IntelliJ: visualização de diff de todos os arquivos alterados entre local e git commit / branch

103

Usar o visualizador de diff do IntelliJ é uma maneira muito boa de revisar o código, porque você pode fazer alterações em sua versão local com todos os recursos do editor de código do IntelliJ (refatoração, conclusão, etc).

Infelizmente, não descobri como fazer a coisa mais importante quando você está fazendo revisões de código no IntelliJ, a saber: Olhando para o diff de todos os arquivos alterados na árvore de trabalho (check-out para o branch de onde deseja mesclar) e outro branch (o branch no qual você planeja fundir, por exemplo, "master).

Alguém sabe como fazer isso?

Jon Tirsen
fonte
Por favor, consulte a seção Comparar em uma de suas postagens de blog .
Vic
Esta questão mostra as etapas do menu para exibir diffs para todos os arquivos em relação a outro branch (isto é, master): stackoverflow.com/questions/40637055/…
Alan Thompson

Respostas:

59

Embora a resposta de Jon Tirsen esteja correta, você precisa ler o texto inteiro para entender como fazer isso.

Aqui estão as imagens do mesmo no mac.

  1. Atualmente estou trabalhando com hello_world e quero comparar com master. insira a descrição da imagem aqui

  2. Em seguida, uma janela aparecerá. Selecione Filese pressionecmd + d

insira a descrição da imagem aqui

  1. Outra janela que mostra diff. Você pode realizar muitos tipos diferentes de diff. Use cmd + shift + ]e cmd + shift + [para alternar entre os arquivos.

insira a descrição da imagem aqui

Dica de comparação: IntelliJ oferece recursos de comparação avançados. Você pode verificar aqueles na 3ª imagem.

erro desconhecido
fonte
1
Como posso fazer isso para todo o projeto, em vez de arquivo por arquivo?
JoeMjr2
@ JoeMjr2 Não tenho certeza se esse recurso está disponível hoje. Você pode navegar por todos os arquivos usando cmd + shift + [e cmd + shift + ](substitua cmd por ctrl se estiver usando Windows).
unknownerror
Isso foi alterado na atualização da versão 2020, veja minha resposta abaixo para o método atualizado.
BlueYoshi
Você pode comparar 2 revisões também, por IDs de confirmação?
Dan Macák
85

Isso agora foi implementado. Para comparar dois ramos, você faz:

  1. Confira um dos ramos com o qual deseja comparar.
  2. Selecione o branch com o qual deseja comparar no pop-up de branch do Git na barra de status no canto inferior direito da janela do IntelliJ. Um pop-up com algumas opções é mostrado.
  3. Selecione a opção "Comparar".
  4. Isso por padrão mostra todos os commits, você também pode selecionar a guia "Diff" para mostrar as mudanças reais.

Tudo isso é descrito com muito mais detalhes em uma de suas postagens no blog .

Jon Tirsen
fonte
4
Isso também é possível com commits arbitrários em vez de branches? Quer dizer, posso criar rapidamente uma filial local para isso, mas parece um pouco complicado.
Robin de
@ Hikaru755 você já descobriu? Estou tentando fazer a mesma coisa
ycomp
@ycomp Não, infelizmente não. Eu concordei com a criação de branches temporários para isso por enquanto.
Robin
1
@ Hikaru755 sim, criei um tmpbranch, acho que é bom o suficiente. Mas parece um exagero
ycomp
3
@Robin sim, você pode. Abra o histórico do arquivo, selecione os dois commits e pressione Ctrl-D. Também funciona entre ramos diferentes.
Victor Sergienko
9

Isso está implementado agora. Você clica com o botão direito no projeto e seleciona "Git - compare com branch ..." e escolhe masterbranch. Feito. Compare todos os arquivos.

WesternGun
fonte
Esta é uma boa abordagem. Se você vir a opção esmaecida, é porque você não está clicando com o botão direito na pasta do projeto java / main / src.
jmojico
8

Isso foi alterado na atualização da versão 2020:

Agora você precisa fazer o seguinte:

  1. Verifique um dos ramos que deseja comparar.

  2. Abra o menu Ramos .

  3. Selecione o outro ramo com o qual deseja comparar.

  4. Selecione "Mostrar comparação com árvore de trabalho" .

insira a descrição da imagem aqui

BlueYoshi
fonte
Obrigado, percebi que tinha mudado, mas não conseguia descobrir para onde foi.
fmquaglia
1
Esta é a resposta mais atualizada no momento. Outras respostas são relevantes para versões mais antigas do IntelliJ, mas não para a atual.
Pavel
1

Se você deseja apenas comparar o seu arquivo aberto atualmente com outro branch lado a lado, vá para VCS -> Git -> Compare with Branch.

urgente
fonte
6
Isso responde a uma pergunta, mas não esta! :)
Lambart
1

Clique com o botão direito na classe e selecione a opção Git onde você verá a opção comparar com o ramo, onde você pode selecionar o ramo específico.

Balekai Sonal
fonte