Como interativamente (visualmente) resolver conflitos no SourceTree / git

Eu uso (Windows) o SourceTree para o meu projeto git. Eu posso fazer isso na linha de comando ou em um terminal linux.

Mas gostaria de saber se existe uma boa maneira de resolver conflitos de maneira interativa e visual. Por exemplo, se pull detectar conflitos, será exibida uma ferramenta baseada em interface de conflito (por exemplo, P4Merge). É possível?

Eu sempre faço a resolução manual de conflitos, o que apenas dói.

Esta é, por exemplo, a mensagem git pull do SourceTree.

 git -c diff.mnemonicprefix=false -c core.quotepath=false pull --no-commit origin master From W:\repo\ * branch master -> FETCH_HEAD Updating 33c07bf..41e0249 error: Your local changes to the following files would be overwritten by merge: foo.cpp goo.cpp goo.hpp Please, commit your changes or stash them before you can merge. Aborting Completed with errors, see above. 
92
28 мая '13 в 22:50 2013-05-28 22:50 Nullptr é definido em 28 de maio de 2013 às 22h50 de 2013-05-28 22:50
@ 3 respostas

No SourceTree, selecione Ferramentas-> Opções. Em seguida, na guia Geral, marque a caixa para permitir que o SourceTree modifique seus arquivos de configuração do Git.

Então vá para a aba "Diff". Na metade inferior, use a lista suspensa para selecionar o programa externo que você deseja usar para fazer o diff e mesclar. Eu instalei o KDiff3 e você gostou. Quando terminar, clique em "OK".

Agora que há uma mesclagem, você pode ir para o Actions-> Resolve Conflicts-> Launch External Merge Tool.

105
30 мая '13 в 0:53 2013-05-30 00:53 a resposta é dada gtrig 30 de maio de 2013 às 00:53 2013-05-30 00:53

Eu uso o SourceTree com o TortoiseMerge / Diff, que é uma ferramenta diff / merge muito simples e prática.

Se você quiser usá-lo, então:

  • Obtenha uma versão independente do TortoiseMerge / Diff (bastante antigo porque não é fornecido separadamente da versão 1.6.7 do TortosieSVN, isto é, a partir de julho de 2011). Links e detalhes nesta resposta .

  • Descompacte TortoiseIDiff.exe e TortoiseMerge.exe em qualquer pasta ( c:\Program Files (x86)\Atlassian\SourceTree\extras\ no meu caso).

  • No SourceTree, abra Tools > Options > Diff > External Diff / Merge . Selecione TortoiseMerge em ambas as listas suspensas.

  • Clique em OK e aponte o SourceTree para o seu local TortoiseIDiff.exe e TortoiseMerge.exe .

border=0

Depois disso, você pode escolher Resolve Conflicts > Launch External Merge Tool no menu de contexto em cada arquivo conflitante no repositório local. Isto irá abrir o TortoiseMerge, onde você pode facilmente lidar com todos os conflitos que você tem. Quando terminar, basta fechar o TortoiseMerge (você nem precisa salvar as alterações, isso provavelmente será feito automaticamente), e depois de alguns segundos, o SourceTree deve processá-lo elegantemente.

O único problema é que ele cria automaticamente um backup, mesmo que a opção correta não esteja marcada .

8
24 сент. resposta dada a tréder 24 set . 2014-09-24 00:16 '14 às 0:16 2014-09-24 00:16

Se você desativar o contexto "Resolver conflitos-> conteúdo", você pode inserir a lista de arquivos em espera. Precisamos selecionar a opção Arquivos em conflito na lista suspensa (acima)

espero que isso ajude

4
31 марта '15 в 19:41 2015-03-31 19:41 Resposta é dada por ozkary em 31 de março '15 às 19:41 2015-03-31 19:41