¿Git como un repository que no tiene control de versión?

De acuerdo, aquí hay uno raro!

Tengo esta ingeniosa pequeña unidad de 32 gig que guardo en mi billetera que contiene lo último de CADA file que necesito para vivir en una computadora. Contiene todas mis references de commands de BASH, desde algorithms de rubiks hasta PDF que uso para references y libros digitales y todo el software que he escrito. Amigo necesita arreglar su computadora de repente? ¡EXPLOSIÓN! Lo tengo cubierto con el software en mi bolsillo izquierdo. Dulce ¿eh?

Bueno, quiero hacer un seguimiento de cada cambio que realizo en el repository, así como tener copys de security constantes del mismo. Git funciona bastante bien para esto, ¡excepto que copy todos mis files e infla el tamaño del repository drásticamente! Esto no es realmente un gran problema, pero es molesto. Sé que Git se usa para repos de software y estoy de acuerdo con eso (es lo que principalmente uso para todos modos)

Así que estaba pensando, ¿podría de alguna manera como un git nub usar git para registrar los cambios que realicé en el repository pero NO mantener una copy en ejecución de cada cambio real sino solo mantener la versión HEAD? Entonces, cuando hago un push / pull, el repository se respalda con todos mis comentarios, pero ¿SÓLO lo que está en el tree de directorys activos dentro de la unidad flash se saveá en el repository de Git? Entonces, ¿no habría inputs binarias duplicadas, si eliminara un file .exe, lo registraría pero eliminaría el file para siempre?

Tal vez hay una mejor manera de hacerlo sin usar git? Por ejemplo, estaba usando 7ZIP para comprimir y hacer copys de security de forma manual, y luego savelas en un server de la nube para la networkingundancia de la copy de security. Eso fue mucho time y mucho más molesto que un simple:

git add . git commit -m "changes" (git gc) git push 

¡Cualquier ayuda sería muy apreciada!

git-annex hace lo que quieres. Utiliza git-plmbing para el control de versiones pero sin tener una copy en el índice y en el repository.

Si estoy entendiéndolo correctamente, quiere un logging de qué files se tocaron, cuándo y una descripción escrita por humanos de lo que se cambió … pero no quiere los cambios reales, solo los más recientes.

Escriba un file de cambios a mano (o tal vez escriba un pequeño script para get las marcas de time y los files de los cambios) y use rsync para mantener los files sincronizados. Sencillo.

Pero realmente vas a querer un repository completo de cambios (si no lo quieres ahora, lo querrás dentro de seis meses) simplemente no en tu memory USB. No estoy seguro de por qué querría el logging de cambios que ha realizado en su unidad flash, por lo que descartaré ese requisito. Lo que recomendaría en su lugar es hacer su desarrollo en un disco real con un repository completo de git y con copys de security completas. Luego despliega los files en tu memory USB. Hay algunas maneras de hacer eso.

Una es usar rsync . Es realmente bueno y fácilmente disponible.

O git clone --depth 0 <repo> un clon superficial en tu memory USB con git clone --depth 0 <repo> . De esta forma, puedes tirar, diferir y cometer. No tendrá el logging completo, pero no veo por qué lo necesitaría en su unidad flash. No puede presionar desde este repository, pero aún puede hacer una diferencia para ver los cambios locales y crear un file de parche. No debería desarrollar en su unidad flash de todos modos.

Parece que quieres un sistema de control de fuente centralizado, como Subversion. El objective de Git es tener un repository localmente. Con Subversion, tendrías una copy central y solo llevarías una copy de trabajo en tu dispositivo.

La copy central aún tendría el historial completo, aunque creo que podría ser más fácil eliminar compromisos anteriores de Subversion que de Git.

    Intereting Posts