git control de versiones

Aprende Git de manera sencilla: Comandos básicos

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 Working Tree

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]

¿Te ha resultado útil esta información? 🍺

Si este post te ha resuelto un problema, invítame a un café o a una cerveza. Con este pequeño gesto me animas a seguir escribiendo.

Comentarios

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *:

  • El fin del tratamiento es únicamente la moderación de comentarios para evitar spam
  • La legitimación es tu consentimiento al comentar
  • No se comunicará ningún dato a terceros salvo por obligación legal
  • Tienes derecho al acceso, rectificación y eliminación de los comentarios