2009-12-24 6 views

Répondre

3

Version courte: git pull est l'équivalent de fetch + fusion. Vous ne pouvez, par défaut, que pousser les changements "d'avance rapide", ce qui signifie que vous avez fusionné ou modifié vos modifications non validées. Contrairement à ce que Blaine suggère, push n'a rien à voir avec la fusion.

Version plus longue: Vous semblez ne pas comprendre comment fonctionne Git. Comme le contrôle de la source fait partie intégrante du développement de logiciels et que vous l'utilisez, je vous suggère de lire le fonctionnement du modèle de données de Git et d'implémenter différents workflows avec celui-ci. Excellente source: http://git-scm.com/documentation

+0

Donc je suppose qu'il serait logique d'avoir des conventions de nommage cohérentes lors de la branche d'un développement avec beaucoup d'autres utilisateurs distants? Supposons que nous ayons un Master avec quelques grandes branches "project_A" et "project_B". Si Fred et Barney veulent travailler sur "project_A", je suppose que vous pourriez avoir à la fois une branche "Fred_A" et "Barney_A" à partir de laquelle passer leurs tests et les commet afin qu'ils puissent FF leurs branches respectives et les pousser sans incident? De cette façon, en théorie, Wilma (l'administrateur) peut fusionner les changements de leurs branches à une date ultérieure ... Comment ça sonne? –

4

Demandez à chaque développeur de pousser dans le référentiel principal. Git est assez intelligent pour les fusionner, la plupart du temps.

$ git add . 
$ git commit -m 'committing my changes' 
$ git push origin master 

Depuis git push ne fusionne pas, vous pourriez avoir chaque pression de développeur à une branche sur le dépôt central, puis lorsque vous êtes prêt, connectez-vous à la machine qui héberge le repo central, et fusionnez-les avec git pull . <branch-name>. Assurez-vous simplement que git branch affiche un astérisque à côté de la branche principale avant la fusion.

+0

le push ne fusionne pas. –

+4

Comme noté par Alex, Git ne fusionnera pas sur une poussée. Cependant, vous pouvez toujours avoir chaque dev simplement pousser dans le repo principal; si, disons, Dev 1 poussait après que Dev 2 ait fait sa dernière mise à jour, Dev 2 aurait une erreur en poussant dans le repo, auquel cas il pourrait juste faire un git pull, fusionner les changements de Dev 1 dans son repo, puis pousser les nouveaux changements (fusionnés) dans le repo central. – mipadi

+0

Merci pour la clarification. –

Questions connexes