2011-05-17 1 views
4

En venant d'un simple flux de travail «modifier directement sur ftp», je veux essayer le contrôle de la version source. Comme je peux l'imaginer, GIT est un choix très populaire.Comment puis-je utiliser les référentiels Git pour le développement web (et le déploiement)?

Je suis un développeur unique. J'ai plusieurs sites web sur lesquels je travaille (chacun dans/home/domains /) sur le serveur distant (Linux) et je souhaite commencer à les travailler localement (Mac OS) puis les repousser (mettre à jour les fichiers distants).

Je ne comprenais pas comment git est censé fonctionner pour moi. Il semble que je doive avoir un dépôt "nu", ce que je ne peux pas avoir parce que mes projets ont déjà des fichiers et des dossiers, ce qui signifie que je devrais créer un nouveau référentiel nu puis pousser les choses localement et ensuite tirer à distance .

Cela semble un peu étrange, ayant 3 dépôts (1 local et 2 télécommandes) quand je ne travaillerais que sur 2 dossiers.

Puis-je obtenir des conseils?

Répondre

3

Il existe deux options standard, saines, si vous avez un accès en ligne entre votre serveur et votre système local. D'abord, vous pouvez ajouter une télécommande pour l'autre référentiel et extraire toutes les modifications validées de l'autre référentiel avant de commencer à apporter des modifications. Cela signifie, par exemple, que si vous effectuez une modification sur le système local, vous devrez passer la commande ssh au serveur et tirer pour obtenir les changements là-bas. Deuxièmement, vous pouvez créer un référentiel nu pour agir en tant que maître. C'est le modèle standard pour les référentiels partagés, en particulier lorsqu'il y a plusieurs utilisateurs impliqués, mais cela fonctionne lorsqu'un utilisateur est impliqué et est préféré lorsqu'il n'y a pas d'accès bidirectionnel à temps plein entre les deux systèmes. Ce dépôt nu peut être sur le système mac, sur le serveur Linux, ou sur un troisième système (tel que github, par exemple). Dans ce cas, le flux de travail consiste à extraire toutes les modifications du référentiel vide, à effectuer une modification, à valider, puis à transférer ces modifications vers le référentiel vide. En l'absence de hooks spéciaux, vous devrez toujours passer la commande ssh au serveur et émettre un pull pour mettre à jour le site web en direct.

Vous pouvez créer le nouveau référentiel en effectuant un git clone --mirror --bare à partir du référentiel du serveur. Ensuite, vous voulez git add remote origin URL-TO-NEW-BARE-REPOSITORY sur le serveur.Vous pouvez faire la même chose sur le système macosx ou git clone URL-TO-NEW-BARE-REPOSITORY

Il est techniquement possible de configurer le système pour permettre au système macosx de pousser vers le répertoire de travail linux extrait. Je ne le recommande pas, surtout si vous faites des changements sur ce dépôt, car le processus pourrait/détruirait toute modification non validée. Un problème similaire peut se produire avec les hooks automatiques qui envoient/vérifient automatiquement les validations entrantes dans le répertoire webserver en direct.

À titre de référence, tenez compte http://toroid.org/ams/git-website-howto et http://joemaller.com/990/a-web-focused-git-workflow/

0

Mon flux de travail est comme ceci:

  • J'ai une prise en pension à distance et un local (ils sont prises en pension normale, pas les nus)
  • Je travaille sur mon repo
  • Je commettras locale
  • Je pousse mes changements repo à distance
  • I ssh à la machine distante et exécuter git reset --hard sur repo à distance pour mettre à jour les fichiers

Fonctionne plutôt bien pour moi, surtout parce que j'utilise le tissu pour faire les étapes de poussée et de réinitialisation, donc il descend à fab push unique.

Pour clarifier je suis un seul développeur, peut ne pas fonctionner si bien si vous développez votre page Web dans une grande équipe.

+0

Je vais chercher plus loin sur cette méthode. En effet, j'ai oublié de mentionner que je suis un seul développeur – TibCristi

Questions connexes