- 1. Git Config
- 2. Iniciando o Clonando un repositorio
- 3. Comandos Básicos
- 4. El archivo .gitignore
- 5. Trabajando con ramas
- 6. Deshaciendo y modificando commits
- 7. Commits Semánticos
- 8. Tags
- 9. Comandos Avanzados
- 10. Gita Aliases
- 11. Git Flow
En este tercer artículo sobre la guía para aprender Git de manera sencilla y desde cero, vamos a profundizar en los comandos básicos. Pero antes de meternos en harina, es recomendable entender cómo funciona Git, qué parte está en tu equipo en local, qué parte está en el repositorio remoto, y hasta dónde llega cada comando, y nada mejor que una imagen para ilustrarlo:
git add
El comando git add
añade un cambio del directorio de trabajo en el entorno de stage. Indica a Git que quieres incluir actualizaciones en uno o varios archivos en el próximo commit, pero este trabajo aún sigue en tu máquina. Puedes añadir tus archivos uno por uno, todos a la vez e incluso especificar reglas:
# Añadir todos los archivos
git add .
# Añadir un archivo concreto
git add [filename]
# Añadir todos los archivos omitiendo los nuevos
git add --all
# Añadir todos los archivos con una extensión específica
git add *.txt
# Añadir todos los archivos dentro de un directorio
git add docs/
# Añadir todos los archivos dentro de un directorio y con una extensión específica
git add docs/*.txt
git commit
El comando git commit
captura una instantánea de los cambios preparados en ese momento del proyecto (los que hayamos añadido con git add
anteriormente). Las instantáneas confirmadas pueden considerarse como versiones «seguras» de un proyecto: Git no las cambiará nunca a no ser que se lo pidas expresamente.
Los commits son puntos de control a través de los cuales podemos viajar para ir a versiones anteriores en nuestro desarrollo. Lo que se comitea aún no está subido al repositorio remoto. Su sintaxis es:
git commit -m "Descriptive text for this commit"
Podemos añadir los ficheros modificados y hacer el commit en un único paso del siguiente modo:
git commit -a -m "Descriptive text for this commit"
# ó
git commit -am "Descriptive text for this commit"
git push
Este comando se utiliza para subir nuestros commits al repositorio remoto y compartirlos con el resto del equipo. Su sintaxis es:
# Push de tus commits la primera vez, si quieres enviar tu rama al repositorio remoto
git push -u origin [branch_name]
# Push "normal"
git push [remote] [branch_name]
Los argumentos remote y branch son opcionales, git ya tiene la información del remoto y de la rama actual. Sin embargo son obligatorios la primera vez (además habrá que utilizar el flag -u
) que vayas a realizar un push del repositorio, o de una rama que hayas creado en local, de este modo creará la misma rama en el repositorio remoto.
En ocasiones puede producirse un error al hacer push, y que git te devuelva algún tipo de conflicto. Disponemos del flag --force
para forzar a que su suban nuestros cambios locales, sobreescribiendo la rama remota por nuestra versión local.
git push [remote] --force
No utilices el flag --force
a menos de que tengas absoluta certeza de lo que estás haciendo.
git pull
El comando git pull
se emplea para extraer y descargar contenido desde un repositorio remoto y actualizar al instante el repositorio local para reflejar ese contenido.
git pull
El comando git pull
es, en realidad, una combinación de dos comandos, git fetch
seguido de git merge
. En la primera etapa de la operación git pull
ejecutará un git fetch
en la rama local a la que apunta HEAD. Una vez descargado el contenido, git pull
entrará en un flujo de trabajo de fusión. Se creará una nueva confirmación de fusión y se actualizará HEAD para que apunte a la nueva confirmación.
git status
El comando git status muestra el estado del directorio de trabajo y del área del entorno de ensayo. Permite ver los cambios que se han preparado, los que no y los archivos en los que Git no va a realizar el seguimiento.
git status
El resultado del estado no muestra ninguna información relativa al historial del proyecto.
git log
Para acceder al histórico de commits utilizaremos el comando git log.
git log
Nota
Si el listado es grande y no cabe en la ventana del terminal, podemos ir a la siguiente página con la barra espaciadora. O puedes moverte mediante los cursores del teclado, arriba y abajo.
El listado de commits aparece invertido, es decir, los últimos realizados aparecen los primeros. De un commit podemos ver diversas informaciones básicas como:
- Identificador del commit
- Autor
- Fecha de realización
- Mensaje enviado
Este comando acepta una serie de argumentos
# Mostrar información en una sola línea
git log --oneline
# Ver un número limitado de commits
git log -[n]
# Ver información extendida del commit
git log -p
# Ver información de los logs a color y en una sola línea
git log --all --decorate --oneline --graph
git diff
Podemos comparar la diferencia entre lo que estamos trabajando y lo que hay en el control de versiones utilizando el comando git diff
, con la siguiente sintaxis:
# Todos los cambios
git diff
# Los cambios de un archivo concreto
git diff [filename]