2010-04-24 17 views
5

Estoy usando git como una herramienta de copia de seguridad y 'perfil itinerante' para mi directorio $ HOME entre la computadora portátil y el escritorio.Git está ignorando los directorios .git en los subdirectorios

Mi problema es que bajo mi $ HOME Tengo un directorio de Desarrollo con múltiples proyectos Git que estoy trabajando. Git no me permitirá agregar los subdirectorios .git carpetas. Entonces, para comprometerme con estos proyectos, tengo que insertar los cambios en mi repo de git $ HOME, instalar la computadora portátil (donde se crearon y los resultados de directorios .git) y comprometerme.

He leído sobre submódulos, pero no es realmente lo que quiero. Solo quiero que las carpetas .git de los niños sean tratadas como cualquier directorio anterior para que pueda moverlas y hacer una copia de seguridad de ellas.

¿Alguien ha hecho esto o tiene una idea de cómo lo haría?

+4

imho, esta es probablemente la herramienta incorrecta para el trabajo. si desea sincronizar su computadora portátil y de escritorio, es posible que desee mirar al unísono. si desea versionar todo el trabajo que hace en $ HOME, la opción más fácil es rsyncs regulares, pero por supuesto eso no es incremental. necesitaría un producto de copia de seguridad incremental, o puede piratear algo utilizando rsync y git –

+0

@Igor: estoy de acuerdo, en general. Sin embargo, no necesariamente tiene que sincronizar los repositorios git: podría fácilmente crear una forma de empujar/tirar/actualizarlos a granel, incluso si decide que los submódulos no son los correctos (aunque probablemente podrían funcionar para esto). propósito). – Cascabel

+0

rsnapshot puede hacer lo incremental. honestamente, los submódulos es lo que deberías estar usando. Solo escribiría un script para transferir todos los repos. ¿Por qué quieres versionar los objetos de Git de todos modos? solo para facilitar la transferencia? usa algo más también esta NO es una pregunta ASÍ debe ser en SUPERUSER. ¿Por qué las personas hacen todas estas preguntas de no programación en SO? – xenoterracide

Respuesta

0

Yo recomendaría un script que serían primera copia de seguridad cada .git proyectos que tiene bajo su $ HOME: se producirán un archivo de respaldo (aún en su $ HOME)
Ver git bundle por más.

Y cuando, se puede añadir/actualizar los copia de seguridad (o "paquete") los archivos a tu repositorio git principal (que contiene la totalidad de su $HOME excepto los proyectos .git)

Por último, puede exportar todos su $ HOME como un archivo con la misma técnica de copia de seguridad de Git (git bundle).

0

En el pasado he utilizado gibak, una herramienta de copia de seguridad de Git. Además de ocuparse de los atributos de los archivos, también se encarga de los repositorios de Git dentro de su directorio personal.

Un descargo de responsabilidad sin embargo. Lo he usado por un tiempo, pero a veces la copia de seguridad se corrompió. No he investigado esto, pero sospecho que tiene que ver con el hecho de que las aplicaciones en ejecución constantemente escriben datos en su directorio personal. En algún momento, los valores hash no coinciden y debe hacer algunas cosas inteligentes para solucionarlo (o iniciar una nueva copia de seguridad).

Al menos pruébalo, puede que funcione para ti. El problema que mencioné también podría ser causado por Git. Desde que lo intenté hace 1.5 años, podría arreglarse mientras tanto.

2

No lo hagas. Es una mala idea porque está creando una copia de seguridad versionada de un repositorio versionado. Basta con crear una copia de seguridad rsync (todavía se puede utilizar la versión del padre GIT)

2

Personalmente estoy usando git para sincronizar algunos archivos como punto-.profile o .vimrc. Para evitar problemas como el tuyo, mi git se encuentra en $ HOME/dot y los archivos individuales están enlazados simbólicamente en $ HOME.

Cuestiones relacionadas