Hello,
Je cherche à mettre en place un workflow git, mais je ne l'ai jamais utilisé.
Je plante le décore, soit une équipe de 5 personnes, actuellement c'est l'anarchie, tout le monde travail en LIVE sur la prod, avec bien évidement les problèmes qui vont avec ....
Pour faire que tout ça soit encore plus sympa, c'est codé avec les pieds par des stagiaires, ou des personnes issus peut-être du monde agricole (sans dénigrer personne ;-) ) , en php et js à coup de echo "code HTML"; de partout.
J'ai à dispo maintenant 2 serveurs : 1 prod et 1 preprod. Chaque preprod ont un sous-domaine par user pour utiliser ses propres fichiers et une base de données commune. La preprod à un domaine à elle pour tout tester avant de proder tout le site.
A la place de ultraedit++, ils vont utiliser netbeans 8.2.
Comment faire pour utiliser git correctement dans cet environnement ?
Plus précisément, comment devrait bosser les gars, sachant qu'une seule personne va fusionner les versions ?
Où devrais-je stocker le dépôt principal ? Quelle commandes dois-je utiliser ? Et enfin, en cas de conflit existe t-il une interface pratique?
D'avance merci à tous.

Amicalement

Stéf

6 réponses


Bonjour,

Je conseille d'apprendre Git qui permet, comme SVN, Mercurial ou CVN, la gestion de version.
Ensuite tu utilise un Workflow (c.à.d. une méthode de travail avec le logiciel).

Ci-dessous un article qui présente les worfklow GIT. Si cela peut t'aider :
workflow git

En espérant te donner les première pistes.

stefkpl
Auteur

Merci Samuel,
J'ai bien regardé et analysé ce que tu m'a donné comme lien. J'ai du coup regardé du côté de git-flow.
Cependant cela ne répond que partiellement à ma demande. En effet je comprend bien que je dois "apprendre" GIT, mais ce dont j'ai besoin pour l'apprendre c'est une méthodologie de mise en application. J'ai déjà essayé de pratiquer sans trop de succès.
Initialement, je ne sais pas ce qu'il est bon de faire pour stocker mes sources afin de centraliser les dépôts. Dans une dossier spéciale du serveur ? Dans le preprod ? La prod ? etc...
C'est plus de l'organisationnel que j'ai besoin, ensuite, l'utilisation se fera naturelement.
Je n'ai jamais travaillé de mon côté en collaboratif et l'équipe non plus. Je dois du coup mettre en place toute une méthodologie claire que je dois maitriser avant de leur donner les instructions de travail.
Ce que j'aime dans la philosophie de git-flow, c'est la notion de master / devellopement / features / hotfix.
Si je devais faire un parallèle avec mes besoins, master c'est ma prod, devellopement la preprod et features les dev qui patch ou ajoute des fonctions. Donc je repose la question plus dans son contexte, comment je devrais mettre cela en place ? Comment doit-on procéder pour être "dans la norme", c'est-à-dire une utilisation dite classique de GIT. Je ne pense pas être le seul à vouloir utiliser une tel architecture.
Merci encore

Cette vidéo explique plutôt bien les principes de Git et l'utilisation de Github avec la méthodologie de base https://www.youtube.com/watch?v=V6Zo68uQPqE

stefkpl
Auteur

Merci LuD-up, très bon meetup.

Je reste quand même sur ma faim. Suis-je obligé de passer par Github ? J'espère que non!

Je suis à la recherche d'une mise en situation basée sur mon archi (vidéos, tutos). Utiliser en local GIT, ça j'ai bien assimilé.

Maintenant comment je déploie mes mise à jour ? Dois-je voir ma prod comme un user utilise mes dépôts? Idem pour la preprod ?
Comment faite vous sur ce point ?
Plus simplement comment ça doit se passer quand les utilisateurs veulent interagir avec un dépôt centralisé et où dois-je le mettre ?
Dois-je installer une application tiers sur mon serveur ?
C'est vraiment sur cet aspect que je bute, pas sur GIT tout seul.
Je sais, ça fait plein de question, mais pour le moment je ne trouve pas de réponse :-/.

Merci encore

Comme l'a dit Blobby tu peux utiliser gitlab pour avoir ton propre remote de code ou tu peux utiliser github/bitbucket pour éviter pas mal de galères. Si tu utilises bitbucket tu peux mettre en place pas mal outil d'automatisation pour les déploiements du code sur ta preprod et prod avec des pipelines, etc. Après a toi de voir jusqu'a qu'elle niveau tu veux aller et aussi voir la courbe apprentissage des tes équipes. Déjà mettre git sur ta prod et preprod, le configurer en remote et bloquer le ftp, serais un bon début ^^.

stefkpl
Auteur

Hello à tous, après plusieur testes j'ai enfin trouvé en m'appuyant sur vos retours.
J'avais un petit VPS OVH qui ne me servait pas et j'y ai installé gitlab (au passage 1 core et 2 Go de ram c'est pas assez pour lui).
J'ai crée un compte pour commencer, créé un groupe puis un project et enfin j'ai poussé mon code initial à partir de netbeans.

A l'utilisation, j'ai enfin compris comment fonctionne GIT.
Ce que surement certaines personnes savent ici et d'autre non ;-), c'est que le git local est auto-dependant et on ne fait que répliqué son contenu dans les 2 sens. C'est peut-être con mais si c'est pas assimilé dès le début, bah ça commence mal.

Ensuite, j'ai bien compris qu'il faut un serveur tiers pour simplifier, j'aurai pu le faire avec le même que j'utilise, mais gitlab est une véritable usine à gaz...

Du coup j'ai un workflow simple, 2 branches de base, une master, une preprod. Master en lecture seule pour les non "admin", ça m'évitera les régressions. Toutes les branches des dev partent de preprod sous la forme : feature_user_ca_sert_à_quoi .
On code et on teste, on fait quelques commit pour faire des images de notre code, quand c'est bon on fait une merge request après avoir fait un git push origine/feature_user_ca_sert_à_quoi, pour fusionner avec la preprod et tester sur le serveur preprod. Quand c'est fusionné il faut penser à supprimer la branche local.
Enfin, quand c'est tout bon, je merge sur master et en ssh sur le serveur, je fais ungit pull origine/master et hop je suis à jour.
En cas de casse, je peut revenir en arrière assez facilement du coup.

Merci à tous.

Amicalement

Stéf