Git Push into Production (FTP)

J’aimerais savoir s’il existe un moyen simple 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 pour faire du FTP à la manière de Git. Utilisez git-ftp.sh pour télécharger uniquement les fichiers suivis 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 twigs, 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 repository Git via FTP, en ne transférant que les nouveaux fichiers et en supprimant les anciens fichiers.

    Si vous préférez l’interface graphique, utilisez SourceTree, vous pouvez facilement configurer une action personnalisée utilisant git-ftp mentionnée ci-dessus. Une brève description de la configuration (pour Mac) au niveau du repository Push a Git sur un serveur FTP

    entrer la description de l'image ici

    Si vous êtes sur un Mac et que vous avez Transmit, je vous recommande le script git-tranmit suivant ( https://gist.github.com/379750 ). 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/ .

    Installer:

    1. cp git-transit / usr / sbin /.
    2. cd / usr / sbin
    3. chmod + x git-transmission
    4. Setup drop envoi pour votre application en direct
    5. Lancez git-transmet dans votre repository git.

    J’ai trouvé PHPloy un excellent outil pour envoyer vos commits Git vers des serveurs distants via FTP. Il 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é!

    (Déni de responsabilité: après l’avoir utilisé pendant un certain temps, j’ai maintenant apporté des correctifs de code et des améliorations, le rendant compatible avec Windows.)

    Ce n’est pas ce que git est à proprement parler. Cependant, si votre source est quelque chose qui n’a pas besoin de compilation ou de traitement, par exemple un site Web entièrement composé de fichiers HTML et javascript, vous pouvez avoir un clone du repo sur votre serveur Web et utiliser git pull depuis le serveur pour garder c’est à jour. Notez que je voudrais configurer votre serveur Web pour cacher 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 par regarder Ant , Maven , BuildR , SBT , etc.

    Ceci est un script en PHP pour télécharger presque automatiquement le git-diff sur un serveur FTP:

    http://code.google.com/p/upload-git-diff-with-ftp/

    Vous pouvez essayer FTPloy …

    https://ftploy.com

    “Poussez les modifications sur GitHub ou Bitbucket.”

    “Déployer automatiquement les modifications sur votre serveur”

    Vous avez un projet gratuit pour l’essayer. J’utilise actuellement pour un petit site php et cela fonctionne assez bien. Quelques bugs sur le site mais c’est un projet actif, donc au moins ils y travaillent.

    https://www.deployhq.com/

    Gratuit pour un projet et ça marche très bien.

    Il y a un script Ruby ici – Ruby git-deploy via FTP ou SSH qui ne télécharge que les fichiers modifiés dans le repository 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 du script shell de git-ftp .

    Il y a aussi un projet Ruby gem 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 , de la même manière que les services Heroku et Azure. Pour cela, vous devrez peut-être écrire des méthodes personnalisées à déployer via FTP et je pense que cela suppose que vous ayez un access SSH à votre serveur de production.

    Si vous mettez du code en production, je vous recommande d’utiliser un “programme d’installation” tel qu’un paquetage 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 apscopes au code lui-même.

    Dans tous les cas, avec un fichier .RPM (ou EXE ou autre), vous pouvez simplement le transférer sur le système de production par FTP et l’installer comme n’importe quel autre paquet.

    Ajoutez-le en tant que télécommande, vous pouvez y accéder, mais le simple fait de pousser du code ne suffit pas, il doit être fusionné avec l’arborescence de travail. Le moyen le plus simple est de faire l’inverse, d’avoir un arbre de travail sur le serveur et d’y chercher et fusionner.

    Vous pouvez toujours essayer de monter le ftp dans 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.

    J’avais beaucoup de mal à comprendre cela. J’ai trouvé un moyen facile d’obtenir ceci à partir de diverses sources ( git-ftpINSTALL , git-ftpUPLOAD , git-ftpIssue , git-ftpPUSH ). Vous pouvez lire pour référence mais il n’y a pas besoin parce que j’ai mentionné le processus étape par étape ci-dessous.

    Première chose: installer git et curl en utilisant brew sous 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  # checkout the latest tag by replacing  sudo make install 

    Mise à jour à l’aide de git

     git pull git tag # see available tags git checkout  # checkout the latest tag by replacing  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 y a une 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 fichier puis essayez de le valider.

     git add application/libraries/index.txt git commit application/libraries/index.txt -m "I love StackOverflow" 

    J’espère que cela t’aides.