curso
Los 20 mejores comandos Git con ejemplos: Guía práctica
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
Paso 2: Copia la URL como se muestra en la imagen.
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
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
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:
- Cambiar a una rama de características
- 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 commitsC
,D
,F
comoC’
,D’
, yF’
sobre el último commitG
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
- 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 entrecommit 1
ycommit 2
.git diff branch1..branch2
- compara las diferencias entrebranch 1
ybranch 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 |
|
Inicializa un nuevo repositorio Git. |
|
|
Clona un repositorio Git existente. |
|
|
Comprueba el estado de los archivos del directorio de trabajo. |
|
|
Añade archivos al área de preparación. |
|
|
Consigna los cambios por etapas en el repositorio local. |
|
|
Añade una conexión de repositorio remoto. |
|
|
Empuja los cambios confirmados a un repositorio remoto. |
|
|
Obtener y fusionar cambios de un repositorio remoto. |
|
|
Obtener cambios de un repositorio remoto sin fusionar. |
|
|
Lista, crea o elimina ramas. |
|
|
Cambiar entre ramas o restaurar archivos (método antiguo). |
|
|
Pasar de una rama a otra (preferible en versiones más recientes). |
|
|
Fusiona los cambios de una rama en otra. |
|
|
Vuelve a aplicar los commits de una rama a otra para tener un historial más limpio. |
|
|
Ver el historial de confirmaciones. |
|
|
Muestra las diferencias entre los distintos estados del depósito. |
|
|
Deshacer los cambios restableciendo HEAD a un estado anterior. |
|
|
Guarda temporalmente los cambios no comprometidos y restablece el directorio de trabajo. |
|
|
Aplica los últimos cambios almacenados al directorio de trabajo. |
|
|
Elimina los archivos sin seguimiento del repositorio. |
|
|
Configura las opciones de Git a nivel de sistema, global o local. |
|
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
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 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.
Aprende más sobre Git con estos cursos
curso
Introduction to GitHub Concepts
programa
GitHub Foundations
blog
¿Qué es la gestión de datos? Guía práctica con ejemplos

Tim Lu
12 min
tutorial
Tutorial de GitHub y Git para principiantes
tutorial
Tutorial de Git Revert y Git Reset para principiantes
tutorial
Tutorial de GIT Push y Pull
Olivia Smith
13 min
tutorial
Git Prune: Qué es la poda Git y cómo usarla

François Aubry
5 min
tutorial
Git rename branch: Cómo cambiar el nombre de una rama local o remota

François Aubry