2010-04-04 18 views
14

Quiero usar Git para hacer copias de seguridad de mi unidad doméstica, pero también quiero usarlo como un sistema de control de versiones para proyectos que se almacenarán en mi unidad doméstica.Git como copia de seguridad y Sistema de control de versiones

¿Cómo podría hacer eso? ¿Olvidé todas las carpetas raíz de proyectos y realicé nuevos repositorios para ellas?

Editar:

Ok me explicó lo que quería erróneamente. Quiero tener un historial de los cambios realizados en mi unidad de inicio como puedo obtener con Git y también quiero respaldarlo.

+2

Eso no es para lo que es Git, es un sistema de control de versiones. –

+2

Usar git para hacer una copia de seguridad de una unidad es una sobrecarga masiva. – rogeriopvl

+0

@rogeriopvl - no. no es excesivo ... lo que implicaría algo más ... como usar git para controlar una secuencia de comandos de tres líneas. git - simplemente no es la herramienta para el trabajo. git no es un sistema de respaldo. – Rook

Respuesta

0

Eso se parece bastante a lo que estoy haciendo. Tengo un repositorio de git en mi directorio de inicio, pero lo uso para rastrear solo aquellos archivos de configuración que puedo editar a mano. (Esto excluye los archivos de estado guardados por los entornos de escritorio "modernos" y casi todo lo que se almacena como XML.) Todo lo demás va al .gitignore. Érase una vez, decidí que mi directorio de "notas" y mi ~/.emacs.d deberían ir a sus propios repositorios, así que creé repositorios git en esos directorios y el repositorio principal los ignoró.

No uso esta configuración para realizar copias de seguridad sino para sincronizar los archivos rastreados entre cuentas en diferentes máquinas, pero supongo que esto también podría funcionar para las copias de seguridad.

+0

Bueno, es posible, pero para fines de sincronización/copia de seguridad, rsync funcionará mucho mejor. –

+2

No. rsync no tiene una solución sensata para mí si edito el mismo archivo en dos cuentas diferentes. (unison que usa el algoritmo de rsync, pero falla en otros problemas). Al menos, git puede detectar y combinar ediciones en conflicto. rsync tampoco tiene respuesta a la pregunta "¿cómo se veía el archivo X hace 14 días?" – hillu

13

Utilice rsync para la copia de seguridad. Use git para control de versiones.

+1

@mk Explicando por qué sería útil. ¿Por qué no usarías 'git clone' y 'git pull' para sincronizar/respaldar? – Igor

14

I wrote a blog post about this hace un tiempo:

sistemas de control de versiones, con la posible excepción de SourceSafe, son excelentes para hacer un seguimiento del código. ¿Porqué es eso? Porque eran diseñados para realizar un seguimiento del código.

Lamentablemente, sin embargo, las características de un buen VCS son totalmente diferente - ya menudo exactamente lo contrario - de las características que hacen que un buen sistema de copia de seguridad.

Tome, por ejemplo, propiedad del archivo. Un buen VCS, muy correctamente, ignorará la propiedad del archivo: cuando revise el código de otra persona, debería ser el propietario de esos archivos, no lo que originalmente los creó. Un buen sistema de copia de seguridad, por otro lado, hará todo lo que esté en su poder para preservar la propiedad del archivo: cuando restaure desde mis copias de seguridad, quiero que/etc/shaddow sea propiedad de root y/home/wolever/sea propiedad por wolever.

Pero, si usted realmente desea, echa un vistazo a bup - por lo que yo puedo decir, lo hace copia de seguridad con git "derecho".

+1

Agregue algunos fragmentos del artículo para evitar [link rot] (http://meta.stackexchange.com/questions/140772/link-rot-encourage-author-to-cache-snippets-of-relevant-text -to-prepare-for-thi). –

+1

Ah, gracias. He agregado un extracto. –

+0

bup se ve genial, excepto que también se ve muy poco desarrollado:/ – Andrew

0

En windows git-extensions, así como en gitGui, puede clonar un repositorio, lo que le permitiría hacer una copia de seguridad sin todos los archivos en .gitignore.

Siguiente 7zip y ya está!

3

He encontrado que el backintime-gnome (glade/python, backend separado?) Es bueno para las copias de seguridad incrementales programadas, funciona para su diario, semanal, mensual, etc. Luego, Git repos para los archivos fuente u otros cambios -los datos críticos lo envolverían bien. No he jugado con los comandos de back-end comunes bachintime, pero todos parecen ser python.

Lo estoy usando en Ubuntu, "Tenga en cuenta que Back In Time es solo una GUI. La magia real es hecha por rsync (tomar instantáneas y restaurar), diff (verificar si algo cambió) y cp (hacer enlaces duros) ". -http: //backintime.le-web.org/documentation/

1

Hay algunos proyectos que tienen como objetivo resolver ese problema:

BUP parece haber hecho el mayor progreso: https://github.com/apenwarr/bup

Pero es posible que también desee buscar gibak o coldstorage.

+0

Estoy buscando una nueva herramienta de copia de seguridad durante algunas semanas. Este proyecto (bup) se ve bien. – guettli

Cuestiones relacionadas