Est-ce une bonne pratique d'avoir une branche distante pour chaque développeur?

11

Est-il considéré comme une bonne pratique d'avoir une branche distante pour chaque développeur individuel dans le projet?

Nous utilisons Git avec les branches suivantes:

  • Maître
  • Libération
  • développer

Si chaque développeur avait sa propre branche, il pouvait insérer du code dans ses branches et d'autres pourraient fusionner ces modifications dans leurs propres branches.

balanv
la source
1
Me rappelle les espaces de travail Accurev, sauf qu'ils ne sont pas liés à l'adresse MAC d'une machine particulière. Je l'aime.
Brandon
doublon possible de Brancher ou ne pas brancher?
gnat
1
Pourquoi nat a-t-il une branche unique pour chaque nouvelle fonctionnalité ajoutée?
Martin York
@Loki Ouais .. c'est une bonne idée ..
balanv

Réponses:

4

Non! Il est recommandé d'avoir un espace de noms de branche distante pour chaque développeur.

Une seule branche n'est souvent pas suffisante, donc le développeur finirait par la rembobiner beaucoup ou ce ne serait pas très utile. Vous voulez plutôt dire qu'un développeur peut pousser ce qu'il veut sous son nom/ . Ils peuvent l'utiliser pour publier des versions d'aperçu pour d'autres, en donnant une version à tester à quelqu'un d'autre ou même à quelqu'un d'autre à intégrer.

Vous pouvez également l'utiliser pour donner des branches à l'intégrateur ou utiliser des noms basés sur des tâches. Les noms basés sur les tâches sont généralement plus faciles à suivre pour l'intégrateur, mais incitent les développeurs à réfléchir davantage à la dénomination et les gens n'aiment pas penser. Je ne sais pas lequel fonctionnera mieux dans la pratique; pourrait même dépendre de l'équipe particulière.

Jan Hudec
la source
2

Je ne donnerais probablement pas à chaque développeur une branche sur le serveur central à moins d'avoir une sorte d'infrastructure de type github qui leur permette de créer et de détruire les branches elles-mêmes et de documenter clairement à quoi elles servent. Certains développeurs auront besoin de plus d'une branche et certains n'en auront pas besoin du tout, mais vous créez un encombrement pour tout le monde à trier et des frais administratifs pour vous-même.

J'encouragerais plutôt le genre de partage organique excitant. Il est très facile de créer un clone nu sur votre propre machine et de faire de ce dossier un partage SMB en lecture seule pour les autres. En fait, cela me surprendrait beaucoup si plusieurs de vos développeurs ne le font pas déjà.

Karl Bielefeldt
la source
1
Par défaut, tout le monde peut toujours créer une branche. Github permet de créer des référentiels entiers, mais c'est exagéré dans ce cas.
Jan Hudec
1

Cela dépend de l'organisation de votre équipe de développement et de vos tâches. À mon avis, le modèle que vous avez spécifié fonctionnerait mieux si:

  1. Chaque développeur travaille seul sur des tâches indépendantes.
  2. Tous les développeurs contribuent à la même tâche.

Si cela ne fonctionne pas bien, c'est si vous avez des projets de fonctionnalités simultanés en développement et qu'ils ont chacun plusieurs développeurs qui y travaillent.

Brandon
la source
1

Donner à chaque développeur sa propre branche peut être utile s'ils travaillent tous sur des choses différentes qui peuvent toucher les mêmes fichiers. Cela peut aider à éviter de marcher les uns sur les autres, mais il faudra que chacun fusionne souvent et soit responsable dans la gestion des conflits. C'est ce qui se fait dans mon bureau et cela fonctionne assez bien, à l'exception du rare jour où vous devez fusionner manuellement la moitié des fichiers que vous avez modifiés.

Si plusieurs développeurs travaillent sur la même fonctionnalité, il est probablement préférable de créer des branches basées sur la fonctionnalité en développement plutôt que sur le développeur.

Ryathal
la source
1

Si vous travaillez avec Git, vous devriez essayer de tirer des demandes.

En résumé, vous fusionnez d'abord la branche principale dans votre branche de travail actuelle. Tous les conflits de fusion seront dans votre branche locale. C'est bien parce que votre branche principale n'est jamais cassée. Si vous vous trompez vraiment, vous avez votre commit local auquel vous pouvez revenir.

Une fois la fusion terminée, vous demandez à un autre membre de l'équipe d'examiner et de fusionner votre branche dans la branche principale. Ne fusionnez jamais le vôtre! Tant que personne ne se faufile et ne fait une autre demande Pull, vous êtes assuré de fusionner avec succès. Étant donné que tout le monde est au courant de la demande d'extraction, vous ne devriez pas avoir plusieurs personnes fusionnant en même temps de toute façon.

Une fois que vous vous êtes habitué à ce processus, vous devriez essayer de fusionner aussi souvent que possible - une sorte d'intégration continue d'un pauvre. Moins il y a de temps entre les conflits, mieux c'est. Vous identifierez quand deux personnes dupliquent l'effort et qu'elles peuvent faire équipe. Certains endroits fusionneront chaque fois qu'ils remplissent une exigence, ce qui pourrait être toutes les deux heures. Je recommande de fusionner au moins une fois par semaine; sinon, vous devez mieux répartir vos tâches.

Je crée généralement une branche par tâche. Git est sympa car il distingue les commits et les push locaux. Cela offre certains des avantages de chaque personne ayant sa propre branche sans toute la complexité.

Parcs Travis
la source