¿Me gustaría saber si hay una manera fácil de llevar un repositorio GIT a producción (en un servidor FTP)? Gracias
130
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
fuente
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
¡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).
fuente
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:
fuente
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.
fuente
Puede usar Deployhq.com , funciona de maravilla , lo único que debe hacer es configurar su repositorio y cuenta FTP.
Actualmente tienen los siguientes sistemas de control de versiones:
Git, Subversion, Mercurial.
Con repositorio alojado
fuente
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/
fuente
https://www.deployhq.com/
Gratis para un proyecto y funciona muy bien.
fuente
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.fuente
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.
fuente
Agréguelo como control remoto, luego puede presionarlo, sin embargo, simplemente presionar 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 fusionarse con eso.
fuente
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 .
fuente
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
Ejecute los siguientes comandos:
Actualización usando git
Preparar
Sube todos los archivos
O si los archivos ya están ahí
Trabajar y desplegar
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.
Espero que esto ayude.
fuente
Puedes probar FTPloy ...
https://ftploy.com
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.
fuente
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.
fuente