Respuestas:
Algunas herramientas agregadas recientemente a la wiki de Git :
git-ftp de René Moser es un simple script de shell para hacer FTP a la manera de Git. Use git-ftp.sh para cargar solo los archivos rastreados de Git a un servidor FTP, que han cambiado desde la última carga. Esto ahorra tiempo y ancho de banda. Incluso si juegas con diferentes ramas, git-ftp.sh sabe qué archivos son diferentes. Ningún cliente FTP común puede hacer eso.
git-ftp de Edward Z. Yang es un script simple escrito en python para cargar archivos en un repositorio de Git a través de FTP, solo transfiere archivos nuevos y elimina archivos viejos.
Si prefiere la GUI, use SourceTree, puede configurar fácilmente una Acción personalizada que use git-ftp mencionado anteriormente. Una breve descripción de la configuración (para Mac) en el repositorio Push a Git a un FTP
He encontrado que PHPloy es una gran herramienta para enviar sus confirmaciones 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).
Si está en una Mac y tiene Transmitir, recomendaría el siguiente script git-tranmit ( https://gist.github.com/379750 ). Utiliza DockSend para enviar solo los últimos archivos actualizados. Si no está familiarizado con DockSend, visite http://www.panic.com/blog/2010/11/15-secrets-of-transmit/ .
Preparar:
Para eso no es git, estrictamente hablando. Sin embargo, si su fuente es algo que no necesita compilarse o procesarse, por ejemplo, un sitio web que consta completamente de archivos html y javascript y similares, podría tener un clon del repositorio en su servidor web y usarlo git pull
desde el servidor para mantenerlo actualizado. -hasta la fecha. Tenga en cuenta que configuraría su servidor web para ocultar el directorio git y demás. Y ese es solo el comienzo de las preocupaciones de seguridad.
Si tiene algún tipo de compilación o procesamiento, debe comenzar a mirar Ant , Maven , BuildR , SBT , etc.
Este es un script en PHP para cargar casi automáticamente el git-diff a un servidor FTP:
Gratis para un proyecto y funciona muy bien.
Aquí hay un script de Ruby: Ruby git-deploy a través de FTP o SSH que carga solo los archivos modificados en el repositorio de git a través de FTP o SSH.
Como se mencionó en otra respuesta, aquí está el script Python git-ftp.py que hace algo similar.
Y aquí está la versión de script de shell de git-ftp .
También hay un proyecto de gemas Ruby llamado git-deploy que le permite configurar una implementación personalizada a través de un control remoto git utilizando el git push
comando, de la misma manera que los servicios Heroku y Azure. Para este, es posible que deba escribir métodos personalizados para implementar a través de FTP y creo que supone que tiene acceso SSH a su servidor de producción.
Si está poniendo código en producción, le recomiendo usar un "instalador" como un paquete RPM para instalar su código. De esta forma, se estampará la versión y podrá aprovechar el paquete de instalación 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 cambios en el código en sí.
En cualquier caso, con un .RPM (o EXE o lo que sea) incorporado, puede simplemente enviarlo por FTP al sistema de producción e instalarlo como cualquier otro paquete.
Siempre puede intentar montar el ftp en un directorio local utilizando http://linuxconfig.org/mount-remote-ftp-directory-host-locally-into-linux-filesystem .
Entonces se puede usar de la misma manera como este .
Estaba luchando mucho para resolver esto. He descubierto una manera fácil de hacerlo desde varias 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.
Primero lo primero: instale 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
Actualización usando git
git pull
git tag # see available tags
git checkout <tag> # checkout the latest tag by replacing <tag>
sudo make install
Preparar
git config git-ftp.url YourFtpServerName.Net
git config git-ftp.user FtpUserName
git config git-ftp.password YourPassword
Sube 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: la especificación de ruta 'index.txt' no coincide con ningún archivo conocido por git . Significa que el archivo aún no se ha preparado, así que agregue el archivo y luego intente confirmar.
git add application/libraries/index.txt
git commit application/libraries/index.txt -m "I love StackOverflow"
Espero que esto ayude.
Puedes probar FTPloy ...
"Empuje los cambios a GitHub o Bitbucket".
"Implemente cambios automáticamente en su servidor"
Tienes un proyecto gratuito para probarlo. Actualmente estoy usando 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.
Visite https://gitftp-deploy.com/ si está en MacOS y le gustan las GUI.
Es una pequeña y agradable aplicación que usa Git para rastrear cambios y cargar solo los archivos modificados con FTP.
Especialmente útil si no le gusta pagar tarifas mensuales por docenas de proyectos más pequeños con equipos pequeños.