Como eu configuro o Git para usar uma ferramenta diferente para diferenciar o arquivo .gitconfig?
Eu tenho isso no meu .gitconfig:
[diff]
tool = git-chdiff #also tried /bin/git-chdiff
Não funciona; apenas abre o diff da linha de comando regular. Quando eu faço
export GIT_EXTERNAL_DIFF=git-chdiff
então git diff
abrirá a ferramenta diffing externa (então eu sei que o script da ferramenta diff externa funciona bem). Tenho algo errado com a minha configuração .gitconfig para a ferramenta diff?
Respostas:
O Git oferece uma variedade de difftools pré-configurados "prontos para uso" (kdiff3, kompare, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge, difuse, opendiff, p4merge e araxis) e também permite que você para especificar o seu. Para usar um dos difftools pré-configurados (por exemplo, "vimdiff"), adicione as seguintes linhas ao seu
~/.gitconfig
:Agora, você poderá executar o "git difftool" e usar sua ferramenta preferida.
Por outro lado, especificar seu próprio difftool exige um pouco mais de trabalho, consulte Como visualizo a saída 'git diff' com minha ferramenta / visualizador preferido de diff?
fonte
.com
para.org
. Eu sou capaz de navegar jeetworks.org/softwareUma maneira adicional de fazer isso (na linha de comando):
As duas primeiras linhas definirão o difftool e o mergetool para
tkdiff
- altere isso de acordo com suas preferências. A terceira linha desativa o prompt irritante, portanto, sempre que você o pressionagit difftool
, inicia automaticamente o difftool.fonte
git config --global diff.tool diffmerge
mas quando eu fizgit diff myfile.txt
isso ainda me deu o diff padrão do unixOutros responderam 99% disso, mas resta apenas um passo. (Minha resposta virá do OS X, portanto, você precisará alterar os caminhos do arquivo de acordo.)
Você faz essas alterações no seu
~/.gitconfig
:Isso irá corrigir a ferramenta diff. Você também pode corrigir isso sem editar
~/.gitconfig
diretamente inserindo estes comandos no terminal:O 1% que todo mundo deixou de mencionar é que ao usar isso, você não pode simplesmente executar
git diff myfile.txt
; você precisa corrergit difftool myfile.txt
.fonte
git config --global --add difftool.prompt false
, no entanto. ;)Aqui está a parte do meu ~ / .gitconfig onde eu configuro as ferramentas diff e merge. Eu gosto de diferenciar pelo SourceGear. (Gosto muito, de fato).
Então, veja bem, você está definindo uma ferramenta chamada "diffmerge" na
[difftool "diffmerge"]
linha. Então, eu estou configurando a ferramenta "diffmerge" como o padrão na[diff] tool =
seção.Obviamente, tenho o comando "diffmerge" no meu caminho, aqui. Caso contrário, eu precisaria fornecer um caminho completo para o executável.
fonte
diffmerge --merge --result="$MERGED" "$LOCAL" "$(if test -f "$BASE"; then echo "$BASE"; else echo "$LOCAL"; fi)" "$REMOTE"
diffmerge --merge --result="$MERGED" "$LOCAL" "$BASE" "$REMOTE"
ln-s <pathtodiffmerge>/sgdm_cygwin.sh /usr/local/bin/diffmerge
e está pronto para usar a configuração acima. Bem comodiffmerge
diretamente da linha de comando do cygwin com os caminhos do cygwin.sgdm.exe
hoje em diaReproduzindo minha resposta a partir deste tópico, que era mais específico para definir além da comparação como ferramenta diff para o Git. Todos os detalhes que compartilhei são igualmente úteis para qualquer ferramenta diff em geral, portanto, compartilhe-a aqui:
O primeiro comando que executamos é o seguinte:
O comando acima cria a entrada abaixo
.gitconfig
encontrada no%userprofile%
diretório:Em seguida, execute o comando abaixo (a execução deste comando é redundante nesse caso específico e é necessária apenas em alguns casos especializados. Você o conhecerá em breve ):
O comando acima cria a entrada abaixo no
.gitconfig
arquivo:O importante a saber aqui é a chave
bc3
. Essa é uma chave bem conhecida do git, correspondente a uma versão específica das ferramentas de comparação conhecidas disponíveis no mercado (bc3
corresponde à terceira versão da ferramenta Beyond Compare). Se você quiser ver todas as chaves predefinidas, execute ogit difftool --tool-help
comando git bash. Ele retorna abaixo da lista:Você pode usar qualquer uma das chaves acima ou definir uma chave personalizada. Se você deseja configurar uma nova ferramenta completamente (ou uma versão recém-lançada da ferramenta conhecida) que não mapeia nenhuma das chaves listadas acima, você pode mapeá-la para qualquer uma das chaves listadas acima ou para uma nova chave personalizada de sua preferência.
E se você tiver que configurar uma ferramenta de comparação que seja
OU
Como no meu caso, eu instalei além do compare 4. beyond compare é uma ferramenta bem conhecida do git, mas sua versão 4 não é mapeada para nenhuma das chaves existentes por padrão. Portanto, você pode seguir qualquer uma das abordagens abaixo:
Posso mapear além da ferramenta comparar 4 com a chave já existente,
bc3
que corresponde à versão além da comparação 3. Eu não tinha além da versão 3 no meu computador, então não me importei. Se eu quisesse, poderia tê-lo mapeado para qualquer uma das teclas predefinidas na lista acima também, por exemploexamdiff
.Se você mapear a versão conhecida das ferramentas para a chave já existente / conhecida apropriada, não será necessário executar o segundo comando, pois o caminho de instalação já é conhecido pelo git .
Por exemplo, se eu tivesse instalado além da versão 3 na minha caixa, a configuração abaixo no meu
.gitconfig
arquivo seria suficiente para continuar:Mas se você deseja alterar a ferramenta associada padrão, acaba mencionando o
path
atributo separadamente, para que o git conheça o caminho de onde o exe da nova ferramenta deve ser iniciado. Aqui está a entrada que raposas git lançam além da comparação 4. Observe o caminho do exe:A abordagem mais limpa é definir completamente uma nova chave para a nova ferramenta de comparação ou uma nova versão de uma ferramenta conhecida. Como no meu caso, defini uma nova chave
bc4
para que seja fácil de lembrar. Nesse caso, você precisa executar dois comandos no total, mas o seu segundo comando não definirá o caminho do executável da sua nova ferramenta. Em vez disso, você deve definir ocmd
atributo para sua nova ferramenta, como mostrado abaixo:A execução dos comandos acima cria entradas abaixo no seu
.gitconfig
arquivo:Eu recomendo fortemente que você siga a abordagem nº 2 para evitar qualquer confusão no futuro.
fonte
Adicionar um dos blocos abaixo funciona para eu usar o KDiff3 nos meus ambientes de desenvolvimento Windows e Linux. É uma ferramenta consistente e agradável de comparação e mesclagem entre plataformas.
Linux
janelas
fonte
trustExitCode = false
fará com que o git pergunte se a fusão foi bem-sucedida, em vez de confiar se a ferramenta saiu com um status verdadeiro ou falso.Se você quiser ter uma opção para usar várias ferramentas diff, adicione um alias ao .gitconfig
fonte
--tool
opção. GraçasConsulte Microsoft vscode-tips-and-truques . Basta executar estes comandos no seu terminal:
git config --global merge.tool code
Mas, primeiro, você precisa adicionar um
code
comando ao seu PATH.fonte
No Windows, precisamos executar o
$git difftool --tool-help
comando para ver as várias opções, como:e podemos adicionar qualquer um deles (por exemplo, winmerge) como
Para configurar o notepad ++ para ver os arquivos antes de confirmar:
e usar
$ git commit
abrirá as informações de confirmação no bloco de notas ++fonte