Pergunta

Qual é a melhor ferramenta para visualização e edição de uma mesclagem no Git? Eu gostaria de ter uma visão de mesclagem de 3 vias, com "meu", "deles" e "ancestral" em painéis separados, e um quarto painel "output".

Além disso, instruções para invocar a referida ferramenta seria ótimo. (Eu ainda não descobrir como iniciar kdiff3 de tal forma que ele não me dá um erro.)

Meu OS é o Ubuntu.

Foi útil?

Solução

Meld é um diff ferramenta / merge.

Aqui está como instalá-lo em:

Outras dicas

Você pode configurar sua própria ferramenta de mesclagem para ser usado com "git mergetool".

Exemplo:

  git config --global merge.tool p4merge
  git config --global mergetool.p4merge.cmd p4merge '$BASE $LOCAL $REMOTE $MERGED'
  git config --global mergetool.p4merge.trustExitCode false

E enquanto você está nisso, você também pode configurá-lo como seu difftool para "git difftool":

  git config --global diff.tool p4merge
  git config --global difftool.p4merge.cmd p4merge '$LOCAL $REMOTE'

Note que em Unix / Linux que você não quer que o $BASE para se analisada como uma variável pelo shell -. Ele realmente deve aparecer em seu arquivo ~ / .gitconfig para que isso funcione

Beyond Compare 3 , o meu favorito, tem um funcionalidade merge no Pro edição . A coisa boa com sua fusão é que ele permite que você veja todos os 4 pontos de vista: base, esquerda, direita, e fundiu resultado. É um pouco menos visual do que P4V , mas muito mais do que WinDiff. Ele integra com muitos controle de origem e funciona em Windows / Linux. Ele tem muitas características como regras avançadas, edições, alinhamento manual ...

O Perforce Visual Cliente ( P4V ) é uma ferramenta gratuita que fornece uma das interface mais explícita para a fusão (ver alguns screenshots ). Funciona em todas as principais plataformas. Meu disappointement principal com essa ferramenta é o seu tipo de "read-only" Interface . Você não pode editar manualmente os arquivos e você não pode alinhar manualmente.

PS: P4Merge está incluído na P4V. Perforce tenta torná-lo um pouco difícil de obter a sua ferramenta sem seu cliente.

SourceGear comparação / integração pode ser meu segundo livre escolha ferramenta. Verifique se merge telas-shot e você verá que é tem o 3 visualizações, pelo menos.


Meld é uma ferramenta gratuita mais recente que eu prefiro SourceGear diff / Mesclar : Agora ele também está trabalhando na maioria das plataformas (Windows / Linux / Mac) com a vantagem de suportar nativamente algum controle de origem como Git . Então você pode ter algum diff história em todos os arquivos muito mais simples. A visão merge (ver imagem ) tem apenas 3 painéis, assim como SourceGear Diff / Mesclar . Isso faz com que a fusão um pouco mais difícil em casos complexos.

PS: Se uma ferramenta de uma suportes dia 5 visualizações fusão , este seria realmente incrível, porque se você cherry-pick commits em Git você realmente não têm uma base, mas dois. Dois base, duas mudanças, e uma fusão resultante.

A minha ferramenta favorita merge visual é SourceGear DiffMerge

  • É livre.
  • Cross-plataforma (Windows, Mac OS X e Linux).
  • Limpo UI visuais
  • Todos diff características que você esperaria (Dif, fundir, pasta Diff).
  • interface de linha de comando.
  • atalhos de teclado utilizável.

Interface do usuário

Eu ouvi coisas boas sobre kdiff3.

vimdiff

vim Uma vez que você aprendeu (e IMHO você deve), vimdiff é apenas mais um pouco bonito conceito ortogonal a aprender. Para obter ajuda on-line no vim:

:help vimdiff 

Esta questão covers como usá-lo: Como eu usar vimdiff para resolver um conflito?

enter descrição da imagem aqui

Se você está preso na idade das trevas de uso do mouse, e os arquivos que você está fusão não são muito grandes, eu recomendo fusão.

Você pode tentar P4Merge .

Visualize as diferenças entre as versões de arquivos com P4Merge. Resolver conflitos que resultam da paralela ou desenvolvimento simultâneo via código de cores.

As características incluem:

  • Destaque e arquivo de texto editar diferenças
  • Escolha para incluir ou ignorar terminações de linha ou espaços em branco
  • Reconhecer convenções de delimitação de linhas para Windows (CRLF), Mac (CR) e Unix (LF)
  • usar parâmetros de linha de comando e lançamento de aplicações não-Perforce
  • números de linha de exibição quando comparar e mesclar arquivos
  • Excluir arquivos que são modificados, única, ou inalterada
  • Filtrar arquivos por nome ou extensão
  • Organizar ativos modificados no arquivo familiarizado / pasta hierarquia
  • Compare JPEG, GIF, TIFF, BMP e outros formatos de arquivo
  • Estender usando a API do Qt
  • Overlay imagens ou exibição de side-by-side
  • diferenças destaque para imagens sobrepostas

IntelliJ IDEA tem um sofisticado conflito de mesclagem ferramenta de resolução com a magia Resolve varinha, o que simplifica a fusão:

 Fonte: https://blog.jetbrains.com/dotnet/2017/03/13/rider-eap-update-version-control-database-editor-improvements/

difusa é o meu favorito, mas é claro que eu sou preconceituoso. :-) É muito fácil de usar:

$ diffuse "mine" "output" "theirs"

difusa é uma ferramenta pequena e simples texto merge escrito em Python. Com Difuso, você pode facilmente fundir, editar e analisar as alterações ao seu código. Difusa é software livre.

http://www.araxis.com/merge Eu estou usando-o em Mac OS X, mas eu usei-o em janelas ... não é livre ... mas tem alguns agradável apresenta ... agradável nas janelas embora.

Se você está apenas à procura de uma ferramenta de comparação além de comparar é muito bom: http: // www. scootersoftware.com/moreinfo.php

Você pode alterar a ferramenta usada por mergetool git passando git mergetool -t=<tool> ou --tool=<tool>. Para alterar o padrão (de vimdiff) uso git config merge.tool <tool>.

Assim, para a mesclagem git, você pode tentar:

  • DiffMerge para comparar visualmente e arquivos de mesclagem no Windows, OS X e Linux.

    DiffMerge

  • Meld , é uma ferramenta de comparação e mesclagem visual.

    Meld é um diff e merge ferramenta visual

  • KDiff3 , um diff e programa), o que compara ou funde-se 2 ou 3 arquivos de entrada de texto / dirs.
  • opendiff (parte do Xcode Tools no MacOS), um utilitário de linha de comando que inicia o aplicativo FileMerge do Terminal de arquivos ou diretórios graficamente comparar, incluindo .

Eu tentei um monte de ferramentas mencionado aqui e nenhum deles tem muito sido o que eu estou procurando.

Pessoalmente, eu encontrei Atom ser uma grande ferramenta para a visualização de diferenças e resolução de conflitos / fusão.

Como para a fusão, não há três pontos de vista, mas está tudo combinado em um com colorido destacando para cada versão. Você pode editar o código diretamente ou existem botões para usar qualquer versão desse trecho que deseja.

Eu não até mesmo usá-lo como um editor ou IDE mais, apenas para trabalhar com git. Limpe UI e muito simples e direta, além disso, é altamente personalizável.

  • Você pode iniciá-lo a partir da linha de comando e passar em um único arquivo que você deseja abrir, ou adicionar a pasta do projeto (repo git).

    • Eu também recomendaria projeto-gerente como uma maneira muito conveniente para Navegar entre projetos sem encher a sua exibição em árvore.
  • O único problema que eu tive é refrescante - quando se trabalha com grandes repositórios átomo pode ser lento para atualizar as alterações feitas fora dele. Eu sempre fechá-lo quando eu terminar, e em seguida, reabrir quando eu quero ver as minhas alterações / commit novamente. Você também pode recarregar a janela com ctrl + Shift + F5, o que só leva um segundo.

E é grátis, é claro.

Você pode instalar ECMerge diff / merge ferramenta em seu Linux, Mac ou Windows. Ele é pré-configurado no Git, por isso apenas usando git mergetool irá fazer o trabalho.

I usar diferentes ferramentas para mesclar e comparar:

git config --global diff.tool diffuse
git config --global merge.tool kdiff3

Punho poderia ser chamado por:

git difftool [BRANCH] -- [FILE or DIR]

Em segundo lugar é chamado quando você usa git mergetool.

Se você fizer uso visual studio , Team Explorer construído em ferramenta é uma ferramenta muito agradável para conflitos de mesclagem determinação git.

http://gitx.frim.nl/

Alguns erros ao trabalhar com grandes conjuntos cometer, mas excelente para visitar a mudanças e escolher diferentes alterações ao palco e, em seguida, cometer.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top