Original article: Git Cheat Sheet – 50 Git Commands You Should Know

Git es un sistema de control de versiones distribuido que ayuda a los desarrolladores a colaborar en proyectos de cualquier escala.

Linus Torvalds, el desarrollador del kernel de Linux, creó Git en 2005 para ayudar a controlar el desarrollo de este.

¿Qué es un sistema de control de versiones distribuido?

Un sistema de control de versiones distribuido es un sistema que ayuda a realizar un seguimiento de los cambios hechos en los archivos de tu proyecto.

Este historial de cambios vive en tu máquina local y te permite volver a una versión anterior de tu proyecto con facilidad en caso de que algo salga mal.

Git facilita la colaboración. Cada miembro del equipo puede mantener una copia de seguridad completa de los repositorios en los que está trabajando en su máquina local. Luego, gracias a un servidor externo como BitBucket, GitHub o GitLab, puede almacenar el repositorio de forma segura en un solo lugar.

De esta forma, diferentes miembros del equipo pueden copiarlo localmente y todos tienen una clara visión general de todos los cambios realizados por todo el equipo.

Git tiene muchos comandos diferentes que puedes usar. Y descubrí que estos cincuenta son los que uso con más frecuencia (y, por lo tanto, son los más útiles para recordar).

Así que los anoté y pensé que sería bueno compartirlos con la comunidad. Espero que los encuentres útiles – Disfrútalos.

Cómo verificar tu configuración de Git:

El siguiente comando devuelve una lista de información sobre tu configuración de Git, incluido el nombre de usuario y el correo electrónico:

git config -l

Cómo configurar tu nombre de usuario de Git:

Con el siguiente comando puedes configurar tu nombre de usuario:

git config --global user.name "Fabio"

Cómo configurar tu usuario de correo electrónico de Git:

Este comando te permite configurar la dirección de correo electrónico del usuario que utilizarás en tus confirmaciones.

git config --global user.email "inscripciones@fabiopacifici.com"

Cómo almacenar en caché tus credenciales de inicio de sesión en Git:

Puedes almacenar las credenciales de inicio de sesión en el caché para que no tengas que escribirlas cada vez. Solo usa este comando:

git config --global credential.helper cache

Cómo inicializar un repositorio Git:

Todo comienza desde aquí. El primer paso es inicializar un nuevo repositorio de Git localmente en la raíz de tu proyecto. Puedes hacerlo con el siguiente comando:

git init

Cómo agregar un archivo al área de preparación en Git:

El siguiente comando agregará un archivo al área de preparación. Simplemente, reemplaza el nombre_de_archivo_aquí con el nombre del archivo que deseas agregar al área de preparación.

git add nombre_de_archivo_aquí

Cómo agregar todos los archivos en el área de preparación en Git

Si deseas agregar todos los archivos de tu proyecto al área de preparación, puedes usar un comodín . y cada archivo se agregará para ti.

git add .

Cómo agregar ciertos archivos al área de preparación en Git

Con el asterisco en el siguiente comando, puedes agregar todos los archivos que comienzan con fil en el área de preparación.

git add fil*

Cómo verificar el estado de un repositorio en Git:

Este comando mostrará el estado del repositorio actual, incluidos los archivos preparados, no preparados y sin seguimiento.

git status

Cómo confirmar cambios en el editor en Git:

Este comando abrirá un editor de texto en la terminal donde podrás escribir un mensaje de confirmación completo.

Un mensaje de confirmación se compone de un breve resumen de los cambios, una línea vacía y una descripción completa de los cambios posteriores.

git commit

Cómo confirmar cambios con un mensaje en Git:

Puedes agregar un mensaje de confirmación sin abrir el editor. Este comando solo te permite especificar un breve resumen para tu mensaje de confirmación.

git commit -m "tu mensaje de confirmación aquí"

Cómo confirmar cambios (y omitir el área de preparación) en Git:

Puedes agregar y confirmar archivos rastreados con un solo comando utilizando las opciones -a y -m.

git commit -a -m"tu mensaje de confirmación aquí"

Cómo ver tu historial de confirmaciones en Git:

Este comando muestra el historial de confirmación del repositorio actual:

git log

Cómo ver tu historial de confirmaciones, incluidos los cambios en Git:

Este comando muestra el historial de confirmaciones, incluidos todos los archivos y sus cambios:

git log -p

Cómo ver una confirmación específica en Git:

Este comando muestra una confirmación específica.

Reemplaza commit-id con el id de la confirmación que se encuentra en el registro de confirmación después de la palabra commit.

git show commit-id

Cómo ver las estadísticas de registro en Git:

Este comando hará que el registro de Git muestre algunas estadísticas sobre los cambios en cada confirmación, incluidas las líneas cambiadas y los nombres de los archivos.

git log --stat

Cómo ver los cambios realizados antes de confirmarlos usando "diff" en Git:

Puedes pasar un archivo como parámetro para ver solo los cambios en un archivo específico.
git diff muestra solo los cambios sin preparar de forma predeterminada.

Podemos llamar a diff con el indicador --staged para ver cualquier cambio por etapas.

git diff
git diff mi_archivo.py
git diff --staged

Cómo ver los cambios usando "git add -p":

Este comando abre un aviso y te pregunta si deseas realizar cambios o no, e incluye otras opciones.

git add -p

Cómo eliminar archivos rastreados del árbol de trabajo actual en Git:

Este comando espera un mensaje de confirmación para explicar por qué se eliminó el archivo.

git rm nombre_del_archivo

Cómo cambiar el nombre de los archivos en Git:

Este comando prepara los cambios, luego espera un mensaje de confirmación.

git mv archivo_viejo archivo_nuevo

Cómo ignorar archivos en Git:

Crea un archivo .gitignore y confírmalo.

Cómo revertir cambios no preparados en Git:

git checkout nombre_del_archivo

Cómo revertir los cambios por etapas en Git:

Puedes usar el indicador  -p para especificar los cambios que deseas restablecer.

git reset HEAD nombre_del_archivo
git reset HEAD -p

Cómo modificar la confirmación más reciente en Git:

git commit --amend te permite modificar y agregar cambios a la confirmación más reciente.

git commit --amend

!Nota!: Arreglar una confirmación local con ammend es excelente y puedes enviarlo a un repositorio compartido después de que lo hayas arreglado. Pero debes evitar modificar las confirmaciones que ya se han hecho públicas.

Cómo revertir la última confirmación en Git:

git revert creará una nueva confirmación que es lo opuesto a todo en la confirmación dada. Podemos revertir la última confirmación usando el alias principal como este:

git revert HEAD

Cómo revertir una confirmación antigua en Git:

Puedes revertir una confirmación anterior usando su id de confirmación. Esto abre el editor para que pueda agregar un mensaje de confirmación.

git revert confirmación_id_aquí

Cómo crear una nueva rama en Git:

Por defecto, tienes una rama, la rama principal. Con este comando, puedes crear una nueva rama. Git no lo cambiará automáticamente; deberás hacerlo manualmente con el siguiente comando.

git branch nombre_de_la_rama

Cómo cambiar a una rama recién creada en Git:

Cuando quieras usar una rama diferente o recién creada, puedes usar este comando:

git checkout nombre_de_la_rama

Cómo listar ramas en Git:

Puedes ver todas las ramas creadas usando el comando git branch. Mostrará una lista de todas las ramas y marcará la rama actual con un asterisco y la resaltará en verde.

git branch

Cómo crear una rama en Git y cambiar a ella inmediatamente:

Con un solo comando, puedes crear y cambiar a una nueva rama de inmediato.

git checkout -b nombre_de_la_rama

Cómo eliminar una rama en Git:

Cuando hayas terminado de trabajar con una rama y la hayas fusionado, puedes eliminarla usando el siguiente comando:

git branch -d nombre_de_la_rama

Cómo fusionar dos ramas en Git:

Para fusionar el historial de la rama en la que te encuentras actualmente con el nombre_de_otra_rama, debes usar el siguiente comando:

git merge nombre_de_otra_rama

Cómo mostrar el registro de confirmación como un gráfico en Git:

Podemos usar --graph para que el registro de confirmación se muestre como un gráfico. Además, --oneline limitará los mensajes de confirmación a una sola línea.

git log --graph --oneline

Cómo mostrar el registro de confirmación como un gráfico de todas las ramas en Git:

Hace lo mismo que el comando anterior, pero para todas las ramas.

git log --graph --oneline --all

Cómo cancelar una fusión conflictiva en Git:

Si deseas descartar una fusión y comenzar de nuevo, puedes ejecutar el siguiente comando:

git merge --abort

Cómo agregar un repositorio remoto en Git

Este comando agrega un repositorio remoto a tu repositorio local (simplemente reemplaza https://repositorio_aquí con la URL de su repositorio remoto).

git add remote https://repositorio_aquí

Cómo ver las URL remotas en Git:

Puedes ver todos los repositorios remotos de tu repositorio local con este comando:

git remote -v

Cómo obtener más información sobre un repositorio remoto en Git:

Simplemente reemplaza origin con el nombre del repositorio remoto obtenido al ejecutar el comando git remote -v.

git remote show origin

Cómo enviar cambios a un repositorio remoto en Git:

Cuando todo tu trabajo esté listo para guardarse en un repositorio remoto, puedes enviar todos los cambios con el siguiente comando:

git push

Cómo extraer cambios de un repositorio remoto en Git:

Si otros miembros del equipo están trabajando en tu repositorio, puedes recuperar los últimos cambios realizados en el repositorio remoto con el siguiente comando:

git pull

Cómo verificar las ramas remotas que Git está rastreando:

Este comando muestra el nombre de todas las ramas remotas que Git está rastreando para el repositorio actual:

git branch -r

Cómo obtener cambios de repositorios remotos en Git:

Este comando descargará los cambios desde un repositorio remoto, pero no realizará una fusión en tu rama local (ya que git pull lo hace en su lugar).

git fetch

Cómo verificar el registro de confirmaciones actual de un repositorio remoto en Git

Confirmación tras confirmación, Git crea un registro. Puedes encontrar el registro del repositorio remoto usando este comando:

git log origin/main

Cómo fusionar un repositorio remoto con tu repositorio local en Git:

Si el repositorio remoto tiene cambios que deseas fusionar con tu repositorio local, este comando lo hará por ti:

git merge origin/main

Cómo obtener el contenido de ramas remotas en Git sin fusionarlas automáticamente:

Esto te permite actualizar la rama remota sin fusionar ningún contenido en las ramas locales. Puedes llamar a git merge o git checkout para realizar la fusión.

git remote update

Cómo enviar una nueva rama a un repositorio remoto en Git:

Si deseas enviar una rama a un repositorio remoto, puedes usar el siguiente comando. Solo recuerda agregar -u para crear la rama upstream:

git push -u origin nombre_de_la_rama

Cómo eliminar una rama remota en Git:

Si ya no necesitas una sucursal remota, puedes eliminarla usando el siguiente comando:

git push --delete origin nombre_de_la_rama_aquí

Cómo usar Git rebase:

Puedes transferir el trabajo completado de una rama a otra usando git rebase.

git rebase nombre_de_la_rama_aquí

Git Rebase puede complicarse mucho si no lo haces correctamente. Antes de usar este comando, te sugiero que vuelvas a leer la documentación oficial aquí.

Cómo ejecutar rebase de forma interactiva en Git:

Puedes ejecutar git rebase de forma interactiva usando el indicador -i. Abrirá el editor y presentará un conjunto de comandos que puedes usar.

git rebase -i master
# p, pick = usar confirmación.
# r, reword = usar confirmación pero editar el mensaje de confirmación.
# e, edit = usar confirmación pero detenerse para modificar.
# s, squash = usar confirmación pero fusionarla con la confirmación anterior.
# f, fixup = como "squash", pero descartando el mensaje de confirmación.
# x, exec = ejecutar comando (el resto de la linea) usando shell.
# d, drop = eliminar confirmación.

Cómo forzar una solicitud push en Git:

Este comando forzará una solicitud de inserción (push). Por lo general, esto está bien para las ramas de solicitud de extracción (pull request),  porque nadie más debería haberlas clonado. Pero esto no es algo que desees hacer con repositorios públicos.

git push -f

Conclusión

Estos comandos pueden mejorar drásticamente tu productividad en Git. No tienes que recordarlos todos, por eso he escrito esta hoja de trucos. Marca esta página para futuras referencias o imprímela si lo deseas.

¡Gracias por leer! Por cierto, soy Fabio, desarrollador web full-stack, docente, y profesional certificado en automatización de IT con Python.