Si realizo una copia de una carpeta rastreada usando rsync -a
o cp -R
, ¿puedo usar la copia como si fuera un clon git, o eso ocasionará todo tipo de problemas extraños? Todo esto se ejecuta en mi computadora, por lo que nadie más está accediendo al repositorio.¿Es seguro usar un copiado git repo?
Obviamente, el directorio de git-cloned sabe de dónde se copió, así que puedo hacer git pull
sin especificar una fuente, pero suponiendo que estoy dispuesto a vivir sin eso, ¿hay algo de lo que deba preocuparme?
Como experimento, creé un pequeño proyecto, clone
d y lo edité rsync
y diff
las carpetas resultantes. Aquí están los resultados:
[email protected] ~
$ git clone project/.git project2
Initialized empty Git repository in /home/itsadok/project2/.git/
[email protected] ~
$ rsync -a project/ project3/
[email protected] ~
$ diff -r project2 project3
Only in project3/.git: COMMIT_EDITMSG
diff -r project2/.git/config project3/.git/config
7,12d6
< [remote "origin"]
< url = /home/itsadok/project/.git
< fetch = +refs/heads/*:refs/remotes/origin/*
< [branch "master"]
< remote = origin
< merge = refs/heads/master
Files project2/.git/index and project3/.git/index differ
diff -r project2/.git/logs/HEAD project3/.git/logs/HEAD
1c1
< 0000000000000000000000000000000000000000 bf6be23d68d0ede45aca7479795693bfba76e73a itsadok <[email protected](none)> 1242131284 +0300 clone: from /home/itsadok/project/.git
---
> 0000000000000000000000000000000000000000 bf6be23d68d0ede45aca7479795693bfba76e73a itsadok <[email protected](none)> 1242131066 +0300 commit (initial): first commit
diff -r project2/.git/logs/refs/heads/master project3/.git/logs/refs/heads/master
1c1
< 0000000000000000000000000000000000000000 bf6be23d68d0ede45aca7479795693bfba76e73a itsadok <[email protected](none)> 1242131284 +0300 clone: from /home/itsadok/project/.git
---
> 0000000000000000000000000000000000000000 bf6be23d68d0ede45aca7479795693bfba76e73a itsadok <[email protected](none)> 1242131066 +0300 commit (initial): first commit
Only in project2/.git/logs/refs: remotes
Only in project2/.git: packed-refs
Only in project2/.git/refs: remotes
Hay un poco de una diferencia, pero la mayor parte parece ser acerca de la referencia al origen. ¿Estoy en lo cierto?
No sé la respuesta, pero supongo que estaría bien. Tengo mucha curiosidad de por qué necesitas (¿quieres?) Sin embargo. –
Ya me surgió la necesidad dos veces, una para una carpeta de respaldo en la que realicé algunos cambios, y una cuando quise clonar un repositorio que estaba en una máquina Windows detrás de una NAT que no tenía sshd ... pero sobre todo, quiero tener una mejor comprensión de cómo funciona Git. – itsadok