44 votes

Corriger le flux de travail Git pour la branche de fonctionnalité partagée?

Je suis à essayer de comprendre le droit de flux de travail pour cette situation:

Sur le partage des pensions, nous avons ces branches:

-master
-feature

La fonction de direction est partagée branche, car de nombreux développeurs travaillent sur une nouvelle fonctionnalité de l'ensemble. Ils sont activement en poussant leurs modifications apportées à la branche.

J'essaie d'éviter le "conflit de l'enfer" pour le jour de la fonctionnalité obtient finalement fusionné retour en maître. Actuellement, je vois quelques options:

1) Activement fusion maître en fonction de, et de le faire souvent. Cependant, ce n'est pas recommandé dans le git docs, et je commence à voir pourquoi. Quand je l'ai essayer, je semble corriger les mêmes conflits, encore et encore.

2) l'Utilisation de rebase, d'une certaine façon. J'ai lu sur cela, mais on dirait que ça ne marchera pas car la fonction de direction est en fait partagée. Tout ce qu'il faut est un développeur de faire 2 rebases, et d'autres développeurs pourraient avoir des conflits correspondent pas à l'histoire.

3) Activer la fonction de direction dans une direction de l'intégration, et ont les développeurs utilisent leur propre branches avec la relocalisation de garder les choses sane.

4) quelque Chose de complètement différent?

26voto

VonC Points 414372

Un partage de la branche, je voudrais aller avec #3, et l'utiliser comme une "intégration" de la direction générale de consolider leur travail.
Les développeurs utilisent rebase constamment leur relecture private branche sur le dessus de l' feature avant de recommencer leur travail à l' feature, de cette façon ils sont:

  • la résolution de tout conflit de fusion localement (dans leur propre repo)
  • prise de la dernière fusion (à partir de leur private branche d' feature) une banale (normalement avance rapide)

(comme décrit dans "git rebase vs merge" réponse)

L'idée est que, une fois feature de la branche doit être fusionnées en master, pas plus de contribution est acceptée, feature (la branche est "gelé"), et vous pouvez en toute sécurité rebase sur le dessus de l' master première, ou de fusionner directement à l' master.
Et puis vous commencez un nouveau feature de la branche (qui peut effectivement commencer en parallèle de la précédente feature direction si nécessaire)

5voto

Daenyth Points 11297

Vous pouvez utiliser rerere pour gérer les conflits de fusion que vous rencontrez plusieurs fois.

0voto

Dickon Reed Points 1835

(Je ne suis pas trop vif sur les options 1, 2 ou 3, donc j'essaie de trouver un meilleur flux de travail; je suis donc décrire ci-dessous la façon dont je pense à l'approche du problème, dans l'espoir que quelqu'un va me conseiller)

  1. Tournez la branche dans un patch de la file d'attente à l'aide de l'un des git patch file d'attente des outils.
  2. Utiliser un dépôt git pour contrôler la version du patch file d'attente
  3. Utilisez l'habitude git approches de collaborer sur le patch de la file d'attente.

Il pourrait être judicieux pour les gens à se tourner le patch file d'attente de retour dans une branche locale.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X