Bonne Façon D'Utiliser Git/GitHub - PHP avec Système de Dev/Test/serveurs de Production
Je m'excuse si ce qui est évident ou facile, j'ai regardé un bon nombre de git/github tutoriels et lire d'autres articles, mais je veux être sûr de ce que je fais est juste.
Je veux intégrer VC (pour des raisons évidentes) dans mon équipe de développement et les processus.
Actuel du processus de développement (à l'aide de Dreamweaver):
* Recevoir un billet (ou ordre de travail)
* Télécharger le fichier sur le serveur de Développement
* Apporter des modifications au fichier
* Transfert de fichier vers serveur de développement
* Les changements testé/vérifié
* Envoyer à un serveur de production
J'essaie de comprendre comment le faire notre nouveau processus de développement avec l'aide de Git.
Je suis commutation sur PHPStorm (qui est un IDE PHP avec l'intégration directe avec Git).
Serait-il quelque chose comme
- Recevoir un billet (ou ordre de travail)
- Caisse/mise à Jour/Téléchargement de fichier(s)
- Modifier Des Fichiers
- Télécharger le fichier (ce qui je suppose est également le répertoire de travail actuel...?)
- À la fin de la journée, faire un commit
- Ont le script de construction envoyer des données au serveur de test (nightly build)
Ou serait-il mieux de faire quelque chose comme
- Recevoir un billet (ou ordre de travail)
- Caisse/mise à Jour/Téléchargement de fichier(s)
- Modifier Des Fichiers
- Télécharger le fichier/commettre
- Ont le script de construction envoyer des données au serveur de test (nightly build)
Ou est-il un autre moyen? Ayant un peu de mal à comprendre ce qui serait le flux optimal?
Toute aide serait grandement appréciée.
Modifier
Je suis en train de voir si c'est mieux d'avoir une version du serveur local (chaque développeur), et si oui, comment cela fonctionne, si vous avez 7 ou ainsi, les branches?
Si non, comment faites-vous affaire avec 7 ou ainsi, les branches avec eux sur le web? Avez-vous fichiers FTP ou d'utiliser Git Crochets pour faire la mise à jour automatique?
Mise à jour 07/26/2012
Après avoir travaillé avec succès avec Git pour un certain temps maintenant, j'ai été la suite de cette ramification modèle avec beaucoup de succès:
Un Succès Git Ramification Modèle
La réponse à la ci-dessus est oui -- devriez vraiment avoir une version locale du serveur.
- C'est un choix populaire pour la gestion de vos branches git & flux de travail: nvie.com/posts/a-successful-git-branching-model
- Mike -- c'est un super modèle et j'ai l'intention de l'utiliser. Savez-vous comment ils fonctionnent avec qui? Je veux dire... ils ont un serveur distinct ou une section d'un serveur d'installation pour chaque branche, ou ce que les gens ont tous une copie locale du serveur sur sa machine et qu'ils travaillent au sein de chaque branche, ou comment ça marche?
Vous devez vous connecter pour publier un commentaire.
En supposant que vous avez un serveur et un serveur de développement, je voudrais faire quelque chose le long de ces lignes.
Avant même de commencer avec un cycle de développement, j'aurais au moins deux branches:
Donc, si un développeur reçoit un billet ou un bon de travail, il/elle devra effectuer les actions suivantes:
Le code sur le serveur
La mise à jour des serveurs ne devrait pas être un problème. En principe, je serais comme utilisateurs, tout comme vous êtes développeurs sont. Dans mon entreprise nous avons configuration des serveurs en lecture seulement. Fondamentalement cela signifie que les serveurs peuvent ne poussez jamais rien, mais peut toujours tirer. Cette mise en place n'est pas trivial bien, vous pouvez tout aussi bien créer un simple webinterface qui, tout simplement, ne permet qu'un git pull. Si vous pouvez garder votre développeurs de faire des trucs sur des implémentations en direct, vous êtes sûr 🙂
[MODIFIER]
En réponse à la dernière des questions posées dans les commentaires de cette réaction:
Je ne sais pas si j'ai bien compris votre question correctement, mais en principe (simplifié un peu) c'est comment je pourrais faire cela, j'ai été dans vos chaussures.
La machine d'essai (ou à la racine du site qui sert de mise en œuvre des tests), elle a de code source dans un dépôt git avec la branche master vérifié. Alors que la création de ce référentiel vous pouvez même supprimer toutes les autres références à toutes les autres branches de sorte que vous serez sûr de ne peut commander une mauvaise direction dans ce référentiel. Donc, fondamentalement, la machine d'essai a un dépôt Git avec seulement une branche master qui est vérifié.
Pour les serveurs, je ferais exactement la même chose, mais cette fois avec la branche stable vérifié. Développeur devrait avoir un référentiel local cloné dans lequel toutes les branches existent. Et une mise en œuvre locale des logiciels que vous avez les gars construire. Ce logiciel est sa source d'une le dépôt git local. En d'autres termes: à partir de l'extrait de la branche dans ce référentiel.
Codage
Lorsqu'une nouvelle fonctionnalité est voulu, une branche peut être faite sur la base master. Lorsque la direction générale est cochée, les modifications peuvent être effectuées et vérifiées sur place par le développeur (puisque le logiciel est maintenant en cours d'exécution sur la source de la branche).
Si tout semble être dans l'ordre, les changements sont fusionnés à partir d'une entité de la branche de maître et poussé à votre "git machine". "votre github" pour ainsi dire. Les tests peuvent maintenant tirer les changements dans tous les tests nécessaires peut être fait par l'AQ. Si ils décident tout est ok, le développeur peut fusionner les modifications apportées par le maître d'stable et pousser à nouveau.
De tous les thats gauche est maintenant en tirant la forme de vos machines en direct.