2010-05-12 4 views
5

J'essaie de faire une fusion et il y a un tas de conflits. Comme tous les fichiers sont générés, ce que je veux faire c'est de dire "ignore tous les conflits de fusion et vérifie tout depuis mon propre dépôt".Accepter tous les conflits de fusion dans git

J'ai essayé

git checkout . --ours 
git add -A 
git com -a 

Il me donne une erreur mais parce qu'il ya des fichiers encore dans le seau « chemins non intégrés ». Comment puis-je gérer cela?

Merci!

+0

Etes-vous sûr qu'il ne vous a pas seulement donné une erreur parce que vous avez mis une option après le chemin au lieu d'avant? – Cascabel

+1

De plus, il y a toujours 'git merge -Xours', qui résout les conflits en utilisant" notre "version. (L'option "nôtre" est passée à la stratégie de fusion récursive.) – Cascabel

+0

Oh, je vois ce que vous voulez dire - vous obtenez une erreur du commit, pas la caisse. Répondez temps! – Cascabel

Répondre

5

Les commandes Git se méfient énormément de la dissimulation de conflits - vous devez à peu près explicitement archiver un fichier en conflit pour lui faire savoir qu'il est corrigé. Il semble étrange qu'il n'y a pas une option de style -f pour git add de faire savoir que vous voulez vraiment dire, mais voici un alias que j'ai ce qui contribuera à:

add-unmerged = \ 
    "!f() { git ls-files --unmerged | cut -f2 | sort -u ; }; git add `f`" 

pointe Bonus: si vous changez « ajouter git » à $ EDITOR, vous avez maintenant edit-unmerged, pour éditer tous les fichiers en conflit!

4

Utilisez un custom merge driver:
vous pouvez déclarer que le pilote dans un .gitattributes situé dans le bon répertoire (celui avec les fichiers générés dont la fusion vous ne voulez pas traiter)

* merge=keepMine 

(vous pouvez spécifier un modèle plus précis pour isoler les fichiers exacts concernés par cette fusion personnalisée)

avec la config:

[merge "keepMine"] 
     name = always keep mine during merge 
     driver = keepMine.sh %O %A %B 

Voir "How do I tell git to always select my local version for conflicted merges on a specific file?" pour un exemple complet.

+0

Ah, bon appel. Je supposais que l'OP voulait toujours (ou devait) saisir manuellement les versions correctes des fichiers, mais comme ils sont générés, il devrait être possible de les cibler tous avec un pilote de fusion! – Cascabel

Questions connexes