107 votes

Flux de travail git production/mise en scène server

Actuellement mon site web (serveur de production) ont déjà beaucoup de code. Et maintenant, je veux commencer à utiliser Git pour mes projets d'installation et de configuration d'un serveur de test pour mon équipe. Quelqu'un peut-il me conseiller?

Voici l'image dans mon esprit:

        Production        - Production server which already have codes
            ↑             
         Staging          - New staging server, will install Trac too
         ↗↙ ↖↘          
  Developer1  Developer2  - Local development 

Ma question est, comment dois-je commencer?

Voici quelques étapes dans mon esprit:

  1. faire un git init dans le serveur de production (est-ce bien sûr?)
  2. clone le repo de la production à la mise en scène serveur
  3. les développeurs clone le repo de la mise en scène de leur machine locale
  4. push fichiers sur le serveur de test après avoir terminer la modification de
  5. lors de la mise en scène est prête, push tout à la production

Ne ce flux de travail, de sens, ou il ya une meilleure façon de le faire?

Que faire si je ne veux modifier un fichier?

N'origin/master n'a rien à voir avec elle dans ce processus?? Qui en est l'origine? je vais finir par avoir plusieurs origines??

Aussi, quand un développeur branch dans ce cas?

58voto

bUg. Points 632

Il est préférable d’utiliser la branche master uniquement pour la Production et la direction du développement pour la mise en scène. Chaque développeur doit créer une succursale locale pour ajouter de nouvelles fonctionnalités, puis de fusionner avec la direction du développement. Si vous débutez en un git, essayez d’utiliser - http://github.com/nvie/gitflow il est également bon tableau décrivant le modèle de ramification git - http://nvie.com/posts/a-successful-git-branching-model/

18voto

Felixyz Points 10705

Votre suggestion semble ok, mais je ne voudrais pas laisser les développeurs de pousser directement sur le serveur de test. Au lieu de cela, un intégrateur devraient examiner soigneusement les branches et de les incorporer dans la branche principale (ou de la direction du développement si vous utilisez git modèle de flux comme suggéré par bUg.) * La même personne de les pousser vers le serveur intermédiaire.

* Intégrateur: "Un assez centrale personne agissant à titre d'intégrateur dans un projet de groupe reçoit des modifications apportées par les autres, les examens et les intègre et publie le résultat à utiliser pour les autres..."


1. faire un git init dans le serveur de production (est-ce bien sûr?)

Oui c'est sûr, mais, bien sûr, vous devez définir des autorisations plus restrictives sur ce repo. Je serais probablement commencer par curling l'ensemble du site web sur un disque local, si je ne l'est pas déjà.

2. cloner le repo de la production à la mise en scène serveur

Vous devriez probablement avoir une "centrale" repo distinct à la fois de la production et de la mise en scène du serveur. Que l'on peut être cloné et poussé comme nécessaire.

3. les développeurs de cloner le repo de la mise en scène de leur machine locale

4. poussez les fichiers vers le serveur intermédiaire après avoir terminer la modification de

5. lors de la mise en scène est prête, appuyez tout à la production

Remplacer "mise en scène", avec "central" et je pense que vous êtes ok, mais une plus grande question est de savoir comment vous allez travailler avec des branches et de la fusion, comme le bUg des points.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X