web-dev-qa-db-fra.com

Flux de travail du serveur de production / transfert Git

Actuellement, mon site Web (serveur de production) contient déjà beaucoup de code. Et maintenant, je veux commencer à utiliser Git pour mes projets et configurer un serveur de transfert pour mon équipe. Quelqu'un peut-il me donner des conseils?

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. fait une git init dans le serveur de production (est-ce sûr?)
  2. clone le dépôt de la production au serveur intermédiaire
  3. développeurs clone le dépôt du staging à leur machine locale
  4. Push fichiers vers le serveur intermédiaire après avoir terminé la modification
  5. lorsque la mise en scène est prête, Push tout à la production

Ce flux de travail est-il logique ou existe-t-il une meilleure façon de le faire?

Que faire si je ne souhaite modifier qu'un seul fichier?

Est-ce que Origin/master y est pour quelque chose? Quelle est l'origine? vais-je finir par avoir plusieurs origines ??

De plus, quand un développeur doit-il utiliser branch dans ce cas?

107
kayue

Il est préférable d'utiliser la branche principale uniquement pour la branche Production et développement pour la mise en scène. Chaque développeur doit créer une branche locale pour ajouter de nouvelles fonctionnalités, puis fusionner avec la branche de développement. Si vous êtes nouveau dans un git, essayez d'utiliser - http://github.com/nvie/gitflow Il y a aussi une bonne image décrivant le modèle de branchement git - http: // nvie .com/articles/un modèle de branchement-git réussi /

58
bUg.

Votre suggestion semble correcte, mais je ne laisserais pas les développeurs pousser directement vers le serveur de transfert. Au lieu de cela, un intégrateur devrait examiner attentivement les branches et les incorporer dans la branche principale (ou la branche de développement si vous utilisez le modèle de flux git comme suggéré par bUg.) * La même personne pousserait vers la mise en scène serveur.

* Intégrateur: " ne personne assez centrale agissant en tant qu'intégrateur dans un projet de groupe reçoit les modifications apportées par d'autres, les examine et les intègre et publie le résultat pour que d'autres puissent l'utiliser ... "


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

Oui, c'est sûr, mais vous devez bien sûr définir des autorisations très restrictives sur ce dépôt. Je commencerais probablement par curling l'ensemble du site Web sur un disque local, si je ne l'ai pas déjà.

2. cloner le référentiel de la production au serveur intermédiaire

Vous devriez probablement avoir un dépôt "central" distinct à la fois du serveur de production et du serveur intermédiaire. Celui-ci peut être cloné et poussé au besoin.

3. les développeurs clonent le dépôt du staging sur leur machine locale

4. Poussez les fichiers sur le serveur de transfert après avoir terminé de modifier

5. lorsque la mise en scène est prête, Poussez tout à la production

Remplacez "staging" par "central" et je pense que vous allez bien, mais le plus gros problème est de savoir comment vous allez travailler avec les branches et la fusion, comme le souligne bUg.

18
Felixyz