When I do a merge conflict resolution with Kdiff3 (and other merge tool I tried) I noticed that on resolution a *.orig file is created. Is there a way for it to not create that extra file?
When I do a merge conflict resolution with Kdiff3 (and other merge tool I tried) I noticed that on resolution a *.orig file is created. Is there a way for it to not create that extra file?
A possible solution from git config:
git config --global mergetool.keepBackup false
After performing a merge, the original file with conflict markers can be saved as a file with a
.origextension.
If this variable is set tofalsethen this file is not preserved.
Defaults totrue(i.e. keep the backup files).
The alternative being not adding or ignoring those files, as suggested in this gitguru article,
git mergetoolsaves the merge-conflict version of the file with a ā.origā suffix.
Make sure to delete it before adding and committing the merge or add*.origto your.gitignore.
Berik suggests in the comments to use:
find . -name \*.orig
find . -name \*.orig -delete
Charles Bailey advises in his answer to be aware of internal diff tool settings which could also generate those backup files, no matter what git settings are.
.bak, as mentioned in its manual).So you need to reset those settings as well.
You have to be a little careful with using kdiff3 as while git mergetool can be configured to save a .orig file during merging, the default behaviour for kdiff3 is to also save a .orig backup file independently of git mergetool.
You have to make sure that mergetool backup is off:
git config --global mergetool.keepBackup false
and also that kdiff3's settings are set to not create a backup:
Configure/Options => Directory Merge => Backup Files (*.orig)
If you're working on a Windows machine - you can turn off backups with this command
git config --global mergetool.keepBackup false
If you don't want to do that, you can easily delete all the .orig files using this powershell command
ls -Recurse C:\path\to\repository\*.orig | rm