Lorsque je fais une résolution de conflit de fusion avec Kdiff3 (et un autre outil de fusion que j'ai essayé), j'ai remarqué qu'à la résolution, un *.orig
fichier est créé. Existe-t-il un moyen de ne pas créer ce fichier supplémentaire?
la source
Lorsque je fais une résolution de conflit de fusion avec Kdiff3 (et un autre outil de fusion que j'ai essayé), j'ai remarqué qu'à la résolution, un *.orig
fichier est créé. Existe-t-il un moyen de ne pas créer ce fichier supplémentaire?
Une solution possible à partir de git config
:
git config --global mergetool.keepBackup false
Après avoir effectué une fusion, le fichier d'origine avec des marqueurs de conflit peut être enregistré en tant que fichier avec une
.orig
extension.
Si cette variable est définie sur,false
ce fichier n'est pas conservé.
Par défauttrue
(c'est- à -dire conserver les fichiers de sauvegarde).
L'alternative étant de ne pas ajouter ou ignorer ces fichiers, comme suggéré dans cet article de gitguru ,
git mergetool
enregistre la version en conflit de fusion du fichier avec le.orig
suffixe « ».
Assurez-vous de le supprimer avant d'ajouter et de valider la fusion ou de l'ajouter*.orig
à votre.gitignore
.
Berik suggère dans les commentaires d'utiliser:
find . -name \*.orig
find . -name \*.orig -delete
Charles Bailey conseille dans sa réponse d'être conscient des paramètres internes des outils de diff qui pourraient également générer ces fichiers de sauvegarde, quels que soient les paramètres git.
.bak
comme mentionné dans son manuel ).Vous devez donc également réinitialiser ces paramètres.
git config --global mergetool.keepBackup false
, Résolu pour P4Merge sur Mavericks 10.9.2. Merci :)keepBackup = false
sous[mergetool]
, pas sous[mergetool "BeyondCompare4"]
ou quel que soit l'outil de fusion visuel que vous avez configuré.Vous devez être un peu prudent avec l'utilisation
kdiff3
car tant que vousgit mergetool
pouvez être configuré pour enregistrer un.orig
fichier pendant la fusion, le comportement par défaut dekdiff3
est également d'enregistrer un.orig
fichier de sauvegarde indépendamment degit mergetool
.Vous devez vous assurer que la
mergetool
sauvegarde est désactivée:et aussi que les paramètres de kdiff3 sont définis pour ne pas créer de sauvegarde:
la source
Configure/Options => Directory Merge => Backup Files (*.orig)
vraiment aidé à se débarrasser de tous les étranges io-esclaves, klauncher «» protocole inconnu, et n'a pas pu créer d'erreurs .orig. mercigit config --global mergetool.keepBackup false
-il régler?Pour être clair, la commande git correcte est:
Les deux autres réponses ont des fautes de frappe dans la ligne de commande qui entraîneront l'échec ou ne fonctionneront pas correctement.
la source
L'option d'enregistrement du fichier .orig peut être désactivée en configurant KDiff3
la source
J'utilise ceci pour nettoyer tous les fichiers se terminant par ".orig":
Si vous êtes un chat effrayé :) vous pouvez laisser la dernière partie juste pour les lister (ou laisser la
-r
si vous voulez approuver chaque suppression):la source
J'utilise simplement la commande
vérifiez que seul le fichier que je souhaite supprimer est répertorié, puis
la source
Outre les bonnes réponses proposées comme solutions à long terme, vous pouvez utiliser git pour supprimer tous les fichiers inutiles une fois pour vous avec la
git clean -f
commande, mais utilisez d'git clean --dry-run
abord pour vous assurer que rien ne se produirait.Cela a l'avantage d'utiliser les fonctionnalités intégrées testées de Git sur des scripts spécifiques à votre système d'exploitation / shell pour supprimer les fichiers.
la source
Ou ajoutez simplement
* .orig
à votre gitignore mondial
la source
Cela devrait également fonctionner pour Beyond Compare (comme mergetool)
la source
Les fenêtres:
Win/Users/HOME/.gitconfig
ensemble de fichiersmergetool.keepTemporaries=false
git/libexec/git-core/git-mergetool
, dans la fonctioncleanup_temp_files()
addrm -rf -- "$MERGED.orig"
dans le bloc else.la source