2013-02-27 6 views
2

J'ai 20 fichiers dans mon dépôt foo1.c, foo2.c, ... foo20.c Je travaille sur foo2.cgit pull avec fusion partielle

Maintenant, chaque fois que je fais un git tire il tire dans et fusionne les changements à tous les foo * .c y compris foo2.c Je voudrais empêcher la fusion automatique des fichiers qui sont modifiés dans mon dépôt. Par exemple, quelqu'un pourrait avoir ajouté x = 20 à l'emplacement du fichier qui remplace ma modification de x = 0 en haut du fichier. Faire une fusion automatique des changements de Bob avec mes changements peut mener à des erreurs difficiles à détecter et si l'une de ces erreurs a le potentiel de redémarrer aléatoirement le mars mobile, je préférerais revoir manuellement chaque changement avant de le fusionner. Donc, avec ce fond je voudrais savoir s'il y a un moyen pour moi de tirer (récupérer + fusionner) des fichiers qui ne sont pas modifiés dans mon repo et seulement récupérer les changements qui affectent les fichiers que je modifie afin que je puisse faire un manuel diff fusion +

+0

J'ai trouvé la réponse sur http://stackoverflow.com/questions/3122056/how-to-get-3-way-merge-in-git-on-non-conflict-merges – vijayvithal

Répondre

1
  1. n'utilisez pas de variables globales.
  2. utilisation révision du code plutôt que de le faire ..
  3. ou dans le pire des cas, vous pouvez faire une diff git et voir ce que Bob a changé ...
+0

Je suis d'accord aveC# 1 Sur # 2 La question initiale était d'activer l'examen incrémental du code. pour mon équipe un pull git peut pullin changements à 100 de fichiers et la notification que certains fichiers ont été fusionnés peuvent se perdre dans le "bruit" donc je cherche une méthode pour toujours forcer un conflit si le fichier a été modifié localement et sur le serveur. par exemple. mon système de contrôle de version actuel donne un message d'erreur "fusion requise: le fichier a été modifié localement et sur le serveur" et laisse à l'utilisateur de faire une diff + fusion et tire les modifications restantes. Je n'ai pas compris # 3 pouvez-vous élaborer s'il vous plaît. – vijayvithal

+0

Travailler sur des branches locales, ne pousser que lorsque vous êtes prêt. Avoir un gardien qui intègre les branches pablées d'Alice, Bob et Charlie dans la branche officielle publiée. Rincez et répétez. – vonbrand

1

Faire un travail sur une branche locale, seulement tirer dans les branches officielles, fusionner/rebaser vos modifications sur la branche officielle (publiée) respective lorsque vous êtes prêt, pousser le résultat en amont. Non "Les changements de Bob fusionnés dans le travail à mi-chemin d'Alice ont tout gâché, et Charlie de QA a soufflé un joint".

+1

Je suis d'accord, votre réponse est meilleure que la mienne (qui consistait simplement à éviter la fusion, sans penser à la situation dans son ensemble). Donc, +1. – VonC

+0

Je retournerais la faveur, mais je suis fondamentalement en désaccord avec votre idée, alors ... – vonbrand