2012-08-09 13 views
8

? Estoy empezando a usar git para el control de versiones. Me gustaría mantener una copia de seguridad de mi repositorio en un servidor de archivos local. Después de leer sobre la forma correcta de hacer una copia de seguridad de un repositorio de git, decidí almacenar el repositorio como un paquete de git en el servidor de archivos.¿Cómo puedo enviar un paquete de git

Puedo agrupar mi repositorio y copiar el paquete resultante en el servidor de archivos. Comprobar. También intenté clonar y sacar de allí. Todo funciona bien Sin embargo, me gustaría impulsar mis cambios locales de vez en cuando también. Cuando yo haga algo así como

git push bundlefile.git 

me sale el error:

error: failed to push some refs to 'bundlefile.git' 

puede clonar o tirar desde un paquete, pero no es posible empujar a ella? Realmente no quiero crear un paquete de mi repositorio completo cada vez que quiero hacer una copia de seguridad.

¿Este error de usuario o paquetes no están destinados a ser enviados?

+0

Hay un gran ejemplo de cómo manipular y actualizar incrementalmente los archivos del paquete al final de la página del comando 'git bundle'. – Christopher

+0

Esto parece estar alejándose un poco con paquetes y repositorios desnudos. Si simplemente desea hacer una copia de seguridad de su repositorio de git, simplemente haga clic en tar (o zip) en el directorio .git y termine con él. Tal vez haga un "git gc" primero para reducir el tamaño un poco. Este no es un problema difícil y no requiere soluciones complicadas. –

Respuesta

5

No se puede insertar directamente en un archivo de paquete. Un archivo de paquete es una representación comprimida de un repositorio, y modificarlo implicaría desagregar, empujar y empaquetar de nuevo.

Una forma de hacer esto es como usted dijo, cree un nuevo paquete cada vez que quiera hacer una copia de seguridad.

Otra forma es crear un repositorio bare en el servidor de archivos, y presionar para eso. Un repositorio desnudo es un repositorio sin un directorio de trabajo, que es esencialmente el contenido del directorio .git de un clon normal. Puede crear un repositorio vacío con git init --bare.

+0

Esa es una buena sugerencia. Hubiera preferido tener un solo archivo, comprimido, que funciona como mi solución de respaldo, pero la facilidad de empujar es más importante que esas consideraciones. ¡Gracias! – farnsy

-4

Parece que tiene un problema de permisos en el servidor de archivos. Asegúrese de que su usuario/grupo tenga permisos de escritura.

Cuestiones relacionadas