Cómo rastrear $ HOME con git

10

Me gustaría rastrear mi directorio $ HOME con git. Tengo muchos otros repositorios de git en otros subdirectores (por ejemplo, $ HOME / projects / repo_1, etc.), que no deben rastrearse, ya que ya están.

He encontrado git-home-history pero parece del archivo que el proyecto ya no se desarrolla activamente.

¿Qué enfoque me recomendó? ¿Es ghh lo suficientemente maduro?

Estoy en una Mac pero también estoy interesado en soluciones multiplataforma.

Gracias

ps: He buscado pero no he encontrado duplicados, indíquelos si esto ya se ha discutido.

Francesco
fuente

Respuestas:

5

He estado haciendo esto por un tiempo solo usando git. No sigo todo el directorio de inicio, solo las partes que estoy cambiando activamente. Esto incluye mi directorio home / bin, que contiene muchos pequeños scripts, mi directorio .vim y algunos proyectos más grandes en otros directorios. También hay algunas configuraciones para terminales y openbox, así como varias otras aplicaciones, agregadas al repositorio.

Esto funciona bastante bien ya que todo esto tiene el mismo conjunto de permisos y no me importa la marca de tiempo original. Está llegando al punto en el que estoy planeando dividir algunos de ellos en submódulos usando git filter-branch. Sin embargo, esto es un poco complicado ya que hay interdependencias entre archivos en diferentes subdirectorios (por ejemplo, algunos scripts .vim pueden llamar scripts desde mi directorio bin ... no es un muy buen ejemplo, pero espero que entiendan).

No he encontrado soluciones más completas, pero tampoco he investigado ninguna, incluido git-home-history. Parece que sería bastante complicado poner todo el directorio de inicio bajo control de revisión, y habría muchas variables. Por ejemplo, si pones tu (s) perfil (es) de Firefox bajo control de revisión, terminarás acumulando grandes cantidades de diferenciales binarios. También hay cosas como las claves ssh que a menudo se pierden mejor que las duplicadas.

Si desea rastrear los permisos (aparte del bit ejecutable, que git ya rastrea), aparentemente hay un gancho que lo hará. Se menciona en este hilo predeterminado del servidor .

intuido
fuente
Usted entendió mi caso de uso: de hecho, estoy interesado en versionar scripts y configuraciones. Iré con este enfoque básico.
Francesco
FYI: El problema con el que me encuentro en estos días es que no quiero bifurcar mi directorio .vim cuando trabajo en nuevos componentes. Estoy considerando un montón de enfoques diferentes: probablemente terminaré dividiéndolo en un módulo separado usando filter-branch, y configurando un clon de 'trabajo en progreso' en un subdirectorio de ~. Esta parece ser una estrategia generalmente útil: espero que sea igualmente útil clonar todo mi repositorio de directorio de inicio, luego probar los scripts después de configurar $ HOME en el directorio de clonación. No estoy seguro de cuán universalmente respetada es esa variable de entorno, pero lo veré.
intuido
0

Puede usar git en su directorio de inicio, luego usar submódulos git o revisar-tree para los proyectos externos de git en los que trabaja.

canto
fuente