¿Está bien copiar (no clonar) un repositorio git usando comandos básicos de Unix?

¿Está bien copiar (no clonar) un repositorio git usando comandos básicos de Unix?

Soy bastante nuevo en el uso de git y me preguntaba si está bien copiar un repositorio de Git con comandos comunes de UNIX (como cpo tar/ untag), en lugar de hacerlo a través de git clone.

Estoy en una situación en la que tengo un entorno de producción (python virtual) en el que se extrajo algún código en git. Me pregunto si es una mala idea desde la perspectiva de git copiar todo el entorno usando a taro algo así. Este enfoque sería conveniente para hacer una copia rápida de una base de código/entorno.

Mi preocupación es que tal vez git clone asocie alguna identificación única con la copia de trabajo que podría causar conflictos si existen dos copias de trabajo donde una fue copiada del sistema de archivos de la otra.

Respuesta1

Está perfectamente bien.

gitalmacena todo su historial, confirmaciones, etc. en el sitio; esta es una propiedad fundamental de un DCVS.

Técnicamente hablando, gitpuede funcionar bien con repositorios copiados que se ejecutan en todas partes, porque el objetivo de un DCVS es queno tiene que saber qué sucede fuera de ningún repositorio determinado,y de hecho no lo hace a menos que tú lo digas.

El mismo principio se aplica aquí.

Respuesta2

Debería poder copiar todo el directorio de trabajo a cualquier otro lugar de su sistema y hacer que continúe funcionando normalmente cuando use Git, Hg o SVN. No puedo comentar sobre otros SCM.

Respuesta3

Este es un caso de uso más inusual, pero...

he visto elrepoLa utilidad crea enlaces simbólicos en el .gitdirectorio. En ese caso, cuando esté haciendo una copia, querrá asegurarse de eliminar la referencia a los enlaces simbólicos. P.ej:

cp -r -L <source-repo-dir> <destination-repo-dir>

Respuesta4

Está bien, pero si está a punto de compartir su repositorio con otra persona, considere lo siguiente:

  • Es posible que su configarchivo tenga controles remotos que a la otra persona tal vez no le importen.
  • Su logscarpeta tendrá referencias que quizás no desee compartir. Git es excelente para permitirte hacer cosas desagradables en tu computadora hasta que te sientas cómodo con el resultado final, y luego enviarlo al control remoto para (ocasionalmente) compartirlo. Parte de esa desagradable historia podría estar en tu reflog, por lo que es mejor no compartirla en mi humilde opinión.
  • Es posible que su info/excludearchivo esté ignorando solo algunos archivosquiero ignorar.
  • También puedes tener ganchos, ramas y un montón de cosas más que son personales y prefieres no compartir...

información relacionada