Archivo de git vs -R cp
-
22-08-2019 - |
Pregunta
Si tengo un clon de un repositorio git como una copia en caché en un servidor remoto para el despliegue / estilo Vlad Capistrano, es mejor hacer A)
git archive --format=tar origin/master | (cd #{destination} && tar xf -)
o B)
cp -R cached-copy #{destination} && rm -Rf #{destination}/.git
Para aclarar, el repositorio ya está en el servidor remoto, y sólo quiero copiar una versión particular de un directorio comunicados en el mismo servidor durante el despliegue.
Solución
Yo diría que en realidad
rsync -avP /local/repo/* server:/remote/repo
Esto funciona siempre y cuando está bien saltarse todos los archivos punto en el repositorio, no sólo .git
. Si desea omitir solamente .git
entonces usted tendrá la opción -f
y la página del manual.
I love rsync . Funciona muy bien y la mayoría de las veces se puede utilizar del mismo modo que usar scp!
Otros consejos
A)
Se ahorra la sobrecarga de la red de transferir el directorio .git que posiblemente podría ser bastante grandes dependiendo de la cantidad de la historia y no objetos de la CABEZA actual.
Si alguna vez quería tener un repositorio git real en el extremo remoto es mejor empujar a un depósito de bienes y sólo tener que cambiar los deltas.
Ni!
Una mejor manera de hacer esto es:
-
git fetch
la memoria caché - clonar el caché a su directorio actual (con las opciones
--no-checkout
habilitadas) - Pedido el commit que desea.
Al hacer un clon local de Git utiliza enlaces duros. Eso significa que, hasta que modifique un archivo, que usted no, usted puede tener 1.000 despliegues y uso (prácticamente) sólo el espacio que se necesita para uno. De esta manera también se hay mucho más rápido archivado o rsync.
También alguien puede ya haber escrito el código para usted.
de vigetlab capistrano_rsync_with_remote_cache
Yo uso este con Subversion y funciona bien para mí.