CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Organisation Git

allezQPlus
allezQPlus
Niveau 10
20 novembre 2015 à 16:38:17

Salut,

Je dois mettre en place un Git dans ma boîte et j'ai libre cours à ma fantaisie pour en gérer l'organisation, seulement j'ai pas trop envie que ce soit le bordel donc je viens demander vos avis ici, histoire de voir si je fais pas n'importe quoi.

En gros, pour chaque projet, j'ai envie de faire un repository qui ressemble à ça :

  • 1 branche Master
  • 1 branche par bug levé par le client
  • 1 branche à chaque fois qu'un développeur se lance dans une nouvelle fonctionnalité
  • 1 branche livraison :
    • 1 sous-branche par livraison (la version) contenant le Master et les branches non mergées (s'il y en a)

Le but c'est que la branche Master reste à jour avec un mec qui va se charger de Merge les bugs et les fonctionnalités.

Maintenant je me pose 2 questions/remarques :

  • Est-ce une bonne pratique de supprimer les branches une fois que leur contenu est intégré dans le Master ?
  • Est-ce grave de ne pas avoir de branche par développeur ? Je sais que beaucoup font ça mais je n'arrive pas à y voir l'utilité.

Merci !

1234_bou
1234_bou
Niveau 9
20 novembre 2015 à 17:00:22

Si c'est la première fois que tu fais un projet à plusieurs, je te conseil de faire deux branches :

-La branche Master
-La branche Develop

La branche Master contient du code fonctionnel et testé à TOUT MOMENT. Cela veut dire que si je viens sur votre git et que je fais un git clone + compilation, le code roule sans plus d'effort.

La branche Develop contient la dernière version qui est fonctionnel mais pas forcément tester. Cela veut dire qu'il peut y avoir des bugs sous jacent parce que aucun unit test n'a été produit mais qu'en générale, dans un cadre particulier ou attendu, le code fonctionne. Un git clone + compilation doit marcher. Attention, à AUCUN MOMENT un membre de ton équipe ne doit push une version qui ne marche pas/compile pas. C'est vraiment important.

Enfin, si tu veux garder un historique du master (pour les livrables), tu peux faire un milestone sur github afin d'indiquer la version d'un livrable spécifique, et encore mieux, tu peux garder les versions binaires des exécutables dans un dossier dans le Master. Ainsi, si tu veux chercher ton livrable 2, il te suffit de revenir dans l'historique de ton Master.

Je te déconseille, pour une première fois de dépasser 2 branches. C'est du pure suicide car beaucoup de problème de merge vont arriver.

1234_bou
1234_bou
Niveau 9
20 novembre 2015 à 17:03:17

Est-ce une bonne pratique de supprimer les branches une fois que leur contenu est intégré dans le Master ?

Du moment que tu ne supprime pas l'historique, c'est acceptable. Attention au local vs remote dans tous les cas.

Est-ce grave de ne pas avoir de branche par développeur ? Je sais que beaucoup font ça mais je n'arrive pas à y voir l'utilité.

En entreprise, il n'y a que une branche develop par équipe. C'est dire... C'est une très mauvaise pratique d'avoir une branche par développeur.

PCOffender
PCOffender
Niveau 10
20 novembre 2015 à 18:48:15

Disclaimer : je ne suis pas un pro de git, j'ai juste deux-trois questions qui me titillent par rapport aux posts ci-dessus :hap:

1 sous-branche par livraison (la version) contenant le Master et les branches non mergées (s'il y en a)

Pourquoi pas simplement des tags ?

Est-ce grave de ne pas avoir de branche par développeur ? Je sais que beaucoup font ça mais je n'arrive pas à y voir l'utilité.

Même chose, je comprends le but du "1 branche par issue/par feature" mais "par développeur" je vois pas :(

La branche Master contient du code fonctionnel et testé à TOUT MOMENT. Cela veut dire que si je viens sur votre git et que je fais un git clone + compilation, le code roule sans plus d'effort.

C'est plus pratique pour quelqu'un qui veut tester le code, mais est-ce que ce n'est pas plus pratique pour l'ensemble des développeurs que la master soit la branche de dév et qu'il y ait une branche stable/livrables à côté ?

Je te déconseille, pour une première fois de dépasser 2 branches. C'est du pure suicide car beaucoup de problème de merge vont arriver.

Tu déconseillerais d'avoir une branche par issue/feature du coup ? Ca risque pas de devenir le bordel sur la develop que tu conseilles ? Et si des dévs veulent travailler sur une feature en parallèle ? Ils se basent sur un fork d'un "chef de feature" ? :(

1234_bou
1234_bou
Niveau 9
20 novembre 2015 à 19:34:32

C'est plus pratique pour quelqu'un qui veut tester le code, mais est-ce que ce n'est pas plus pratique pour l'ensemble des développeurs que la master soit la branche de dév et qu'il y ait une branche stable/livrables à côté ?

:d) Ca revient au même. Au final tu fais deux branches, une de dev et l'autre de livrable/stable. Habituellement, le master est la branche de livrable. Pourquoi ? Simplement parce que c'est la Main branch. Y'a pas de git sans Master branch. C'est pour ca qu'il est normalement la branche stable.

Tu déconseillerais d'avoir une branche par issue/feature du coup ? Ca risque pas de devenir le bordel sur la develop que tu conseilles ? Et si des dévs veulent travailler sur une feature en parallèle ? Ils se basent sur un fork d'un "chef de feature" ?

:d) Tout dépends du niveau de skill des développeurs. Si tu as une TRES GROSSE features, alors oui, le conseil d'avoir une nouvelle branche qui fork du DEVELOP branch est une possibilité, pas du master. Sinon, des branches en local seulement suffise largement dans la plupart du temps. Ce que je veux dire c'est que un one man job, ce n'est habituellement pas une TRES GROSSE features quoi. Du coup, un branche suffit pour dev.

De plus dépendamment du langage, tu peux faire en sorte que ton code compromettant soit quand même mis sur git mais soit ignorés pour ne rien briser(en C/C++ les #ifdef sont tes amis). Attention, ca doit quand même marcher dans le cadre normale de son exécution si tu les actives.

allezQPlus
allezQPlus
Niveau 10
20 novembre 2015 à 19:54:35

Merci pour vos réponses.
Je pense que je vais garder le 1 branche / issue parce que ça sera plus pratique pour nous.

@1234_bou: Le principe de milestone a l'air intéressant et je débute sur Git, je ne connaissais pas cette feature mais nous passons par EGit (plugin de Eclipse) qui ne gère apparemment pas les milestones ^.^.

@PCOffender: Pour les tags, idem que pour les milestones, je ne connaissais pas cette feature, je vais regarder si c'est faisable au travers de EGit.

En ce qui concerne la notion de fork, je ne sais pas si c'est une notion uniquement présente sur GitHub ou si ça fait partie de Git mais nous ne passons pas par GitHub, notre remote repository est sur notre intranet.

Je suppose que si j'installe Git normalement (pas le plugin d'Eclipse), j'aurai accès à ces features mais je me demande s'il ne risque pas d'y avoir un conflit entre les 2, je n'ai jamais vraiment utilisé ça en fait, les seules fois où j'utilisais un gestionnaire de version c'était du googlecode et c'était à l'arrache à base de push/overrides pour des projets à l'université :p

Je reviendrai sûrement lundi pour vous tenir au courant de ce que j'ai mis en place ou pour vous poser d'autres questions :)

Message édité le 20 novembre 2015 à 19:56:17 par allezQPlus
1234_bou
1234_bou
Niveau 9
20 novembre 2015 à 20:22:02

Le fork est commun a git, github n'est qu'une jolie interface de Git :noel:

allezQPlus
allezQPlus
Niveau 10
27 novembre 2015 à 09:48:46

On a décidé de partir sur une branche par Issue et une branche Master. On va faire des tags pour les livraisons :) Merci à vous

dark_drow
dark_drow
Niveau 15
27 novembre 2015 à 10:12:06

je te conseille une branche master pour le code stable / livrable
une branche hotfix pour les bugs sur master (que tu kill après)
une branche develop qui est une branche théoriquement stable pour les dev
une branche release quand la dev est en passe de passer en master pour une livraison
une branche par feature que tu merge dans develop quand c'est stable (et delete après)

Ca permet de rester carré sur les process

https://www.atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment