not Git mergetool gera arquivos.orig indesejados



git merge tool linux (8)

Eu uso isso para limpar todos os arquivos terminados em ".orig":

function git-clean-orig {
    git status -su | grep -e"\.orig$" | cut -f2 -d" " | xargs rm -r
}

Se você é um gato assustado :) você pode deixar a última parte apenas para listá-los (ou deixar de fora o -r se você quiser aprovar cada exclusão):

function git-show-orig {
    git status -su | grep -e"\.orig$" | cut -f2 -d" "
}

Quando faço uma resolução de conflito de mesclagem com o Kdiff3 (e outra ferramenta de mesclagem que tentei), notei que na resolução um arquivo *.orig é criado. Existe uma maneira de não criar esse arquivo extra?


Answer #1

Além das respostas corretas oferecidas como soluções de longo prazo, você pode usar o git para remover todos os arquivos desnecessários uma vez para você com o comando git clean -f mas use git clean --dry-run primeiro para garantir que nada não intencional aconteça.

Isso tem o benefício de usar a funcionalidade interna testada do Git em scripts específicos do seu sistema operacional / shell para remover os arquivos.


Answer #2

Ou apenas adicione

* .orig

ao seu gitignore global


Answer #3

Para ser claro, o comando git correto é:

git config --global mergetool.keepBackup false

Ambas as outras respostas têm erros de digitação na linha de comando que farão com que ele falhe ou não funcione corretamente.


Answer #4

Uma solução possível da git config do git config :

git config --global mergetool.keepBackup false

Depois de realizar uma mesclagem, o arquivo original com marcadores de conflito pode ser salvo como um arquivo com uma extensão .orig .
Se essa variável for configurada como false , esse arquivo não será preservado.
O padrão é true (ou seja, manter os arquivos de backup).

A alternativa é não adicionar ou ignorar esses arquivos, como sugerido neste artigo do gitguru ,

git mergetool salva a versão de conflito de mesclagem do arquivo com um sufixo “ .orig ”.
Certifique-se de apagá-lo antes de adicionar e confirmar a mesclagem ou adicione *.orig ao seu .gitignore .

Berik sugere nos comentários para usar:

find . -name \*.orig 
find . -name \*.orig -delete

Charles Bailey aconselha em sua resposta estar ciente das configurações internas da ferramenta diff, que também poderiam gerar esses arquivos de backup, não importando quais sejam as configurações do git.

  • O kdiff3 possui suas próprias configurações (consulte " Mesclagem de diretórios " em seu manual).
  • outras ferramentas como o WinMerge podem ter sua própria extensão de arquivo de backup (WinMerge: .bak , como mencionado em seu manual ).

Então você precisa redefinir essas configurações também.


Answer #5
git config --global mergetool.keepBackup false

Isso deve funcionar para Beyond Compare (como mergetool) também


Answer #6

Janelas:

  1. em Arquivo Win/Users/HOME/.gitconfig set mergetool.keepTemporaries=false
  2. No arquivo git/libexec/git-core/git-mergetool , na função cleanup_temp_files() adicione rm -rf -- "$MERGED.orig" dentro do bloco else.

Answer #7

Você tem que ter um pouco de cuidado ao usar o kdiff3 enquanto o git mergetool pode ser configurado para salvar um arquivo .orig durante a fusão, o comportamento padrão do kdiff3 é também salvar um arquivo de backup .orig independentemente do git mergetool .

Você precisa ter certeza de que o backup do mergetool está desativado:

git config --global mergetool.keepBackup false

e também que as configurações do kdiff3 estão definidas para não criar um backup:

Configure/Options => Directory Merge => Backup Files (*.orig)




version-control