J'ai un site Web joomla sur un serveur distant que je développe constamment. Pour le déboguer, j'ai besoin d'une copie locale, mais cela crée un problème de version:
Parfois, je débogue et modifie la version locale, puis des modifications sont apportées au site Web distant (extension d'installation, mise à jour du contenu, etc.). Ensuite, si je veux poursuivre le débogage, je dois télécharger à nouveau le site Web au niveau local. C'est très gênant.
Je sais que Git est bon en contrôle de version. Puis-je l'utiliser pour garder mon site Web local et mon site Web distant synchronisés? Ou existe-t-il une autre pratique courante pour cela?
Nous traitons de deux concepts, le premier étant un référentiel de code. Bien qu'il existe différents types de technologies de référentiel, GIT est actuellement la norme de facto. Des sites Web tels que Github et Bitbucket sont des services Web populaires offrant des solutions d'hébergement GIT gratuites. Le point clé ici étant GIT est la technologie sous-jacente réelle et devra être installé sur votre boîtier de développement; et Github et Bitbucket sont des implémentations de GIT hébergées sur le Web.
L'utilisation correcte de GIT et de toutes ses fonctionnalités dépasse le cadre de cette réponse, mais le concept principal de branche est essentiel à ce que vous essayez de faire. Lorsque vous créez un nouveau projet et le référentiel GIT associé, vous n’avez qu’une branche, le maître. Cette branche représenterait l'état de production de votre application. En plus de cela, vous créez une branche de transfert. Dans la plupart des entreprises de développement, il s’agit d’un serveur secondaire sur lequel les clients et les développeurs peuvent tester le code en cours de préparation en vue de sa mise en production. Toutefois, dans votre cas, cet état intermédiaire représenterait votre boîte de développement local.
Le flux de travail du développeur consiste donc à modifier localement la branche intermédiaire, à valider les modifications apportées à son instance GIT locale, puis à renvoyer les modifications à Origin (également appelé Github ou Bitbucket).
Cela nous amène à notre deuxième concept, le déploiement. Le référentiel gérera les différents états de l'application, mais la distribution de ces états sur les serveurs appropriés reste un problème. Il y a beaucoup d'options pour faire ceci. Vous pouvez utiliser des fichiers sFTP localement sur le serveur approprié, utiliser les points d'ancrage de référentiel fournis par la solution d'hébergement Cloud ou coder les points d'ancrage personnalisés sur une instance GIT distante personnalisée sur le serveur. Cela dépend de la manière dont vous hébergez le site et de la manière dont vous allez l’héberger.
Votre intuition selon laquelle "il doit y avoir un meilleur moyen" est parfaite. Vous rencontrerez probablement beaucoup plus de questions au fur et à mesure que vous commencerez à mettre en œuvre, mais la meilleure façon de les apprendre est d'essayer de vous appliquer à vos flux de travail et de continuer à poser des questions.
Je m'attends à quelques échanges à ce sujet car il y a beaucoup d'informations ici.
1) Consolidez toutes les modifications de code afin que les fichiers et la base de données de votre serveur de production et de votre ordinateur de développement soient identiques. C'est très important.
2) Téléchargez et installez GIT sur votre zone de développement. Si vous utilisez Windows, veillez à installer GIT Bash.
3) Créer un compte gratuit chez Github ou Bitbucket, je préfère ce dernier parce que vous n’avez pas à payer pour les dépôts privés
4) Associer une solution de déploiement au serveur hébergeant le site Web