Comandos de Git

git clone

git clone: clona un repositorio remoto en un directorio nuevo.

El comando git clone crea una copia local de un repositorio remoto. Para ello, abre un directorio nuevo, inicializa dentro un repositorio y copia todo el contenido del remoto de origen. También configura las ramas de seguimiento remoto y crea y deja activa una rama inicial basada en la rama activa del repositorio remoto.

Al clonar un repositorio, Git lo conecta automáticamente con el remoto original para que puedas sincronizar tu copia local con sus actualizaciones. Esta conexión suele llamarse origin.

git clone resulta imprescindible para contribuir a proyectos remotos, colaborar con otras personas en GitHub, GitLab u otros servicios de alojamiento Git o, simplemente, crear una copia de seguridad local. Después de clonar, tienes acceso a todo el historial y todas las ramas del proyecto. Puedes trabajar de forma independiente sin afectar al remoto hasta que decidas hacer push de tus cambios.

Aunque git clone se usa sobre todo con repositorios remotos, técnicamente también puede usarse para clonar repositorios locales. Por ejemplo:

git clone /path/to/local/repository new-copy

Sin embargo, este caso rara vez hace falta en la práctica. Si solo quieres hacer una copia de un repositorio local, normalmente te conviene más crear un repositorio nuevo y copiar los archivos, o usar herramientas como git worktree si necesitas trabajar en varios directorios dentro del mismo repositorio.

Ejemplos

Clonar un repositorio desde GitHub a tu ordenador local:

git clone https://github.com/username/repository.git

Clonar un repositorio en un directorio concreto:

git clone https://github.com/username/repository.git my-project

Clonar un repositorio con una rama concreta y sin descargar todo el historial, lo que se llama clon superficial (shallow clone):

git clone --branch develop --depth 1 https://github.com/username/repository.git

Clonar un repositorio con todos sus submódulos:

git clone --recursive https://github.com/username/repository.git