Eu tentei msysGit e Git no Cygwin. Ambos funcionam muito bem por si mesmos e executam perfeitamente o gitk e o git-gui.
Agora, como diabos eu configuro uma ferramenta de fusão? (Vimdiff funciona com Cygwin, mas de preferência eu gostaria de algo um pouco mais amigável para alguns de nossos colegas de trabalho que adoram Windows.)
Respostas:
Para acompanhar a resposta de Charles Bailey, aqui está a minha configuração do git que usa o p4merge ( ferramenta gratuita de mesclagem de 3 vias entre plataformas); testado na instalação do msys Git (Windows):
ou, a partir de um shell do Windows cmd.exe, a segunda linha se torna:
As mudanças (relativas a Charles Bailey):
Faça o download: http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools
EDIT (fevereiro de 2014)
Conforme apontado por @Gregory Pakosz , o mais recente msys git agora "nativamente" suporta o p4merge (testado em 1.8.5.2.msysgit.0 ).
Você pode exibir a lista de ferramentas suportadas executando:
Você deve ver o p4merge na lista disponível ou válida . Caso contrário, atualize seu git.
Se o p4merge foi listado como disponível , ele está no seu PATH e você só precisa definir o merge.tool :
Se ele foi listado como válido , é necessário definir mergetool.p4merge.path além de merge.tool :
~
deva expandir para o diretório inicial do usuário atual (portanto, em teoria, o caminho deve ser~/AppData/Local/Perforce/p4merge.exe
), isso não funcionou para mim$LOCALAPPDATA/Perforce/p4merge.exe
), o git não parece estar expandindo variáveis de ambiente para caminhos (se você souber como fazer isso funcionar, informe-me ou atualize esta resposta)fonte
mergetool.p4merge.cmd
não funcionará mais desde que o Git começou a tentar dar suporte ao p4merge, consultelibexec/git-core/git-mergetool--lib
. em vez disso, ele usa diretamentemergetool.p4merge.path
cmd = \""c:/Program Files/TortoiseSVN/bin/TortoiseMerge.exe"\" -base:"$BASE" -theirs:"$REMOTE" -mine:"$LOCAL" -merged:"$MERGED"
git config --global mergetool.p4merge.cmd '"C:\\Program Files\\Perforce\\p4merge" $BASE $LOCAL $REMOTE $MERGED'
na máquina com Windows 7A configuração do mergetool.p4merge.cmd não funcionará mais desde que o Git começou a tentar dar suporte ao p4merge, consulte libexec / git-core / git-mergetool--lib.so, apenas precisamos especificar o caminho do mergetool para o git, por exemplo, o p4merge:
Então vai funcionar.
fonte
Estou usando o Portable Git no WinXP (funciona um prazer!) E precisava resolver um conflito que surgiu na ramificação. De todas as GUI que verifiquei, o KDiff3 provou ser o mais transparente de usar.
Mas encontrei as instruções necessárias para fazê-lo funcionar no Windows nesta postagem do blog , instruções que diferem um pouco das outras abordagens listadas aqui. Basicamente, foi somando essas linhas ao meu
.gitconfig
arquivo:Trabalhando bem agora!
fonte
path = C:\\Program Files (x86)\\KDiff3\\kdiff3.exe
(observe as barras duplas)Sob Cygwin, a única coisa que funcionou para mim é a seguinte:
Além disso, eu gosto de desativar a mensagem de prompt do difftool:
fonte
git mergetool
é totalmente configurável para que você possa escolher sua ferramenta favorita.A documentação completa está aqui: http://www.kernel.org/pub/software/scm/git/docs/git-mergetool.html
Em resumo, você pode definir uma ferramenta de fusão padrão configurando a variável de configuração do usuário
merge.tool
.Se a ferramenta de mesclagem é uma das suportadas nativamente por ela, basta definir
mergetool.<tool>.path
o caminho completo da ferramenta (substitua<tool>
pelo que você configuroumerge.tool
para ser.Caso contrário, você pode definir
mergetool.<tool>.cmd
um pouco de shell para ser avaliado em tempo de execução com as variáveis de shell$BASE, $LOCAL, $REMOTE, $MERGED
definidas nos arquivos apropriados. Você precisa ter um pouco de cuidado com o escape, se editar diretamente um arquivo de configuração ou definir a variável com ogit config
comandoAlgo assim deve dar o sabor do que você pode fazer ('mymerge' é uma ferramenta fictícia).
Depois de configurar sua ferramenta de mesclagem favorita, basta executar
git mergetool
sempre que houver conflitos a serem resolvidos.A ferramenta p4merge da Perforce é uma ferramenta de mesclagem independente bastante boa.
fonte
Para além da comparação no Windows 7
fonte
Parece que as versões mais recentes do git suportam diretamente o p4merge, então
deve ser tudo o que você precisa, se o p4merge.exe estiver no seu caminho. Não é necessário configurar o cmd ou o caminho.
fonte
Como já foi respondido aqui (e aqui e aqui ), mergetool é o comando para configurar isso. Para uma boa interface gráfica, recomendo o kdiff3 (GPL).
fonte
Eu tive que largar a citação extra usando o msysGit no Windows 7, não sei por quê.
fonte
Se você está fazendo isso através do cygwin, pode ser necessário usar o cygpath:
fonte
Bah, isso finalmente funcionou para mim (Windows 7 + Cygwin + TortoiseMerge):
Em .git / config:
Obrigado aos pôsteres anteriores pela dica de usar o cygpath!
fonte
eu uso um aplicativo chamado WinMerge ( http://winmerge.org/ ) informações do manual ( http://manual.winmerge.org/CommandLine.html )
este é o script bash que eu uso da
mergetool
diretiva via.gitconfig
basicamente, o bash é responsável pelo resultado do diff em um arquivo vazio e cria um novo arquivo temporário no local correto.
fonte
Encontrei duas maneiras de configurar o " SourceGear DiffMerge " como difftool e o mergetool no github Windows.
Os seguintes comandos em uma janela do prompt de comando atualizarão o seu .gitconfig para configurar o GIT usando o DiffMerge:
[ OU ]
Adicione as seguintes linhas ao seu .gitconfig. Este arquivo deve estar no diretório inicial em C: \ Users \ UserName:
fonte
Você também pode adicionar essas opções:
Além disso, não sei por que, mas a citação e a barra da resposta de Milan Gardian estragaram tudo para mim.
fonte
Se alguém quiser usar o gvim como sua ferramenta diff no TortoiseGit, é isso que você precisa inserir na entrada de texto do caminho para a ferramenta diff externa:
fonte
Para a configuração do git de 3 vias do IntelliJ IDEA (Community Edition), em ambiente Windows (
~/.gitconfig
)Cygwin
Msys
O ~ / winpath.sh é converter caminhos para o Windows no msys e é retirado da pergunta de conversão de caminho do msys no stackoverflow
fonte
Para configurar o p4merge, instalado usando chocolatey no Windows para mesclar e diff, dê uma olhada aqui: https://gist.github.com/CamW/88e95ea8d9f0786d746a
fonte
Se você está tendo problemas para abrir o p4merge no SourceTree, procure pelo arquivo de configuração local denominado config em MyRepo.git e exclua qualquer configuração de mesclagem. No meu caso, ele estava tentando abrir o Meld, que eu acabei de desinstalar
fonte