Uno de los muchos beneficios de usar 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 su máquina local, puede realizar los cambios / adiciones / eliminaciones que desee y devolverlo al repositorio de origen.
En este breve artículo veremos cómo puede clonar un repositorio de Git desde una fuente remota (o local).
Te puede interesar:Git: crear un nuevo repositorioRepositorios de clonación
Para clonar un repositorio remoto, querrá usar el git clone
comando, que generalmente se usa de esta manera:
$ git clone <repo-url>
Esto clonará el repositorio en su directorio de trabajo actual usando el nombre del repositorio como directorio de destino. Para clonarlo en un directorio diferente, puede especificar uno como segundo parámetro para clone
:
$ git clone <repo-url> <directory>
Un ejemplo de este comando para un repositorio público de GitHub se vería así:
$ git clone [email protected]: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, que pasa por alto el mecanismo de transporte normal «consciente de git». Los archivos debajo.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 los siguientesgit pull
ygit fetch
las llamadas no descargan etiquetas.-o <name>
o--origin <name>
: Cambie el nombre del repositorio remoto para este clon de «origen» a lo que especifique<name>
.-n
o--no-checkout
: No revise HEAD después de la clonación--bare
: Coloca los archivos de<directory>/.git
directamente en la ubicación especificada por<directory>
. Esto es bueno para cuando necesita una copia del repositorio, pero no necesita trabajar directamente con él para propósitos de desarrollo.
Recuerde, solo mencioné los indicadores más utilizados específicos para el clone
mando. Hay bastantes más, que puede consultar utilizando el git help clone
comando en su terminal.
Clonación de repositorios locales
Como probablemente haya adivinado por algunos de los indicadores mencionados 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:
Te puede interesar:Git: diferencia entre ‘git fetch’ y ‘git pull’$ git clone /Users/scott/sandbox/twentyjs /Users/scott/projects/twentyjs
Con este comando el twentyjs
El proyecto Git se copiaría en el nuevo projects/twentyjs
directorio. 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 considerar los requisitos de seguridad y utilice los protocolos más seguros cuando sea necesario o pueda.
Te puede interesar:Git: Switch BranchA continuación se muestran algunos ejemplos de protocolos que son compatibles de forma nativa con Git:
git://example.com[:port]/path/to/repo/project.git
ssh://[[email protected]]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:
Te puede interesar:Implementación de una aplicación Node.js en Heroku[email protected]:path/to/repo/project.git
En cuanto a los repositorios locales, puede utilizar uno de los siguientes formularios:
/path/to/repo/project.git
file:///path/to/repo/project.git