Recentemente eu estava usando o GitExtension 2.46, mas a versão do Git que tem o mesmo é 1.9.4.msysgit.2. Disposto a usar apenas os comandos do Git, desinstalei o GitExtension e instalei a versão mais recente disponível do Git e do KDiff3 .
Quando faço uma mesclagem e tenho conflitos, executo o seguinte comando:
$ git mergetool
Então eu recebo a mensagem:
A ferramenta de mesclagem kdiff3 não está disponível como 'kdiff3'.
Eu acho que deve ser pelo caminho do KDiff3.
Meio Ambiente
- SO: Windows 10
- Git 2.6.1.windows.1
- KDiff3 0.9.98 (64 bits)
Questões:
O que tenho que configurar no arquivo .gitconfig para o comando
$ git mergetool
abrir a GUI do KDiff3 com as versões LOCAL , REMOTE , BASE e MERGED do arquivo em conflito?Como configurá-lo para usá-lo possui uma ferramenta diff?
Respostas:
Estes sites foram muito úteis, quase, mergetool e difftool . Eu usei a configuração global, mas pode ser usada pelo repositório sem problemas. Você só precisa executar os seguintes comandos:
O uso da
trustExitCode
opção depende do que você deseja fazer quando a ferramenta diff retornar. Da documentação :fonte
git config --global --add diff.guitool kdiff3
para o seguinte:git config --global --add diff.tool kdiff3
--add
adicionará uma segunda ou terceira entrada quando chamada várias vezes. Isso é difícil de corrigir mais tarde, porque não pode simplesmente ser removido com--remove
. Apenas definir um valor sem--add
deve estar ok.Apenas para estender a resposta de @ Joseph :
Depois de aplicar esses comandos, seu
.gitconfig
arquivo global terá as seguintes linhas (para acelerar o processo, basta copiá-los no arquivo) :fonte
.gitconfig
arquivo que eu estava editando não era o que estava sendo usado. Consulte stackoverflow.com/questions/2114111/… para identificar os que estão sendo carregados. (2) Não misturar e combinarcmd =
epath =
em gitconfig, TL; DR: cmd exclusão e caminho uso apenasPara usuários de Mac
Aqui está a resposta aceita de @ Joseph, mas com o local padrão do caminho de instalação do Mac,
kdiff3
(Observe que você pode copiar e colar isso e executá-lo de uma só vez)
fonte
--add
pois isso pode resultar em 2 entradas de configuração se você executar o comando duas vezes. É uma bagunça limpando isso, porque você não pode mais excluir uma única entrada. Veja git-scm.com/docs/git-config : "Várias linhas podem ser adicionadas a uma opção"Bem, o problema é que o Git não consegue encontrar o KDiff3 no% PATH%.
Em uma instalação típica Unix todos os executáveis residem em vários locais conhecidos (
/bin/
,/usr/bin/
,/usr/local/bin/
, etc.), e pode-se chamar o programa, basta digitar o seu nome em um processador de shell (por exemplocmd.exe
:)).No Microsoft Windows, os programas geralmente são instalados em caminhos dedicados, assim você não pode simplesmente digitar
kdiff3
umacmd
sessão e executar o KDiff3.A solução mais difícil: você deve informar ao Git onde encontrar o KDiff3 especificando o caminho completo para
kdiff3.exe
. Infelizmente, o Git não gosta de espaços na especificação do caminho em sua configuração; portanto, na última vez em que precisei disso, acabei com os antigos "C: \ Progra ~ 1 ... \ kdiff3.exe" como se fosse tarde 1990s :)A solução simples: edite as configurações do computador e inclua o diretório com kdiff3.exe em% PATH%. Em seguida, teste se você pode invocá-lo do cmd.exe pelo nome e execute o Git.
fonte
Eu precisava adicionar os parâmetros da linha de comando ou o KDiff3 abriria apenas sem arquivos e solicitaria a base, local e remoto. Eu usei a versão fornecida com o TortoiseHg .
Além disso, eu precisava recorrer aos bons e antigos nomes de arquivos do DOS 8.3.
No entanto, ele funciona corretamente agora.
fonte
Para alterar a resposta de kris , começando com Git 2.20 (quarto trimestre de 2018), o comando apropriado será
git mergetool
Isso porque "
git mergetool
" aprendeu a usar a--[no-]gui
opção " ", assim como "git difftool
" faz.Consulte commit c217b93 , commit 57ba181 , commit 063f2bd (24 de outubro de 2018) por Denton Liu (
Denton-L
) .(Mesclado por Junio C Hamano -
gitster
- no commit 87c15d1 , 30 de outubro de 2018)fonte
(Ao tentar descobrir como usar o kdiff3 do WSL git, acabei aqui e recebi as peças finais, por isso vou postar minha solução para qualquer um que tropeçar aqui enquanto tenta encontrar a resposta)
Como usar o kdiff3 como ferramenta diff / merge para o WSL git
Com a atualização 1903 do Windows, é muito mais fácil; basta usar wslpath e não há necessidade de compartilhar o TMP do Windows para o WSL, já que o lado do Windows agora tem acesso ao sistema de arquivos WSL via \ wsl $:
Antes da atualização do Windows 1903
Etapas para usar o kdiff3 instalado no Windows 10 como ferramenta diff / merge para git na WSL:
fonte