git status es un comando que nos enseña un listado de rutas de archivos que se han modificado o borrado y aquellos que están en el workspace o en el staging area.

Es la herramienta principal para indicarnos en el estado en el que están los ficheros dado que, antes de hacer un commit y crear una nueva versión de tus ficheros, necesitamos ver el estado de lo que llevamos hecho.

Si ejecutas este comando sin hacer nada todavía te debería de decir algo parecido a lo siguiente:

En la rama main
nada para hacer commit, el árbol de trabajo está limpio

Con esto nos indica que no tenemos nada modificado de lo que tenemos trackeado. También nos dice en la rama o branch en la que estamos (que en mi caso es main, que es la principal). Como de momento no hemos salido al exterior (remoto) tampoco nos da información de si esa rama ha divergido con la que está en remoto.(Hablaremos más adelante de todo esto)

Puede que veas que la rama principal se llame main o master, esa es la rama por defecto.

Si queremos una versión menos verbosa que la que tiene por defecto podemos usar, que es la version --short :

git status -s
🎩
Por defecto git status nos trae la versión --long que es verbosa, descriptiva y diseñada para que las personas humanas podamos leerlo.

Si creamos un fichero que está en el workspace todavía nos indicaría esto:

?? fichero.txt

Los dos interrogantes (Indicador del estado del fichero) significan que es un fichero sin trackear y se mostrará en rojo y luego se muestra la ruta del fichero. Esta estructura de mostrar la indicación y luego el fichero es la salida del comando forma parte del formato de salida del comando. Os paso la leyenda de las posibles indicaciones que podemos tener para que podáis investigar.

  • ?? →Fichero sin trackear
  • A →Fichero añadido
  • D →Fichero borrado
  • R →Fichero renombrado
  • M →Fichero modificado
  • C →Fichero copiado
  • U →Fichero actualizado pero sin mergear
  • '' →Fichero sin modificar

Otra opción semejante sería la siguiente:

git status --porcelain

En este caso el color de estado (rojo o verde) no está definido y las rutas se muestran relativas.

🎩
La opción porcelain está destinada a que sea más legible y simple para poder parsear con la finalidad de automatizar algún proceso.

Podemos ver con la siguiente opción los ficheros que están sin trackear (untracked):

git status -u

Como puedes ver con git status podemos ver los ficheros que han cambiado pero también su estado:

  • Cambios a commitear, son los cambios en staged (staging area) que haremos git commit. Por lo cual lo que hace es listar los ficheros que están en el staging area y no están en el último commit. Se ven en color verde.
  • Ficheros sin trackear, lista los ficheros que, no son conocidos por git, es decir ficheros nuevos para git. Están en el workspace
  • Cambios no stageados para commit que también están en el workspace pero con cambios con respecto a los que están en el commit, es decir, los ficheros a actualizar. Estos cambios recuerda que necesitan pasar por el git add para que podamos hacer commit. Se ven en color rojo.

La próxima más y mejor!!

Haz que cada palabra cuente: tu donación nos inspira a seguir creando contenido. Accede al apartado de Donación para hacer tu aportación