Me gustaría saber si hay una manera fácil de llevar un repositorio GIT a producción (en un servidor FTP)? GraciasGit Push into Production (FTP)
Respuesta
Algunas herramientas añadidas recientemente a la Git wiki:
git-ftp by René Moser is a simple shell script for doing FTP the Git way. Use git-ftp.sh to upload only the Git tracked files to a FTP server, which have changed since the last upload. This saves time and bandwith. Even if you play with different branches, git-ftp.sh knows which files are different. No ordinary FTP client can do that.
git-ftp by Edward Z. Yang is a simple script written in python for uploading files in a Git repository via FTP, only transferring new files and removing old files.
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, tendrá la versión sellada y podrá aprovechar el paquete de instalación para admitir actualizaciones del código de producción. Git no está diseñado para admitir instalaciones de producción, sino para realizar un seguimiento de los cambios en el código.
En cualquier caso, con .RPM (o EXE o lo que sea) creado, puede simplemente FTP al sistema de producción e instalarlo como cualquier otro paquete.
Bueno, git puede aprovecharse muy bien para este propósito en la realidad. Revise la etiqueta y cree ganchos post-checkout, post-merge, etc. para manejar cualquier procedimiento de instalación necesario. Solíamos usar paquetes de RPM, pero después de mudarnos a git, simplemente era exagerado. – d11wtq
Añádalo como control remoto, luego puede presionarlo, sin embargo, simplemente presionar el código no es suficiente, necesita 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.
Eso no es para lo que git es, estrictamente hablando. Sin embargo, si su fuente es algo que no necesita compilación o procesamiento, digamos un sitio web que consiste en completamente de archivos html y javascript y similares, podría tener un clon del repositorio en su servidor web y usar git pull
del servidor a mantenerlo actualizado. Tenga en cuenta que configuro su servidor web para ocultar el directorio de git y tal. Y eso es solo el comienzo de las preocupaciones de seguridad.
Si tiene cualquier tipo de compilación o procesamiento, usted debe empezar a buscar en Ant, Maven, BuildR, SBT, etc.
El único problema con esto es cuando no tiene acceso al servidor de producción, es decir, podría tratarse de un simple host compartido, con solo acceso FTP. –
Si Estoy en un Mac y tengo Transmit, recomiendo el siguiente script de git-tranmit (https://gist.github.com/379750). Utiliza DockSend para enviar solo los últimos archivos actualizados. Si no está familiarizado con DockSend, consulte http://www.panic.com/blog/2010/11/15-secrets-of-transmit/.
Configuración:
- cp git tránsito/usr/sbin /.
- cd/usr/sbin
- chmod + x git-transmitir
- gota CONF.ENVIO para su aplicación en vivo
- Ejecutar git-transmisión en su repositorio git.
Esta secuencia de comandos es bastante torpe sobre la selección de "últimos archivos actualizados". Consulte [este tenedor] (https://gist.github.com/quickshiftin/8809435) para obtener una solución más elegante. – quickshiftin
Además de eso, es posible que desee transmitir solo los archivos rastreados y no modificados. Aquí hay un pequeño script que hace precisamente eso: https://gist.github.com/borisdiakur/37b8f512f6f8865b79c7 – borisdiakur
Aquí hay un script de Ruby - Ruby git-deploy via FTP or SSH que carga solo los archivos modificados en el repositorio de git mediante FTP o SSH.
Como se menciona en otra respuesta, aquí está el Python git-ftp.py script que hace algo similar.
Y aquí está la versión del script de shell de git-ftp.
También hay un proyecto Ruby gem llamado git-deploy que le permite configurar una implementación personalizada a través de un control remoto git usando el comando git push
, de la misma manera que los servicios Heroku y Azure.Para esto, puede 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.
Este es un script en PHP para subir casi automáticamente el git-diff a un servidor FTP:
Si prefiere interfaz gráfica de usuario, utilice SourceTree, se puede configurar fácilmente una acción personalizada que utiliza git -ftp mencionado anteriormente. Una breve descripción de la configuración (para Mac) en Push a Git repository to an FTP
he encontrado PHPloy una gran herramienta para el envío de su Git se compromete 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 los submódulos).
https://github.com/banago/PHPloy
git commit ...
phploy -s staging
phploy -s production
hecho!
(Negación: después de usarlo por un tiempo ahora he contribuido algunos parches de código y mejoras, por lo que es compatible con Windows.)
Buen hallazgo, parece simple y lo suficientemente potente, definitivamente voy a probarlo. – GTCrais
Siempre puede intentar montar el FTP a un directorio local utilizando http://linuxconfig.org/mount-remote-ftp-directory-host-locally-into-linux-filesystem.
Luego puede usarlo de la misma manera que this.
Estaba luchando mucho para descubrir esto. He descubierto una manera fácil de hacer esto desde varias fuentes (git-ftpINSTALL, git-ftpUPLOAD, git-ftpIssue, git-ftpPUSH). Puede leer para referencia, pero no es necesario porque he mencionado el proceso paso a paso a continuación.
Primero lo primero: Instalar Git y rizar el uso de cerveza en MAC OS
brew install git
brew install curl --with-ssl --with-libssh2
brew install git-ftp
Ejecutar 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 allí
git ftp catchup
trabajo y desplegar
echo "Hello StackOverflow" >> index.txt
git commit application/libraries/index.txt -m "I love StackOverflow"
git ftp push
Si hay un error: pathspec 'índice. txt 'no coincide con ninguno de los archivos conocidos de git. Significa que el archivo aún no se ha configurado, por lo tanto, 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.
Usted puede intentar FTPloy ...
"Push changes to GitHub or Bitbucket."
"Deploy Changes automatically to your server"
tiene uno proyecto libre de probarlo con. Actualmente estoy usando un sitio web pequeño de php y funciona bastante bien. Algunos errores en el sitio pero es un proyecto activo por lo que al menos están trabajando en ello.
Publiqué esta respuesta prematuramente. FTPloy no está del todo preparado para la producción y hay muchos errores. No pude hacer que funcione. Estoy usando DeployHQ, que funciona muy bien. –
gratuito para un proyecto y funciona muy bien.
- 1. Rails push into array guarda el objeto
- 2. Git: Stop git push
- 3. 'git push'
- 4. ¿Funciona `git push` como abreviatura de` git push origin newfeature`?
- 5. git push, no push all local commits
- 6. git push rejected
- 7. git cómo desactivar push
- 8. Git ignore push solo
- 9. git push -f vs. +
- 10. git post-push hook?
- 11. Git Push Not Working
- 12. Git push rechazado
- 13. Git pre-push hooks
- 14. Git no puede pasar al servidor ftp
- 15. Cómo configurar Git para evitar accidental git push
- 16. Problemas de Git con git push --todos
- 17. git push .git/archivo de descripción
- 18. Cambio de autoría git git push después
- 19. Empujar la subcarpeta a ftp usando git-ftp
- 20. Git push - paquete subóptimo - memoria
- 21. Git push stuck at 99%
- 22. ¿Qué significa git push -u?
- 23. Git push to live server
- 24. git: push a single commit
- 25. Cómo push/pull git rebase
- 26. hg-git push silenciosamente falla
- 27. restablecimiento completo en git push
- 28. xcode git pull/push crash
- 29. .NET Production Debugging
- 30. establecer un repositorio ftp con git
eso es perfecto, gracias – Roch
¿Han intentado ambos? ¿Cuál les gusta más a ustedes? – trusktr
usando git-ftp, ¿hay alguna forma de insertar solo un subdirectorio (por ejemplo, la carpeta de publicación de la plantilla HTML html5) en el directorio ftp especificado? – gang