Esta resposta é ótima para ver uma diferença visual entre dois arquivos que estão marcados no git: Como eu vejo a saída 'git diff' com um programa visual diff?
No entanto, eu gostaria de ver uma diferença visual entre dois ramos. Até agora, minha melhor aposta parece ser:
git diff --name-status master dev
o que não é muito informativo e nem muito visual.
Existe algo melhor lá fora?
Respostas:
Use
git diff
com um intervalo .Isto irá comparar as dicas de cada ramo.
Se você realmente deseja algum software GUI, pode tentar algo como o SourceTree, que suporta Mac OS X e Windows.
fonte
Meld
, defini-lo como padrãodifftool
comgit config --global diff.tool meld
e finalmente iniciá-lo em vez de simplesmentediff
comgit difftool branch1..branch2
. O resultado é muito melhor.git difftool -t meld branch1..branch2
Para ver uma diferença visual de todas as diferenças entre dois ramos, eu gosto de mesclar os dois ramos - SEM comprometer a mesclagem - e depois usar
git gui
ou git Extensions para obter uma visão geral das diferenças.Linha de comando Git para mesclar sem confirmar:
Quando terminar, você pode desfazer a mesclagem com
(h / t para @ jcugat's para o comentário)
fonte
git gui
isso mostra os conflitos como não-estágios, os não-conflitos como estágios, para que você tenha uma boa distinção. Ajuda muito mais para mim do que a resposta mais bem avaliada: DCaso esteja usando o Intellij Idea IDE, basta usar a opção de comparação no ramo.
fonte
Você também pode fazer isso facilmente com o gitk.
Primeiro clique na ponta do branch1. Agora clique com o botão direito do mouse na ponta do branch2 e selecione Diff this-> selected.
fonte
gitk branch1..branch2
apenas shows confirma entre as duas revisões.Para aqueles de vocês no Windows que usam o TortoiseGit, é possível obter uma comparação visual através deste recurso bastante obscuro:
shift
e clique com o botão direito do mousectrl
para selecionar duas ramificações para compararFonte: http://wikgren.fi/compare-diff-branches-in-tortoise-git-or-how-to-preview-changes-before-doing-a-merge/
fonte
Se você estiver usando o OSX ou o Windows 7 ou superior, o Atlassian SourceTree funciona muito bem para isso. É de graça.
Você pode ver as alterações faseadas em uma configuração de comparação lado a lado e comparar facilmente local com remoto e quaisquer outras duas ramificações. Quando vários arquivos são selecionados, o diff aparece como abaixo:
Supondo que você fez check-out de um ramo de recursos e deseja ver a diferença em relação a 'mestre', clique com o botão direito do mouse no ramo 'mestre' e selecione "Diferença em relação à corrente"
Infelizmente, não parece que estará disponível nas distribuições * nix em breve .
fonte
Tente "difftool" (supondo que você tenha a configuração das ferramentas diff) - consulte https://www.kernel.org/pub/software/scm/git/docs/git-difftool.html
Acho o status do nome bom para o resumo, mas o difftool irá repetir as alterações (e a
-d
opção fornece a visualização do diretório), por exemploOu como @ rsilva4 mencionado com
-d
e padrão para o seu ramo atual, é apenas - por exemplo, compare com o master:... e sim - existem muitas variações - https://www.kernel.org/pub/software/scm/git/docs/git-reset.html
fonte
git difftool -d their-abc my-abc
-d --dir-diff: Copy the modified files to a temporary location and perform a directory diff on them. This mode never prompts before launching the diff tool.
Se você estiver usando o github, poderá usar o site para isso:
github.com/url/to/your/repo/compare/SHA_of_tip_of_one_branch...SHA_of_tip_of_another_branch
Isso mostrará uma comparação dos dois.
fonte
github.com/url/to/your/repo/compare/
e, em seguida, você pode selecionar os ramosEm GitExtensions, você pode selecionar os dois ramos na grade de revisão com Ctrlpressionado. Então você pode ver arquivos que diferem entre esses ramos. Ao selecionar um arquivo, você verá o diff.
Retirado daqui
fonte
ATUALIZAR
Mac: Agora eu uso o SourceTree. Absolutamente recomendado. Eu gosto especialmente da maneira como você pode encenar / desfilar pedaços.
Linux: Eu tive sucesso com:
meld
Por exemplo, para instalar
smartgit
no Ubuntu:.deb
do https://www.syntevo.com/smartgit/download/Isso faz o trabalho:
git-diffall com uma ferramenta de GUI diff como meld. Veja o ponto 5 aqui:
http://rubyglazed.com/post/15772234418/git-ify-your-command-line
Há um bom post sobre git e meld aqui: http://nathanhoad.net/how-to-meld-for-git-diffs-in-ubuntu-hardy
fonte
Se você usa o Eclipse, pode comparar visualmente sua ramificação atual na área de trabalho com outra tag / ramificação:
fonte
Você também pode usar o P4Merge gratuito do Perforce para fazer isso:
http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools
Detalhes sobre a integração com o Git podem ser encontrados aqui e aqui
mas um resumo rápido dos links acima é:
$ git mergetool
e$ git difftool
usar o p4merge$ git diff
ainda usará apenas o visualizador de diferenças em linha padrão :) (testado com a versão 1.8.2 do git)Alterações para .gitconfig
fonte
Se você usar o excelente editor WebStorm, poderá comparar com qualquer ramo que desejar:
fonte
Dê uma olhada em
git show-branch
Você pode fazer muito com a funcionalidade principal do git. Pode ser bom especificar o que você gostaria de incluir no seu diff visual. A maioria das respostas se concentra nas diferenças de confirmações linha a linha, onde seu exemplo se concentra nos nomes dos arquivos afetados em uma determinada confirmação.
Um visual que parece não ser abordado é como ver os commits que os ramos contêm (seja em comum ou exclusivamente).
Para esse visual, eu sou um grande fã de
git show-branch
; ele divide uma tabela bem organizada de confirmações por filial de volta ao ancestral comum. - para testá-lo em um repositório com várias ramificações com divergências, basta digitargit show-branch
e verificar a saída - para obter uma descrição com exemplos, consulte Comparar confirmações entre ramificações Gitfonte
Aqui está como ver a diferença visual entre confirmações inteiras, em oposição a arquivos únicos, no Visual Studio (testado no VS 2017). Infelizmente, ele funciona apenas para confirmações em uma ramificação: No "Team Explorer", escolha a visualização "Ramificações", clique com o botão direito do mouse no repositório e escolha "Visualizar histórico", como na imagem a seguir.
Em seguida, o histórico da ramificação atual aparece na área principal. (Onde as ramificações que terminaram como confirmações anteriores na ramificação atual são marcadas por rótulos.) Agora selecione algumas confirmações com Ctrl-Esquerda, clique com o botão direito do mouse e selecione "Comparar confirmações ..." no menu pop-up.
Para saber mais sobre a comparação de ramificações no mundo da Microsoft, consulte esta pergunta sobre o stackoverflow: Diferenças entre ramificações git usando o Visual Studio .
fonte
Você também pode usar o vscode para comparar ramificações usando a extensão CodeLense, isso já foi respondido neste SO: Como comparar ramificações diferentes no código do Visual studio
fonte