Je voudrais savoir s'il existe un moyen facile de pousser un référentiel GIT en production (sur un serveur FTP)? Merci
Quelques outils récemment ajoutés au wiki Git :
git-ftp de René Moser est un simple script Shell permettant de FTP sur Git. Utilisez git-ftp.sh pour télécharger uniquement les fichiers suivis par Git sur un serveur FTP, qui ont été modifiés depuis le dernier téléchargement. Cela économise du temps et de la bande passante. Même si vous jouez avec différentes branches, git-ftp.sh sait quels fichiers sont différents. Aucun client FTP ordinaire ne peut le faire.
git-ftp par Edward Z. Yang est un script simple écrit en python pour télécharger des fichiers dans un référentiel Git via FTP, ne transférant que les nouveaux fichiers et supprimant les anciens.
Si vous préférez l'interface graphique, utilisez SourceTree, vous pouvez facilement configurer une action personnalisée qui utilise git-ftp mentionné ci-dessus. Une brève description de la configuration (pour Mac) à Transférer un référentiel Git vers un FTP
J'ai trouvé PHPloy un excellent outil pour envoyer vos commits Git à des serveurs distants via FTP. Cela fonctionne à partir de la ligne de commande et est écrit en PHP (et détecte même les changements dans les sous-modules).
https://github.com/banago/PHPloy
git commit ...
phploy -s staging
phploy -s production
Terminé!
(Avertissement: après l'avoir utilisé pendant un moment, j'ai maintenant apporté des correctifs de code et des améliorations, le rendant compatible Windows.)
Si vous êtes sur un Mac et que vous avez transmis, je vous recommanderais le script git-tranmit suivant ( https://Gist.github.com/37975 ). Il utilise DockSend pour envoyer uniquement les derniers fichiers mis à jour. Si vous ne connaissez pas DockSend, consultez http://www.panic.com/blog/2010/11/15-secrets-of-transmit/ .
Configuration:
Ce n'est pas à quoi ça sert, à proprement parler. Cependant, si votre source est quelque chose qui n'a pas besoin de compilation ou de traitement, disons un site Web composé entièrement de fichiers html et javascript, etc., vous pouvez avoir un clone du repo sur votre serveur web et utiliser git pull
du serveur pour le maintenir à jour. Remarque, je voudrais configurer votre serveur Web pour masquer le répertoire git et autres. Et ce n'est que le début des problèmes de sécurité.
Si vous avez une sorte de compilation ou de traitement, vous devriez commencer à regarder Ant , Maven , BuildR , SBT , etc.
Ceci est un script dans PHP pour télécharger presque automatiquement le git-diff sur un serveur FTP:
Vous pouvez essayer FTPloy ...
"Transmettre les modifications à GitHub ou Bitbucket."
"Déployer les modifications automatiquement sur votre serveur"
Vous avez un projet gratuit pour l'essayer. J'utilise actuellement un petit site Web php et cela fonctionne assez bien. Quelques bugs sur le site mais c’est un projet actif donc au moins ils y travaillent.
Gratuit pour un projet et cela fonctionne très très bien.
Vous pouvez utiliser Deployhq.com cela fonctionne comme un charme, la seule chose que vous devez faire est de configurer votre référentiel et votre compte FTP.
Ils actuellement les systèmes de contrôle de version suivants:
Git, Subversion, Mercurial.
Avec référentiel hébergé
Il y a un script Ruby ici - Ruby git-deploy via FTP ou SSH qui télécharge uniquement les fichiers modifiés dans le référentiel git via FTP ou SSH.
Comme mentionné dans une autre réponse, voici le script Python git-ftp.py qui fait la même chose.
Et voici la version de script Shell de git-ftp .
Il existe également un projet Ruby) appelé git-deploy qui vous permet de configurer un déploiement personnalisé via une télécommande git à l'aide de la commande git Push
commande, de la même manière que les services Heroku et Azure. Pour celui-ci, vous devrez peut-être écrire des méthodes personnalisées à déployer via FTP et je pense que cela suppose que vous avez un accès SSH à votre serveur de production.
Ajoutez-le en tant que télécommande, vous pouvez alors appuyer sur le bouton. Toutefois, le code ne peut pas être suffisant, il doit être fusionné avec l’arbre de travail. Le moyen le plus simple est de faire l’inverse, d’avoir un arbre de travail sur le serveur, d’extraire et de fusionner.
J'avais beaucoup de mal à comprendre cela. J'ai trouvé un moyen facile de le faire à partir de diverses sources ( git-ftpINSTALL , git-ftpUPLOAD , git-ftpIssue , - git-ftpPUSH ). Vous pouvez lire à titre de référence, mais ce n’est pas nécessaire car j’ai mentionné le processus étape par étape ci-dessous.
Tout d’abord: installez git et curl en utilisant brew sur MAC OS
brew install git
brew install curl --with-ssl --with-libssh2
brew install git-ftp
Exécutez les commandes suivantes:
git clone https://github.com/git-ftp/git-ftp.git
cd git-ftp
git tag # see available tags
git checkout <tag> # checkout the latest tag by replacing <tag>
Sudo make install
Mise à jour avec git
git pull
git tag # see available tags
git checkout <tag> # checkout the latest tag by replacing <tag>
Sudo make install
Installer
git config git-ftp.url YourFtpServerName.Net
git config git-ftp.user FtpUserName
git config git-ftp.password YourPassword
Télécharger tous les fichiers
git ftp init
Ou si les fichiers sont déjà là
git ftp catchup
Travailler et déployer
echo "Hello StackOverflow" >> index.txt
git commit application/libraries/index.txt -m "I love StackOverflow"
git ftp Push
S'il existe un erreur: pathspec 'index.txt' ne correspond à aucun fichier connu de git . Cela signifie que le fichier n'a pas encore été mis en scène, alors ajoutez-le et essayez ensuite commit.
git add application/libraries/index.txt
git commit application/libraries/index.txt -m "I love StackOverflow"
J'espère que cela t'aides.
Vous pouvez toujours essayer de monter le ftp sur un répertoire local en utilisant http://linuxconfig.org/mount-remote-ftp-directory-Host-locally-into-linux-filesystem .
Ensuite, vous pouvez l'utiliser de la même manière que this .
Si vous mettez du code en production, je vous recommande d'utiliser un "programme d'installation" tel qu'un package RPM pour installer votre code. De cette façon, la version sera estampillée et vous pourrez utiliser le package d'installation pour prendre en charge les mises à jour du code de production. Git n'est pas vraiment conçu pour prendre en charge les installations de production, il est destiné à suivre les modifications apportées au code lui-même.
Dans tous les cas, avec un fichier .RPM (ou EXE ou autre) créé, vous pouvez simplement le transférer par FTP sur le système de production et l’installer comme tout autre paquet.