Conceptos y comandos esenciales
El primer paso para trabajar con git es inicializar el repositorio. Un repositorio no es más que una carpeta oculta llamada .git
que va a estar en la raíz del proyecto y que va a contener todo el historial de cambios.
Para inicializar un repositorio ingresa a la carpeta del proyecto y ejecuta el siguiente comando:
Este comando crea la carpeta oculta .git
con algunos archivos y carpetas; sólo se debe ejecutar una única vez por proyecto.
A los archivos y carpetas del proyecto (todo lo que esté por fuera de la carpeta .git
) se les llama el espacio de trabajo.
Commits
Una vez que el repositorio ha sido inicializado puedes empezar a crear commits. Un commit es una fotografía de tu proyecto en un momento determinado.
Para crear un commit ejecuta los siguientes dos comandos:
El primer comando, git add .
, le dice a git que incluya todos los cambios en el siguiente commit. Un cambio puede ser: un archivo nuevo, un archivo modificado, un archivo eliminado o un archivo movido a otra ubicación. Más adelante veremos cómo seleccionar individualmente los cambios que queremos incluir en el siguiente commit.
El segundo comando, git commit
es el que crea el commit. Cada commit tiene la siguiente información:
Un identificador (una cadena larga de caracteres)
Un autor (nombre y correo electrónico)
Una fecha
Un mensaje que describe el commit (lo escribe uno cuando crea el commit)
Los cambios desde el último commit.
También es posible escribir varias líneas en el mensaje de commit. Si omites la opción -m
se abrirá el editor de texto por defecto para que ingreses el mensaje:
El historial de commits
Para ver el historial de commits utiliza el comando git log
:
Este comando muestra los commits en orden descendente (primero los más recientes).
Puedes utilizar la opción --oneline
para ver una versión resumida que muestra los primeros 7 caracteres del identificador y el mensaje de cada commit:
Para ver un commit específico utiliza git show
seguido del identificador del commit (puedes utilizar los primeros 7 caracteres). Este comando, además de la información del commit, muestra la lista de cambios.
Cada cambio empieza con la línea diff --git
. En este ejemplo sólo tenemos un cambio (el archivo index.html
). En las últimas líneas vemos qué cambio: una línea se agregó (la que empieza con +
) y otra se eliminó (la que empieza con -
). Generalmente en la consola aparecen las nuevas líneas en verde y las que se eliminaron en rojo.
El estado del repositorio
Utiliza el comando git status
para ver el estado del repositorio: los nuevos archivos, archivos modificados, archivos eliminados, los cambios que se van a incluir en el próximo commit, etc.
Cuando el repositorio no tiene cambios vas a ver algo así:
Si hay cambios, git status
muestra tres secciones:
Archivos que se van a incluir en el siguiente commit (a esto se le conoce como el index).
Archivos modificados o eliminados que aún no están en el index (no serían incluídos en el siguiente commit).
Nuevos archivos.
La siguiente imagen muestra un ejemplo de git status
que tiene las tres secciones:
Sin embargo, si alguna sección no tiene archivos, esa sección no se muestra al ejecutar git status
.
Cada sección nos muestra algunos comandos que podemos utilizar para pasar los archivos de un estado a otro. Veamos las operaciones más comunes:
Agregando un archivo al index
El index es el espacio que contiene los cambios que se van a incluir en el siguiente commit.
Para agregar un archivo nuevo o modificado al index utiliza el comando git add
seguido del nombre del archivo (puedes incluir varios archivos separados por espacio). Por ejemplo:
Este comando agregaría el archivo index.html
al index (asumiendo que el archivo es nuevo, tiene cambios o fue eliminar) y aparecería en la primera sección del git status
.
Para agregar todos los cambios utiliza el comando:
Sólo los archivos que estén en el index serán incluídos en el siguiente commit.
Removiendo un archivo del index
Si agregaste un archivo al index y después deseas removerlo, es decir, ya no lo quieres incluir en el siguiente commit, puedes utilizar el comando git reset HEAD
seguido del nombre del archivo:
Este comando remueve el archivo index.html
del index. Los cambios no se pierden pero los cambios de ese archivo no se incluirán en el siguiente commit y el archivo aparecerá en la sección de archivos modificados del git status
.
Descartando cambios
Si quieres descartar los cambios de un archivo completamente, es decir, volver a como se encontraba en el último commit, utiliza el comando git checkout --
seguido del nombre del archivo:
Para que este comando funcione, el archivo se debe encontrar fuera del index. Si el archivo está en el index debes removerlo (como se muestra en la sección anterior) antes ejecutar este comando.
Explorando los cambios
Para ver los cambios que aún no están en el index utiliza el siguiente comando:
Para ver los cambios que están en el index utiliza:
El resultado de git diff
(con o sin la opción --staged
) es igual a lo que vimos previamente en la sección estado del repositorio con el comando git show
.
Resumen de comandos
En esta sección vamos a hacer un resumen de los comandos que hemos visto hasta ahora:
git init
- inicializa un repositorio.git add
- agrega archivos al index.git commit
- crea un commit, sólo los archivos que estén en el index serán incluídos en el commit.git log
- muestra el historial de commits.git show
- muestra la información de un commit específico incluyendo los cambios que se realizaron en ese commit.git status
- muestra el estado del repositorio.git reset HEAD
- remueve uno o más archivos del index.git checkout --
- descarta los cambios que se hicieron a uno o más archivos.git diff
- muestra los cambios que están en los archivos modificados o en el index (con la opción--staged
).
Last updated