Saltar al contenido principal

Los 20 mejores comandos Git con ejemplos: Guía práctica

Esta guía cubre los comandos Git más esenciales con ejemplos para ayudarte a trabajar de forma más eficiente.
Actualizado 4 mar 2025  · 15 min de lectura

Git es una herramienta esencial para cualquiera que trabaje con código, ya seas desarrollador de software, científico de datos, ingeniero de datos o profesional del aprendizaje automático. Permite a los equipos colaborar simultáneamente en el mismo proyecto, al tiempo que proporciona un historial claro de las modificaciones del código, facilitando el seguimiento y la gestión de las actualizaciones.

En este artículo, te guiaré a través de los comandos Git más utilizados, su sintaxis y cómo aplicarlos en tu trabajo diario.

Comandos Git básicos

Los pasos básicos para trabajar con Git incluyen crear un repositorio, copiar uno existente y editar el código. Esta sección trataes estas funciones fundamentales de git en detalle, juntocon la sintaxis para implementarlas .

¿Necesitas instalar Git? Sigue esta guía para instalar Git en tu sistema.

git init

El comando git init crea un nuevo repositorio Git o reinicia uno existente.  

Cuando ejecutas el comando, tu directorio actual se convierte en un repositorio Git, lo que te permite seguir sus cambios. Añade una carpeta oculta .git en el directorio, donde Git almacena todos los metadatos, el historial de versiones y los registros relacionados con el proyecto.

clonar git

Para copiar un repositorio Git de una ubicación a otra, utilizamos el comando git clone. Normalmente copia un repositorio existente, incluyendo registros y versiones, desde servidores remotos como GitHub o GitLab a tu máquina local. 

Paso 1: Navega hasta el repositorio de GitHub que quieras clonar y haz clic en "Código".

comando git clone

comando git clone

Paso 2: Copia la URL como se muestra en la imagen. 

git clone comando básico

git clone comando básico

Paso 3: Ve al directorio donde quieres clonar este repositorio en la máquina local y ejecuta el siguiente comando: 

git clone <copied_URL>

estado git

El comando git status nos muestra detalles sobre: 

  • archivos modificados (archivos modificados pero no puestos en escena).
  • archivos no rastreados (archivos que Git no está rastreando).
  • archivos preparados (archivos preparados y listos para ser enviados).

Ésta es la sintaxis:

git status 

 Comando de estado Git

Comando de estado Git

git añadir

El comando git add añade tus cambios al área de preparación. Indica a Git que el repositorio debe actualizar estos cambios una vez que el usuario ejecute el comando confirmar.

  • git add . : escenifica los cambios realizados en todos los archivos. 
  • git add : incluye sólo los cambios realizados en un archivo concreto del área de preparación.

git commit

Un comando git commit guarda los cambios que has realizado (o puesto en escena) en el repositorio local. Cada vez que ejecutas git commit, Git crea una instantánea de tu repositorio en ese momento. Esto te permite volver a una confirmación anterior siempre que sea necesario.

Ésta es la sintaxis:

git commit -m "commit_message"

El mensaje de confirmación es una breve descripción de los cambios realizados en una confirmación.

Aprende hoy los fundamentos de Git

Para principiantes: Control de versiones maestro mediante Git.
Empieza a aprender gratis

Trabajar con repositorios remotos

GitHub aloja varias aplicaciones en sus servidores remotos, lo que permite a los desarrolladores seguirlas y gestionarlas. En esta sección, veremos cómo extraer, transferir e interactuar con esos repositorios remotos utilizando comandos Git. 

¿Quieres saber cómo funciona GitHub? Empieza con una Introducción a los conceptos de GitHub para entender los repositorios, los pull requests y las mejores prácticas de colaboración.

git remote add

El comando git remote add crea una conexión entre tu repositorio Git local y el repositorio Git remoto, permitiéndote introducir y extraer cambios entre ellos:

git remote add <repo_name> <remote_url>
  • : un apodo para el repositorio remoto("origen" por defecto).
  • : URL del repositorio remoto.

git push

El comando git push sincroniza tu repositorio remoto con el repositorio local. Una vez que ejecutes este comando, el repositorio remoto reflejará todos los cambios que hayas confirmado localmente.

git push <remote> <branch>
  • : alias del repositorio remoto ("origen" por defecto).
  • : nombre de la rama que quieres empujar.

Hay algunas variaciones de git push, por ejemplo:

git push ---all origin

El comando anterior empuja todas tus ramas locales al repositorio remoto.

git push --force origin main

El comando anterior sobrescribe la rama main del repositorio remoto con tu rama local main. Ten cuidado al utilizarlo, ya que la rama principal remota podría perder todo su historial. 

git pull

El comando git pull recupera y fusiona los cambios del repositorio remoto con los del repositorio local. 

El comando git pull combina dos comandos: git fetch y git merge

En primer lugar, git fetch recupera todos los cambios del repositorio remoto, incluidos los nuevos commits, etiquetas y ramas. A continuación, se ejecuta git merge, integrando esos cambios en la rama local actual. 

Ésta es la sintaxis:

git pull origin feature-branch

El comando anterior obtiene los datos de feature_branch en el repositorio remoto y los envía a tu rama local actual. 

git recuperar

El comando git fetch te permite revisar los cambios en el repositorio remoto antes de fusionarlos en el local. Descarga los cambios y actualízalos en ramas de seguimiento remotas. Para los que no estén familiarizados, las ramas de seguimiento remoto son copias de ramas de repositorios remotos. 

Por ejemplo, el siguiente comando descarga los cambios en el repositorio remoto y los actualiza en ramas de seguimiento remotas bajo origin:

git fetch origin

Bifurcar y fusionar en Git

La ramificación Git permite a los desarrolladores trabajar de forma independiente en nuevas funciones o correcciones de errores sin afectar al repositorio principal. Una vez que los cambios están listos, la fusión los integra en la base de código principal. Exploremos los comandos clave que intervienen en este proceso.

rama git

El comando git branch lista, crea o elimina ramas. Una rama es otra versión de tu repositorio. 

Si estás desarrollando una nueva función para tu aplicación, puedes crear y trabajar en una nueva rama. Puedes fusionar todo a la rama principal una vez que todo esté listo y probado. Esto te permite trabajar en nuevas funciones de forma independiente, sin alterar directamente la línea principal.  

  • git branch: muestra la lista de todas las ramas del repositorio.
  • git branch : crea una nueva rama llamada "nombre_rama".
  • git branch -d : Elimina la rama llamada "nombre_rama".

git checkout

Elcomando git checkoutpuede hacer dos cosas: cambiar entre ramas o restaurar archivos a un estado anterior.

  • Cambia de rama: Antes de git 2.23, el comando git checkout branch_name se utilizaba para cambiar de tu rama actual a otra. Pero no era sólo para cambiar de la existente; también puedes crear y cambiar a una nueva rama.

El siguiente comando crea una nueva rama llamada "rama_característica" y cambia a ella:

git checkout -b feature_branch

Sin embargo, en la última versión de Git, git checkout se sustituye por git switch para restaurar archivos. 

  • Restaurar archivos: Puedes descartar los cambios que hayas hecho en un archivo y restaurarlo a su versión anterior con el siguiente comando.
git checkout -- <file-name>

También puedes hacerlo con un archivo de otra rama de la siguiente manera:

git checkout <branch-name> -- <file-name>

git merge

Si has realizado algún trabajo en una nueva rama, puedes fusionarla con la rama principal utilizando git merge para implementar los cambios. Git realiza la fusión de dos formas:

  • Fusión rápida: Supongamos que has creado una nueva rama llamada "feature_x" a partir de la rama principal y has trabajado en ella. Si la rama principal no ha tenido ninguna actualización desde que creaste "feature_x", en lugar de confirmar los cambios de "feature_x" en la rama principal, Git actualiza la rama principal para que apunte a la última versión de "feature_x". En este caso, no se crea ninguna nueva confirmación de fusión. 
  • Fusión a tres bandas: Si tanto "feature_x" como la rama principal tienen ediciones, Git combina los cambios y crea una nueva confirmación de fusión en la rama principal. 

Por ejemplo: 

      C---D---F (feature-branch)
     /
A---B---E---G (main)

En el commit B, se crea la rama de características C. La rama principal tiene commits adicionales, E y G, incluso después de crear la rama de características. Por lo tanto, la característica se fusiona con la principal, creando una nueva confirmación de fusión M como sigue:

      C---D---F (feature-branch)
     /         \         
A---B---E---G---M (main)

git rebase

git rebase es otra forma de integrar cambios entre ramas, pero funciona de forma distinta a git merge. Fusionar conserva el historial completo tanto de la rama principal como de la rama de características. Rebase, por otro lado, sobrescribe el historial de confirmaciones para hacerlo lineal y limpio.

Además, fusionar requiere una confirmación de fusión adicional, mientras que rebase no crea ninguna confirmación nueva. Git rebase realiza dos pasos: 

  1. Cambiar a una rama de características 
  2. Rebase en main.

Por ejemplo:

      C---D---F (feature-branch)
     /
A---B---E---G (main)
  • Paso 1: ejecuta git checkout feature_branch.
  • Paso 2: Ejecuta git rebase main: Mover toda la rama de características a la rama principal reaplicando los commits C, D, F como C’, D’, y F’ sobre el último commit G en la rama principal. Esto crea un historial de confirmaciones lineal como el siguiente
A---B---E---G---C'---D'---F' (main)

Como a menudose confunden las operaciones de fusión y de cambio de base, aquí tienes un resumen de las diferencias:

Fusiona 

Rebase

Conserva todo el historial de confirmaciones de ambas ramas.

Sobrescribe el historial de confirmaciones para hacerlo lineal.

Se crea una confirmación de fusión adicional.

No se crean confirmaciones adicionales.

La estructura de la rama es visible en el historial.

Hace que el historial de confirmaciones parezca una línea recta.

Utilízalo para hacer un seguimiento del historial de confirmaciones de cada rama, incluyendo una cronología de cuándo se fusionaron.

Utilízalo cuando necesites un historial de confirmaciones claro y fácil de entender. 

¿Quieres saber más sobre cómo trabajar con sucursales remotas? Aprende a consultar y hacer un seguimiento de las ramas remotas utilizando git checkout en este tutorial paso a paso.

Historial Git y deshacer cambios

Git proporciona varios comandos para ver el historial y deshacer los cambios en diferentes etapas del desarrollo. Los comandos relevantes se tratan aquí. 

git log

El comando git log muestra todo el historial de confirmaciones de tu rama actual. Incluye cuatro campos clave: confirmación, autor, fecha y mensaje de confirmación. 

historial de commits de git

historial de commits de git

  • Compromiso: un identificador único.
  • Autor: nombre y correo electrónico de la persona.
  • Fecha: La fecha y hora en que se confirmó el cambio.
  • Mensaje de confirmación: descripción de la confirmación. 

git diff

La página git diff muestra las diferencias entre varios estados de tu repositorio, ya sea comparando tu directorio actual con el área de preparación, el área de preparación con la última confirmación, o incluso dos archivos o ramas, lo que especifiques.

  • git diff - muestra la diferencia entre tu directorio de trabajo actual y el área de preparación. 
  • git diff -- cached: muestra las diferencias entre la zona de preparación y la última confirmación.
  • git diff commit1 commit2 - la diferencia entre commit 1 y commit 2.
  • git diff branch1..branch2 - compara las diferencias entre branch 1 y branch 2.

git reset

El comando git reset te permite deshacer cambios restableciendo el HEAD actual a un estado anterior específico. Para mover el HEAD a un commit anterior, tienes tres variantes: "suave", "mixta" y "dura" para utilizarlas con el comando reiniciar. 

  • Suave: retrocede a una confirmación anterior pero mantiene los cambios actuales, permitiéndote volver a confirmarlos más tarde cuando sea necesario. 

git reset --soft HEAD~1

  • Mixto: retrocede a una confirmación anterior y elimina los cambios de la confirmación actual del área del escenario. Sin embargo, esos cambios no se verán afectados en tu directorio de trabajo.

git reset --mixed HEAD~1

  • Duro: Esto apuntará a una confirmación anterior, a la vez que eliminará las actualizaciones de la confirmación actual del directorio de trabajo y del área de preparación. 

git reset --hard HEAD~1

¿Necesitas deshacer cambios en Git? Explora las diferencias entre git reset y git revert en testa detallada guía.

Almacenamiento y limpieza de Git

Cuando trabajas en Git, puede que necesites apartar temporalmente cambios sin confirmarlos o limpiar archivos innecesarios que abarrotan tu repositorio. Aquí es donde resultan útiles los comandos de almacenamiento y limpieza de Git.

alijo git

Supongamos que quieres moverte a un estado anterior pero no quieres comprometer tu progreso actual; puedes utilizar git stash. Esto guarda temporalmente tus cambios no comprometidos y restablece tu directorio de trabajo al último estado comprometido. 

git stash pop

Si has guardado algunos cambios en el pasado y quieres incluirlos en tu directorio de trabajo, utiliza el comando git stash pop. Esto aplicará los últimos cambios almacenados al directorio actual y los eliminará de la lista de cambios almacenados. 

git limpiar

El comando git clean borra los archivos sin seguimiento del repositorio Git. ¡Utiliza el comando git clean -n para previsualizar lo que se borrará antes de ejecutar el comando borrar!

¿Quieres limpiar tu historial Git? Aprende a combinar varios commits enen uno solo con este tutorial de aplastamiento de Git.

Configuración Git y ajustes de usuario

Git te permite configurar los ajustes de usuario a diferentes niveles. Explorémoslos aquí.

git configurar

El comando git config te permite personalizar la configuración de Git según tus necesidades. Puedes configurar los ajustes a tres niveles: local, del sistema y global. 

  • A nivel de sistema: Es el nivel de configuración más amplio con acceso a nivel raíz.
  • Nivel global: Las configuraciones de este nivel se aplican a todos los repositorios del usuario actual.
  • A nivel local: En este nivel se pueden personalizar los ajustes relevantes para el repositorio Git actual. 

Estos son algunos comandos comunes de git config:

  • git config -list: Muestra los ajustes Git de todos los niveles.
  • git config --global user.name "Your_name": Establece el nombre de usuario Git para todos los repositorios de tu sistema en "Tu_nombre".
  • git config --global user.email "your.email@example.com": Establece la dirección de correo electrónico para todos los repositorios de tu sistema.

Sabemos que master es la rama principal por defecto cuando se inicializa un repositorio Git. Pero puedes cambiarle el nombre por el que desees utilizando el siguiente comando:

git config --global init.defaultBranch "srujana_master"

En el comando anterior, hemos sustituido la rama maestra por defecto por "srujana_master" a nivel global (para todos los repositorios del sistema).

Puedes aplicar otros ajustes a nivel global. Por ejemplo, para cambiar tu editor de texto por defecto a código VS, ejecuta el siguiente comando:

git config -global core.editor "code-w"

También puedes crear tus propios comandos Git. Por ejemplo:

git config --global alias.slice branch

El comando anterior crea un nuevo alias slice para la rama. Así, si pretendes crear una nueva rama, puedes ejecutar git slice branch_name en lugar de git branch branch_name.

Resumen de comandos Git

Aquí tienes un resumen de los comandos Git que hemos explorado para que los tengas a mano:

Mando

Descripción

Ejemplo de uso

git init

Inicializa un nuevo repositorio Git.

git init

git clone

Clona un repositorio Git existente.

git clone

git status

Comprueba el estado de los archivos del directorio de trabajo.

git status

git add

Añade archivos al área de preparación.

git add

git commit

Consigna los cambios por etapas en el repositorio local.

git commit -m 'Commit message'

git remote add

Añade una conexión de repositorio remoto.

git remote add origin

git push

Empuja los cambios confirmados a un repositorio remoto.

git push origin

git pull

Obtener y fusionar cambios de un repositorio remoto.

git pull origin

git fetch

Obtener cambios de un repositorio remoto sin fusionar.

git fetch origin

git branch

Lista, crea o elimina ramas.

git branch

git checkout

Cambiar entre ramas o restaurar archivos (método antiguo).

git checkout

git switch

Pasar de una rama a otra (preferible en versiones más recientes).

git switch

git merge

Fusiona los cambios de una rama en otra.

git merge

git rebase

Vuelve a aplicar los commits de una rama a otra para tener un historial más limpio.

git rebase

git log

Ver el historial de confirmaciones.

git log

git diff

Muestra las diferencias entre los distintos estados del depósito.

git diff

git reset

Deshacer los cambios restableciendo HEAD a un estado anterior.

git reset --soft HEAD~1

git stash

Guarda temporalmente los cambios no comprometidos y restablece el directorio de trabajo.

git stash

git stash pop

Aplica los últimos cambios almacenados al directorio de trabajo.

git stash pop

git clean

Elimina los archivos sin seguimiento del repositorio.

git clean -n

git config

Configura las opciones de Git a nivel de sistema, global o local.

git config --global user.name 'Your Name'

Buenas prácticas para utilizar Git

Utilizar Git de forma eficaz va más allá del seguimiento de los cambios: se trata de mantener un flujo de trabajo limpio, estructurado y colaborativo. Seguir las mejores prácticas ayuda a garantizar que tu repositorio permanezca organizado, que tu historial de confirmaciones tenga sentido y que tu proceso de desarrollo se desarrolle sin problemas.

Aquí tienes algunos hábitos clave que debes adoptar cuando trabajes con Git:

  • Comprométete a menudo: Uno de los principales objetivos de utilizar un control de versiones como Git es realizar un seguimiento eficaz de los cambios a lo largo del tiempo. Cuando confirmas cada cambio por separado en lugar de actualizar varios cambios juntos, es más fácil comprender posteriormente qué se modificó en cada confirmación. 
  • Comprométete con mensajes claros: Cada vez que te comprometas, acompáñalo de un mensaje claro que describa de qué se trata ese compromiso. La próxima vez que rastrees confirmaciones, será mucho más sencillo saber qué cambios ha hecho cada confirmación en el código. 
  • Utiliza ramas: Para cualquier nueva función o corrección de errores, crea una rama, trabaja en ella y fusiónala. Ésta es la mejor práctica para separar el nuevo trabajo de desarrollo del proyecto principal. 
  • Utiliza .gitignore: Un archivo .gitignore contienearchivos y directorios relacionados con el proyecto que no es necesario rastrear. Suelen incluir archivos generados automáticamente, artefactos de compilación, archivos de registro, temporales y específicos de la plataforma. Ignorarlos evitará registros y versiones de seguimiento innecesarios, manteniendo limpio tu historial.

Conclusión

Git es una potente herramienta para hacer un seguimiento de los cambios, colaborar con otros y mantener un flujo de trabajo de desarrollo bien estructurado. En este artículo, he tratado los comandos esenciales de Git y las mejores prácticas para ayudarte a gestionar tus proyectos de forma más eficaz.

Por supuesto, ¡siempre hay más cosas que aprender! Si estás empezando, consulta Introducción a Git para construir una base sólida. Para quienes deseen perfeccionar aún más sus conocimientos, Git Intermedio profundiza en los flujos de trabajo y las técnicas avanzadas.

¿Necesitas una referencia Git rápida para futuros proyectos? ¡Ten a mano los comandos esenciales con esta hoja de trucos de Git!

Aprende hoy los fundamentos de Git

Para principiantes: Control de versiones maestro mediante Git.

Preguntas frecuentes

¿Cuál es la diferencia entre git pull y git fetch?

git pull obtiene los cambios de un repositorio remoto y los fusiona en tu rama local, mientras que git fetch sólo descarga las actualizaciones, permitiéndote revisarlas antes de fusionarlas.

¿Cómo cambio el nombre de una rama Git?

Para renombrar la rama actual:

git branch -m new-branch-name

Si renombras una rama diferente:

git branch -m old-branch-name new-branch-name

¿Cómo elimino una rama en Git?

Para eliminar una rama local:

git branch -d branch-name

Para eliminar una rama remota:

git push origin --delete branch-name

¿Cuál es la diferencia entre git merge y git rebase?

git merge combina cambios de distintas ramas conservando el historial, mientras que git rebase reescribe el historial de confirmaciones para crear una secuencia lineal más limpia.

¿Puedo deshacer un commit de git?

Sí. Para deshacer la última confirmación pero mantener los cambios en el área de preparación:

git reset --soft HEAD~1

Para deshacer la última confirmación y eliminar los cambios de la puesta en escena:

git reset --mixed HEAD~1

Para descartar completamente los cambios:

git reset --hard HEAD~1

¿Cómo compruebo en qué rama estoy actualmente?

Corre:

git branch --show-current

O simplemente:

git status

¿Cómo deshago los cambios en un solo archivo?

Para descartar los cambios no organizados en un archivo:

git checkout -- filename

Para revertir un archivo a su último estado comprometido:

git restore filename

¿Cómo enumero todas las ramas remotas de un repositorio Git?

Utilízalo:

git branch -r

¿Cómo fuerzo el push de una rama en Git?

Ten cuidado al forzar un push, ya que sobrescribe los cambios remotos:

git push --force origin branch-name

¿Cómo puedo ver un historial gráfico de mis confirmaciones Git?

Si quieres una visualización tipo gráfico de tu historial de confirmaciones:

git log --oneline --graph --all --decorate

Srujana Maddula's photo
Author
Srujana Maddula
LinkedIn

Srujana es una redactora técnica autónoma con una licenciatura de cuatro años en Informática. Escribir sobre diversos temas, como la ciencia de datos, la computación en la nube, el desarrollo, la programación, la seguridad y muchos otros, le resulta natural. Le encanta la literatura clásica y explorar nuevos destinos.

Temas

Aprende más sobre Git con estos cursos

curso

Introduction to Git

2 hr
16K
Discover the fundamentals of Git for version control in your software and data projects.
Ver detallesRight Arrow
Comienza el curso
Ver másRight Arrow
Relacionado

blog

¿Qué es la gestión de datos? Guía práctica con ejemplos

Aprende los conceptos y teorías fundamentales de la gestión de datos, junto con algunos ejemplos prácticos. Utiliza estas habilidades en tu trabajo diario de ciencia de datos para generar datos limpios y útiles para tus modelos.
Tim Lu's photo

Tim Lu

12 min

tutorial

Tutorial de GitHub y Git para principiantes

Un tutorial para principiantes que muestra cómo funciona el control de versiones Git y por qué es crucial para los proyectos de ciencia de datos.
Abid Ali Awan's photo

Abid Ali Awan

17 min

tutorial

Tutorial de Git Revert y Git Reset para principiantes

Una guía tutorial para principiantes que muestra cómo utilizar los comandos Git Revert y Reset.
Zoumana Keita 's photo

Zoumana Keita

10 min

tutorial

Tutorial de GIT Push y Pull

Aprende a realizar solicitudes de Git PUSH y PULL con GitHub Desktop y la línea de comandos.

Olivia Smith

13 min

tutorial

Git Prune: Qué es la poda Git y cómo usarla

La poda Git es un comando Git que elimina del repositorio los objetos que ya no son accesibles desde ninguna confirmación o rama, ayudando a liberar espacio en disco.
François Aubry's photo

François Aubry

5 min

tutorial

Git rename branch: Cómo cambiar el nombre de una rama local o remota

Aprende a renombrar ramas Git locales y remotas utilizando el terminal o la interfaz gráfica de usuario (GUI) de clientes populares como GitHub.
François Aubry's photo

François Aubry

Ver másVer más