web-dev-qa-db-fra.com

Git Push into Production (FTP)

Je voudrais savoir s'il existe un moyen facile de pousser un référentiel GIT en production (sur un serveur FTP)? Merci

129
Roch

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.

158
Tim Henigan

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

enter image description here

14
Geri

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.)

11
Simon East

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:

  1. cp git-transit/usr/sbin /.
  2. cd/usr/sbin
  3. chmod + x git-transmission
  4. Configuration déposer envoyer pour votre application en direct
  5. Exécutez git-transmission dans votre référentiel git.
10
Rob Sawyer

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.

5
sblundy

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

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

3
Marco Antonio

Vous pouvez essayer FTPloy ...

https://ftploy.com

"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.

2
Dave Thompson

https://www.deployhq.com/

Gratuit pour un projet et cela fonctionne très très bien.

2
Dave Thompson

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é

  • GitHub
  • Bitbucket
  • GitLab
  • Base de code

enter image description here

1
joelmez4

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.

1
dodgy_coder

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.

0
d11wtq

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.

0
Sdembla

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 .

0
PyRulez

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.

0
Justin Ethier