IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GIT Discussion :

Comment commiter proprement deux branches sur origin qui sont developpées en même temps ?


Sujet :

GIT

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 850
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 850
    Par défaut Comment commiter proprement deux branches sur origin qui sont developpées en même temps ?
    Bonjour,

    J'ai deux feature à developper, donc à partir de la branche dev, deux branches sont créées :
    Nom : Etat initial.png
Affichages : 149
Taille : 4,1 Ko
    ... les deux features sont développées par deux personnes différentes.

    Je veux qu'au final mon dépôt git origine ressemble à ça, que chaque branche soit visible de manière linéaire :
    Nom : Final.png
Affichages : 145
Taille : 5,4 Ko

    Le problème est comment faire si pendant le développement de feature 1 si je veux récupérer sur cette branche les commits en cours de feature 2 ?
    ... Si je fais un merge de feature 2 dans dev puis que je rebase feature 1 sur dev, je n'aurai pas le résultat escompté, la branche feature 2 ne sera pas intégrée à la branche dev de manière linéaire :
    Nom : Rebase.png
Affichages : 141
Taille : 6,0 Ko

    Merci par avance

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    Bonjour,
    Il me semble que c'est une question relative à la méthodologie de travail.

    1) On part d'une branche dev et on crée 2 branches basées sur dev pour développer séparément 2 features.
    2) Les 2 branches nouvelles évoluent chacune de leur côté.
    3.1) Si la feature 1 a besoin des commits de la feature 2, il faut effectivement faire comme tu as écrit mais si le développeur de feature 2 continue de développer sur sa branche, le développeur de la feature 1 n'aura effectivement pas les nouveaux commits de feature 2.
    3.2) Si la feature 2 est terminée, alors on remet dev au niveau de feature 2 et on supprime la branche de feature 2. Ainsi, la récupération de dev par le développeur de feature 1 aura tous les commits de feature 2... puisqu'il n'y en aura plus d'autre !
    4) Si une petite correction est nécessaire sur la feature 2, soit on rouvre une branche de correction, soit on la fait sur dev mais, dans les deux cas, le développeur de feature 1 devra faire la manip nécessaire à la récupération de la correction. Il n'y a pas de report automatique d'une branche à l'autre, quelles que soient ces branches. Les branches ont chacune leur vie propre.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 450
    Par défaut
    Re-bonjour,

    Citation Envoyé par boboss123 Voir le message
    Le problème est comment faire si pendant le développement de feature 1 si je veux récupérer sur cette branche les commits en cours de feature 2 ?
    ... Si je fais un merge de feature 2 dans dev puis que je rebase feature 1 sur dev, je n'aurai pas le résultat escompté, la branche feature 2 ne sera pas intégrée à la branche dev de manière linéaire
    En fait, ici et sous Git, master, dev, feature1 et feature2 ont toutes le même statut. Aucune branche n'a de statut « spécial » par rapport aux autres. Cela signifie qu'il t'est possible de fusionner directement l'état actuel de feature2 dans feature1 et de poursuivre leurs développements propres avant de les re-fusionner tour à tour dans dev au final.

    Au passage, c'est pour cela qu'il est important d'avoir un historique propre et de bien respecter la gestion de ces branches, parce que c'est justement ce qui va permettre à Git de retomber sur ses pattes et de savoir d'où il vient au départ quand on en arrive à faire ce genre de montage.

    Si tu as besoin de récupérer quelques modifications ponctuelles, tu peux utiliser cherry-pick à condition de ne pas en abuser car comme expliqué dans ton autre discussion, cela « plagie » le contenu d'un autre commit sans l'y relier directement. Vu de l'historique, on aurait l'impression que les développeurs auraient tous deux développé la même chose chacun de leur côté.

    La vraie question est : pourquoi veux-tu faire cela ? Est-ce purement esthétique ou y a-t-il une motivation derrière ? Je le demande car tu portes un soin particulier à tes commentaires pour être le plus clair possible mais qu'en principe, tu ne devrais être confronté que très rarement à ces situations.

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 850
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 850
    Par défaut
    Merci pour vos réponses

    Citation Envoyé par Obsidian Voir le message
    Re-bonjour,
    La vraie question est : pourquoi veux-tu faire cela ? Est-ce purement esthétique ou y a-t-il une motivation derrière ? Je le demande car tu portes un soin particulier à tes commentaires pour être le plus clair possible mais qu'en principe, tu ne devrais être confronté que très rarement à ces situations.
    Sur un projet, des merges ont été utilisés pour synchroniser les branches : le résultat est que quand je fais de la relecture de code, je trouve que c'est un peu le bazar sur le dépot origin quand ce genre de situation arrive : j'essaie de voir comment il aurait été possible d'avoir un dépot origin plus propre.

Discussions similaires

  1. Application sur Tomcat8 qui ne fonctionne pas en temps que service
    Par devTyty dans le forum Tomcat et TomEE
    Réponses: 0
    Dernier message: 25/11/2016, 12h55
  2. Réponses: 5
    Dernier message: 11/10/2009, 17h12
  3. Réponses: 10
    Dernier message: 30/11/2006, 19h47
  4. Comment éviter que google répete des mots qui sont dans la description du meta tag
    Par tese84 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 18/09/2006, 07h55
  5. Que deux événements qui se passent en même temps.
    Par Melchisedec dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 03/08/2003, 14h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo