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 :

Système de branches mises à jour ou non


Sujet :

GIT

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Fullstack (Python)
    Inscrit en
    Janvier 2011
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Fullstack (Python)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2011
    Messages : 52
    Par défaut Système de branches mises à jour ou non
    Bonjour,

    Je commence à utiliser git depuis quelques mois maintenant.
    Après avoir lu pas mal de docs je me pose toujours une question concernant les branches.

    Prenons le cas d'un projet où on a trois branches :

    master : Branche en cours de développement
    1.1.1 : Branche stable dérivée de master qui ne reçoit que des correctifs.
    calendrier : Branche expérimentale qui doit recevoir les correctifs et les nouvelles fonctionnalités

    Je vais prendre ensuite deux cas :

    Premier cas : je corrige un bug sur le site puis je commit. Mes deux branches seront alors mises à jour lorsque je ferai un git pull sur mes branches.

    Deuxième cas : je développe une nouvelle fonctionnalité et je veux qu'elle apparaisse sur ma branche "master" et sur ma branche "calendrier" sans qu'elle se retrouve sur ma branche 1.1.1.

    Pour le premier cas, c'est exactement ce qui se passe lorsque je commit sur "master".
    Pour le deuxième cas, je ne sais pas comment faire. Avez-vous une idée de comment je peux faire cela ?

    Question supplémentaire : Si a chaque correctif je veux incrémenter la version de mon 1.1.1 en 1.1.2 je dois créer une nouvelle branche ? Ou alors je dois utiliser de systèmes commes les tags ? En tous cas que faut-il faire pour que ce soit "propre" ?

    Merci d'avance pour vos réponses

  2. #2
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    Le principe générale c'est de créer une branche dès lors que le travail diverge.
    j'ai eu tendance à abandonner "master" (ou trunk sous SVN) car (et pour d'autres raisons) il est souvent difficile de spécifier ce qu'elle contient exactement.

    Dès lors que tu figes quelque chose, tu peux utiliser des tags légers (en fait ce sont simplement des étiquettes sur des commit, comme HEAD, FETCH_HEAD). Lorsque tu génères une nouvelle release, certains conseillent d'utiliser des tags signés. Néanmoins, certains préfère utiliser des branches car elles sont faciles à gérer.

    Concernant le travail avec des branches :
    • Tu développes généralement sur une branche principale
    • Ensuite tu fais une déploies la version (après plusieurs essais) et tu crées un tag ou une branche (ex: 1.0)
    • A ce moment là, si ta version peut recevoir des maintenances, tu crées une branche spécifique (ex: 1.0.X)
    • Si tu dois faire un patch sur cette version
      • Soit tu crées une branche dédiée basée sur la précédente (ex: 1.0.1)
      • Soit tu continues de travailler sur la même branche (ex : 1.0.X) et que tu as finis de travailler tu crées le tag ou la branche correspondant au patch (ex: 1.0.1)
    • Si tu dois reporter les modifications, tu merges (ou cherry pick) vers la branche que tu souhaites.
    • Je te conseille de nommer les branches expérimentales de manière explicite (ex: PoC_XXX)



    Si ce n'est pas fait, je te conseille de lire Pro Git et notemment le chapitre Git distribué (qui aborde l'organisation du travail et l'utilisation de Git)
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Fullstack (Python)
    Inscrit en
    Janvier 2011
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Fullstack (Python)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2011
    Messages : 52
    Par défaut
    Merci beaucoup,

    je pensais qu'il y avait une sorte de solution miracle mais apparemment non.

    Tant pis, j'appliquerai mes patch sur les branches spécifiques.

    Bonne soirée et merci

  4. #4
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    Citation Envoyé par hallbid Voir le message
    je pensais qu'il y avait une sorte de solution miracle mais apparemment non.
    "merge" fait le boulot tant qu'il n'y a pas de conflit.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

Discussions similaires

  1. Mise à jour apk non marchand
    Par PapyBulleur dans le forum Android
    Réponses: 5
    Dernier message: 03/09/2012, 17h38
  2. [requête sql] Mise à jour si non renseigné
    Par jeanphi45 dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 12/10/2011, 15h13
  3. Réponses: 10
    Dernier message: 28/12/2005, 21h52
  4. [Système] mise à jour d'un fichier .htpasswd
    Par ikkyu_os dans le forum Langage
    Réponses: 4
    Dernier message: 15/09/2005, 10h25
  5. système de mise à jour automatique
    Par eponette dans le forum Web & réseau
    Réponses: 2
    Dernier message: 24/08/2005, 20h17

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