Git: clonar un repositorio

Uno de los muchos beneficios de usar un software de control de versiones como Git es la facilidad con la que puede copiar todo el contenido y el historial de un proyecto con un simple comando...

Uno de los muchos beneficios de usar un software de control de versiones como Git es la facilidad con la que puede copiar todo el contenido y el historial de un proyecto con un simple comando en su terminal. Una vez en tu máquina local, puedes hacer los cambios/adiciones/eliminaciones que quieras, y empujar volver al origen repositorio

En este breve artículo, veremos cómo puede clonar un repositorio de Git desde una fuente remota (o local).

Repositorios de clonación

Para clonar un repositorio remoto, querrá usar el comando git clone, que normalmente se usa de esta manera:

1
$ git clone <repo-url>

Esto clonará el repositorio en su directorio de trabajo actual utilizando el nombre del repositorio como directorio de destino. Para clonarlo en un directorio diferente, puede especificar uno como segundo parámetro para “clonar”:

1
$ git clone <repo-url> <directory>

Un ejemplo de este comando para un repositorio público de GitHub sería el siguiente:

1
2
3
4
5
6
$ git clone [correo electrónico protegido]:scottwrobinson/twentyjs.git twentyjs-clone
Cloning into 'twentyjs-clone'...
remote: Enumerating objects: 48, done.
remote: Total 48 (delta 0), reused 0 (delta 0), pack-reused 48
Receiving objects: 100% (48/48), 9.35 KiB | 0 bytes/s, done.
Resolving deltas: 100% (22/22), done.

Como todos los comandos de Git, hay bastantes banderas que se pueden usar aquí. A continuación se muestran algunos de los más utilizados para git clone:

  • -l o --local: Esto le dice a Git que el repositorio que estamos clonando está en nuestra máquina local, lo que pasa por alto el mecanismo de transporte normal "consciente de git". Los archivos en .git/objects/ también están vinculados al repositorio original, lo que ahorra espacio en disco. Esta marca no es necesaria si el repositorio se especifica como una ruta local, pero debe especificarse explícitamente si el repositorio local se especifica como una URL.
  • --no-tags: no descargue ninguna de las etiquetas del repositorio. Esta configuración también se guarda para que las siguientes llamadas git pull y git fetch no descarguen etiquetas.
  • -o <nombre> o --origin <nombre>: Cambie el nombre del repositorio remoto para este clon de "origin" a lo que especifique <nombre>.
  • -n o --no-checkout: no verifique HEAD después de la clonación
  • --bare: coloca los archivos de <directorio>/.git directamente en la ubicación especificada por <directorio>. Esto es bueno para cuando necesita una copia del repositorio, pero no necesita trabajar directamente con él para fines de desarrollo.

Recuerde, solo he mencionado las banderas más comúnmente utilizadas específicas del comando clonar. Hay bastantes más, que puedes consultar usando el comando git help clone en tu terminal.

Clonación de repositorios locales

Como probablemente haya adivinado por algunas de las banderas mencionadas anteriormente, también puede clonar repositorios que ya están en su máquina local. Esto se hace especificando la ruta del directorio del repositorio en lugar de una URL. Aquí hay un ejemplo de cómo se vería:

1
$ git clone /Users/scott/sandbox/twentyjs /Users/scott/projects/twentyjs

Con este comando, el proyecto Git twentyjs se copiaría en el nuevo directorio projects/twentyjs. Puede omitir la ruta de destino, pero tenga en cuenta que debe estar en un directorio de trabajo diferente al que reside o debe darle un nombre diferente para evitar conflictos.

Otros Protocolos

Hay varias formas de especificar qué repositorio desea clonar, ya sea que esté clonando un repositorio local o remoto. Las diferencias están en el protocolo que especifique, que también debe ser compatible con el servidor que aloja el repositorio. Al elegir un protocolo, asegúrese de tener en cuenta los requisitos de seguridad y utilice los protocolos más seguros cuando sea necesario o pueda hacerlo.

A continuación se muestran algunos ejemplos de protocolos compatibles de forma nativa con Git:

  • git://example.com[:port]/path/to/repo/project.git
  • ssh://[[correo electrónico protegido]]example.com[:port]/path/to/repo/project.git
  • http[s]://example.com[:port]/path/to/repo/project.git
  • ftp[s]://example.com[:port]/path/to/repo/project.git (no recomendado debido a obsolescencia)

También se admiten otros formularios de URL, según el protocolo que se utilice, como este para SSH:

  • [correo electrónico protegido]:path/to/repo/project.git

En cuanto a los repositorios locales, puede utilizar uno de los siguientes formularios:

  • /ruta/a/repo/proyecto.git
  • archivo:///ruta/a/repo/proyecto.git
Licensed under CC BY-NC-SA 4.0