2010-06-23 10 views
3

Comment forcer "mes modifications" lors de la fusion dans git? Quelqu'un a mis tous les répertoires bin dans git et maintenant j'ai un terrible conflit de fusion :(Comment utiliser mes modifications pour fusionner dans git?

Maintenant, il dit ceci:

Lorsque vous avez résolu ce problème run « git rebase --continue » Si. vous préférez sauter ce patch, à la place exécuter « git rebase --skip ». pour restaurer la branche d'origine et d'arrêter course rebasage « git rebase --abort ».

Je ne veux pas fusionner, je viens de wan t pour supprimer tous ces fichiers en utilisant mes changements.

EDIT: La plupart des fichiers ont été fusionnés avec succès, soit par fusion automatique, soit parce qu'il n'y avait pas de conflit. Cependant, quelques-uns existent encore comme le suivant.

Avertissement: Impossible de fusionner des fichiers binaires: src/rapports/obj/Debug/TempPE/GroupMailDS.Designer.cs.dll (HEAD contre gitignore ajouté)

+0

Peut-être que vous avez besoin de fournir plus de détails sur les conflits, mais ne pouvez-vous pas faire 'git rm' sur les fichiers que vous ne voulez pas; réparer les conflits réels restants et 'git rebase --continue'? –

+0

Mis à jour la question – mhenrixon

Répondre

8

Je ne suis pas sûr à 100% à ce sujet, mais je pense que c'est un bon exemple pour cela:

git merge otherbranch -s recursive -X ours 

Cette commande tente de fusionner le sujet branchez-vous dans votre branche empruntée en utilisant la stratégie récursive. L'option -X ours est un sous-ensemble de la stratégie récursive qui résout automatiquement les conflits en faisant l'hypothèse que votre branche actuellement empruntée fait autorité.

+2

Je dois essayer cela parce que si cela fonctionne c'est la grandeur au-delà de la puissance de la darkside pour toute personne responsable de Jedi/maître! – mhenrixon

+0

Wow! C'est exactement ce que je cherchais. Parlez de la vitesse ridicule! :) Je crois que c'est une situation parfaite pour l'utiliser. Tout ce que je voulais, c'était écraser l'autre branche avec mes changements en cas de conflit même si ce n'était pas exactement ce que je demandais :) – mhenrixon

1

Vous pouvez:

  • git rm le répertoire obj (qui contient tous les fichiers binaires et ne doivent pas avoir été commis en premier lieu)
  • ajouter un .gi tignore directive pour s'assurer que tout futur répertoire obj n'apparaîtra pas dans le git status (et ne sera pas ajouté)
  • git push cette nouvelle arborescence, aidant à propager le fait que le répertoire 'obj' devrait disparaître des autres dépôts Git ainsi (ce qui ne déclenche aucune fusion).

Si vous pouvez avoir le consentement de tous les autres participants, vous pouvez:

Mais puisqu'il s'agit de remplacer l'historique publié par un nouveau, cela ne devrait être fait que si les autres utilisateurs sont d'accord.

+0

Cela a du sens. Je n'ai jamais pensé à supprimer le répertoire :) – mhenrixon

0

Je suppose que vous pouvez simplement remplacer leurs binaires par les vôtres (car aucune fusion n'est vraiment possible) ou simplement git rm les binaires indésirables. Une fois que vous avez fait, juste git rebase --continue

+0

Ou encore mieux, comme VonC a suggéré de git rm le répertoire – mhenrixon

Questions connexes