Git Push en Producción (FTP)


Me gustaría saber si hay una manera fácil de insertar un repositorio GIT en producción (en un servidor FTP) ? Gracias

 124
Author: JamesENL, 2010-06-01

13 answers

Algunas herramientas añadidas recientemente al wiki de Git :

Git-ftp de René Moser es un sencillo shell script para hacer FTP el Git manera. Uso git-ftp.sh para cargar solo el Git rastreó archivos a un servidor FTP, que han cambiado desde el último subir. Esto ahorra tiempo y banda. Incluso si juegas con diferentes sucursales, git-ftp.sh sabe qué archivos son diferentes. Ningún cliente FTP ordinario puedo hacer eso.

Git-ftp por Edward Z. Yang es un simple script escrito en python para subir archivos en un repositorio Git a través de FTP, solo transfiriendo archivos nuevos y la eliminación de archivos antiguos.

 153
Author: Tim Henigan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-18 19:19:20

Si prefiere GUI, use SourceTree, puede configurar fácilmente una Acción Personalizada que use git-ftp mencionado anteriormente. Una breve descripción sobre la configuración (para Mac) en Empuje un repositorio Git a un FTP

introduzca la descripción de la imagen aquí

 13
Author: Geri,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-31 14:13:15

Si estás en un mac y tienes Transmit, te recomendaría el siguiente script git-tranmit ( https://gist.github.com/379750 ). Usa DockSend para enviar solo los últimos archivos actualizados. Si no estás familiarizado con DockSend, echa un vistazo a http://www.panic.com/blog/2010/11/15-secrets-of-transmit/.

Configuración:

  1. cp git-transit /usr/sbin/.
  2. cd/usr / sbin
  3. chmod +x git-transmit
  4. Configurar drop send para su live app
  5. Ejecute git-transmit en su repositorio git.
 10
Author: Rob Sawyer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-06-19 19:05:30

He encontrado PHPloy una gran herramienta para enviar tus commits de Git a servidores remotos a través de FTP. Funciona desde la línea de comandos y está escrito en PHP (e incluso detecta cambios en submódulos).

Https://github.com/banago/PHPloy

git commit ...
phploy -s staging
phploy -s production

Hecho!

(Descargo de responsabilidad: después de usarlo por un tiempo, ahora he contribuido con algunos parches de código y mejoras, por lo que es compatible con Windows.)

 10
Author: Simon East,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-11 12:43:08

Para eso no es git, estrictamente hablando. Sin embargo, si su fuente es algo que no necesita compilación o procesamiento, por ejemplo, un sitio web que consiste completamente de archivos html y javascript y similares, podría tener un clon del repositorio en su servidor web y usar git pull desde el servidor para mantenerlo actualizado. Tenga en cuenta que config su servidor web para ocultar el directorio git y tal. Y eso es solo el comienzo de las preocupaciones de seguridad.

Si tienes algún tipo de la compilación y el procesamiento, usted debe empezar a buscar en Ant, Maven, BuildR, SBT, etc.

 5
Author: sblundy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-06-01 13:57:04

Este es un script en PHP para cargar casi automáticamente el git-diff a un servidor FTP:

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

 3
Author: Marco Antonio,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-31 10:34:44

Puedes probar FTPloy ...

Https://ftploy.com

"Push cambia a GitHub o Bitbucket."

"Implementar cambios automáticamente en su servidor"

Tienes un proyecto gratuito para probarlo. Actualmente estoy usando para un pequeño sitio web php y funciona bastante bien. Algunos errores en el sitio, pero es un proyecto activo por lo que al menos están trabajando en él.

 2
Author: Dave Thompson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-22 17:53:35

Https://www.deployhq.com/

Gratis para un proyecto y funciona muy muy bien.

 2
Author: Dave Thompson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-26 10:15:47

Hay un script Ruby aquí - Ruby git-deploy vía FTP o SSH que carga solo los archivos modificados en el repositorio git vía FTP o SSH.

Como se mencionó en otra respuesta, aquí está el Python git-ftp.py script que hace algo similar.

Y aquí está la versión de shell script de git-ftp.

También hay un proyecto de gema Ruby llamado git-deploy que te permite configurar un deploy personalizado a través de un git remote usando el comando git push, en el mismo así como los servicios Heroku y Azure. Para esto es posible que necesite escribir métodos personalizados para implementar a través de FTP y creo que asume que tiene acceso SSH a su servidor de producción.

 1
Author: dodgy_coder,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-06-13 05:22:21

Si está poniendo código en producción, le recomiendo usar un "instalador" como un paquete RPM para instalar su código. De esta manera, se sellará la versión y podrá aprovechar el paquete del instalador para admitir actualizaciones del código de producción. Git no está realmente diseñado para soportar instalaciones de producción, está destinado a rastrear los cambios en el código en sí.

En cualquier caso, con un .RPM (o EXE o lo que sea) construido, solo puede FTP al sistema de producción e instalar como cualquier otro paquete.

 0
Author: Justin Ethier,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-06-01 13:28:57

Agréguelo como un control remoto, luego puede empujarlo, sin embargo simplemente empujar el código no es suficiente, debe fusionarse con el árbol de trabajo. La forma más fácil es ir al revés, tener un árbol de trabajo en el servidor y buscar y fusionar en eso.

 0
Author: d11wtq,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-06-01 13:35:28

Siempre puede intentar montar el ftp en un directorio local usando http://linuxconfig.org/mount-remote-ftp-directory-host-locally-into-linux-filesystem .

Entonces puedes usarlo de la misma manera que este.

 0
Author: PyRulez,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:47:20

Estaba luchando mucho para resolver esto. He descubierto una manera fácil de hacer esto a partir de diversas fuentes (git-ftpINSTALL, git-ftpUPLOAD, git-ftpIssue, git-ftpPUSH). Puede leer como referencia, pero no es necesario porque he mencionado el proceso paso a paso a continuación.

Lo primero es lo primero: Instalar git y curl usando brew en MAC OS

brew install git
brew install curl --with-ssl --with-libssh2
brew install git-ftp

Ejecute los siguientes comandos:

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

Actualizando usando git

git pull
git tag # see available tags
git checkout <tag> # checkout the latest tag by replacing <tag>
sudo make install

Configuración

git config git-ftp.url YourFtpServerName.Net
git config git-ftp.user FtpUserName
git config git-ftp.password YourPassword

Subir todos los archivos

git ftp init

O si los archivos ya están ahí

git ftp catchup

Trabajar y desplegar

echo "Hello StackOverflow" >> index.txt
git commit application/libraries/index.txt -m "I love StackOverflow"
git ftp push

Si hay un error: índice de pathspec.txt ' no coincidía con ningún archivo conocido por git. Significa que el archivo aún no se ha preparado, así que agrega el archivo y luego intenta confirmar.

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

Espero que esto ayude.

 0
Author: Sdembla,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:10:33