Ir al contenido principal

Usando Git

Para crear un repositorio navegamos la carpeta en la que vamos a trabajar, y ejecutamos el comando git init. Esto crea un repositorio en la carpeta actual.

Lo siguiente que debemos hacer es agregar archivos al control de versiones. Esto lo hacemos con el comando git add, debemos pasar el nombre del archivo como parámetro, por ejemplo: git config readme.txt. Si queremos agregar varios archivos, podemos usar comodines.

Nota: Aunque hemos agregado archivos al repositorio, el sistema aun no tiene una versión guardada.

Si empezamos a trabajar con una carpeta que ya contenía archivos, se recomienda empezar por agregarlos al repositorio y guardar el estado en que se encuentran con una consignación ("commit"). Esto lo hacemos con el comando git commit -m 'descripcion'. Al hacer una consignación debemos describir los cambios.

Nota: Siempre debemos utilizar git add antes de git commit para especificar los archivos que vamos a agregar en la consignación.


Git ofrece una herramienta para crear copias de repositorios: git clone url. De esta forma podemos copiar un repositorio sobre SSH o HTTPS, así como repositorios locales. Esto es lo que debemos hacer para empezar a trabajar con un repositorio remoto.


Cuando hacemos modificaciones a los archivos del repositorio, esas modificaciones no están guardadas en Git hasta que hagamos una consignación. Es necesario Una vez realizada la consignación esta esta guardada en el repositorio local... si queremos mover cambios entre repositorios, debemos jalaros ("fetch") o empujarlos ("push") entre copias del repositorio.

Cuando clonamos un repositorio remoto con git clone, la url queda asociada a nuestra copia del repositorio con el nombre "origin". Gracias a esto, Git sabe a donde empujar y de donde jalar cambios. Es necesario recordar que al consignar los cambios solo se guardan de forma local. Más adelantes vemos como empujar y jalar cambios.


Si queremos recuperar un estado anterior del repositorio podemos usar git checkout pos. Donde: pos es el cambio que queremos recuperar. Llamaos HEAD al punto de trabajo actual, sea cual sea... hacer git checkout HEAD no hace nada. Podemos hacer git checkout HEAD~ para ir al cambio anterior, git checkout HEAD~2 para ir dos cambios atrás, y así sucesivamente. Además al realizar una consignación se genera un código que podemos utilizar para ir directamente a ese cambio.


Cada vez que hacemos una consignación esta se agrega al punto de trabajo actual (HEAD). Si no hemos cambiando HEAD, este es la rama principal por defecto, la cual se llama "master".

Podemos crear una nueva rama con git branch rama, la nueva rama será equivalente a HEAD en el momento de su creación. Es necesario ser consciente que crear una rama no la convierte en el punto de trabajo actual. Para eso ejecutamos git checkout rama.

Nota: Al ejecutar git checkout rama recuperamos el estado de la rama y la convertimos en el punto de trabajo actual.


Para jalar cambios, ejecutamos git fetch remote. Donde: remote es el nombre del repositorio remoto (usa git fetch origin para el repositorio por defecto). Podemos agregar otros repositorios remotos con git remote add nombre url. Donde: "url" es la url del repositorio remoto.

Para empujar los cambios, ejecutamos git push origin rama. Donde: rama es el nombre de la rama del repositorio que estamos empujando.


Por ultimo quiero mencionar que podemos mover a donde apunta HEAD usando el comando git reset pos (Cuando usamos git checkout estamos cambiado donde está HEAD, no a donde apunta). Si HEAD está en una rama, al mover a donde apunta HEAD estamos moviendo a donde apunta la rama. Por ejemplo, si HEAD es "master", y movemos a donde apunta HEAD, estamos moviendo a donde apunta "master".


Para más información ver el libro Pro Git.

Comentarios