Puedes obtener un proyecto Git de dos maneras. La primera es tomar un proyecto o directorio existente e importarlo en Git. La segunda es clonar un repositorio existente en Git desde otro servidor.
Si estás empezando a seguir un proyecto existente en Git, debes ir al directorio del proyecto y usar el siguiente comando:
$ git init
Esto crea un subdirectorio nuevo llamado .git
, el cual contiene todos los archivos necesarios del repositorio – un esqueleto de un repositorio de Git.
Todavía no hay nada en tu proyecto que esté bajo seguimiento. Puedes revisar ch10-git-internals.asc para obtener más información acerca de los archivos presentes en el directorio .git
que acaba de ser creado.
Si deseas empezar a controlar versiones de archivos existentes (a diferencia de un directorio vacío), probablemente deberías comenzar el seguimiento de esos archivos y hacer una confirmación inicial.
Puedes conseguirlo con unos pocos comandos git add
para especificar qué archivos quieres controlar, seguidos de un git commit
para confirmar los cambios:
$ git add *.c
$ git add LICENSE
$ git commit -m 'initial project version'
Veremos lo que hacen estos comandos más adelante. En este momento, tienes un repositorio de Git con archivos bajo seguimiento y una confirmación inicial.
Si deseas obtener una copia de un repositorio Git existente — por ejemplo, un proyecto en el que te gustaría contribuir — el comando que necesitas es git clone
.
Si estás familizarizado con otros sistemas de control de versiones como Subversion, verás que el comando es "clone" en vez de "checkout". Es una distinción importante, ya que Git recibe una copia de casi todos los datos que tiene el servidor.
Cada versión de cada archivo de la historia del proyecto es descargada por defecto cuando ejecutas git clone
.
De hecho, si el disco de tu servidor se corrompe, puedes usar cualquiera de los clones en cualquiera de los clientes para devolver el servidor al estado en el que estaba cuando fue clonado (puede que pierdas algunos hooks del lado del servidor y demás, pero toda la información acerca de las versiones estará ahí) — véase ch04-git-server.asc para más detalles.
Puedes clonar un repositorio con git clone [url]
.
Por ejemplo, si quieres clonar la librería de Git llamada libgit2 puedes hacer algo así:
$ git clone https://github.com/libgit2/libgit2
Esto crea un directorio llamado libgit2
, inicializa un directorio .git
en su interior, descarga toda la información de ese repositorio y saca una copia de trabajo de la última versión.
Si te metes en el directorio libgit2
, verás que están los archivos del proyecto listos para ser utilizados.
Si quieres clonar el repositorio a un directorio con otro nombre que no sea libgit2
, puedes especificarlo con la siguiente opción de línea de comandos:
$ git clone https://github.com/libgit2/libgit2 mylibgit
Ese comando hace lo mismo que el anterior, pero el directorio de destino se llamará mylibgit
.
Git te permite usar distintos protocolos de transferencia.
El ejemplo anterior usa el protocolo https://
, pero también puedes utilizar git://
o usuario@servidor:ruta/del/repositorio.git
que utiliza el protocolo de transferencia SSH.
En ch04-git-server.asc se explicarán todas las opciones disponibles a la hora de configurar el acceso a tu repositorio de Git, y las ventajas e inconvenientes de cada una.