Comandos de Git

Comandos de configuración de git

FunciónComando
Inicializar repositorio gitgit init
Resolver inconveniente de seguridad cuando se trabaja en unidades externas.git config --global --add safe.directory ubicación_del_directorio
Configurar usuario en el repositorio local.git config user.name "Mi nombre completo"
Configurar usuario de forma globalgit config --global user.name "Mi nombre completo"
Configurar correo electrónico del usuario en el repositorio local.git config user.email "Mi correo electrónico"
Configurar correo electrónico del usuario de forma global.git config --global user.email "Mi correo electrónico"
Verificar usuario.git config user.name
Verificar correo electrónico del usuario.git config user.email
Establecer un editor de texto específico para Git.git config --global core.editor "Nombre del editor"
Configurar Visual Studio Code (VS Code) como el editor de texto predeterminado que Git utilizará cuando necesites editar mensajes de confirmación, notas de lanzamiento u otros textos relacionados con Git. La opción --wait se utiliza para que Git espere hasta que cierres el archivo en VS Code antes de continuar con la operación de confirmación o edición.$ git config core.editor "code --wait"
Abrir y editar la configuración de Git en un editor de texto. Cuando ejecutas este comando, Git abrirá el archivo de configuración de Git en el editor de texto predeterminado de tu sistema.$ git config -e
Configurar cómo Git maneja los cambios de formato de línea (line endings) en los archivos cuando los archivos se sincronizan entre diferentes sistemas operativos, como Windows, macOS y Linux. Este es útil en proyectos multiplataforma para asegurarse de que los cambios de formato de línea se ajusten al sistema operativo en uso, evitando problemas de compatibilidad en los archivos de código fuente.$ git config core.autocrlf true
Configurar Git de manera que no realice conversiones automáticas de cambios de formato de línea (line endings) al confirmar o recuperar archivos. Esta configuración establece que los archivos en el repositorio se mantengan tal como están en el sistema en el que fueron confirmados.$ git config core.autocrlf input
Obtener una breve documentación de ayuda de gitgit config -h


Comandos básicos

FunciónComando
Ver el estado actual de tu repositorio de Git. Sirve para obtener información sobre los archivos en tu directorio de trabajo en relación con el repositorio Git, lo que te ayuda a comprender qué cambios se han realizado y qué acciones debes realizar a continuación.git status
Mostrar el estado del repositorio de Git de una manera más concisa y resumida, proporcionando información en un formato compacto que es útil para obtener una vista general rápida del estado de los archivos en el directorio de trabajo y el área de preparación (staging area).git status -s
Códigos de estado A (en el área de preparación) y M (en el directorio de trabajo): Esto indica que el archivo ha sido modificado y se ha agregado al área de preparación.A M
Código de estado M (en ambas columnas): Significa que el archivo ha sido modificado en el directorio de trabajo pero aún no se ha agregado al área de preparación.M
Código de estado ?? (en ambas columnas): Indica que el archivo es desconocido para Git, lo que significa que no se ha rastreado ni agregado al repositorio.??
Códigos de estado D (en el área de preparación) y D (en el directorio de trabajo): Significa que el archivo ha sido eliminado y se ha marcado tanto en el área de preparación como en el directorio de trabajo.D D
R (en el área de preparación) y R (en el directorio de trabajo): Indica que el archivo ha sido renombrado y se ha agregado tanto al área de preparación como al directorio de trabajo.R R
Agregar un archivo específico al área de preparación (staging area). El área de preparación es un paso intermedio en Git que te permite seleccionar los cambios que deseas incluir en el próximo commit. Cuando ejecutas git add en un archivo, estás diciéndole a Git que quieres que este archivo en particular se incluya en el próximo commit que realices.git add nombre_del_archivo
Agregar todos los archivos modificados al área de preparación (staging area). El área de preparación es un paso intermedio en Git que te permite seleccionar los cambios que deseas incluir en el próximo commit. Cuando ejecutas git add en un archivo, estás diciéndole a Git que quieres que este archivo en particular se incluya en el próximo commit que realices.git add .
Agregar todos los cambios, incluyendo los archivos eliminados y los que están marcados como ignorados en el archivo ".gitignore". Además, también elimina los archivos que han sido eliminados del sistema de archivos local, tanto del área de preparación como del repositorio. git add -A
Este es el comando principal para crear un commit en Git. Un commit es una instantánea de los cambios realizados en tu proyecto en un momento específico. Abrirá un editor de texto en la línea de comandos (generalmente, el editor configurado por defecto en tu sistema) para que escribas un mensaje de commit más detallado. El propósito principal de este enfoque es permitirte proporcionar una descripción más extensa de los cambios realizados en el commit.git commit
Agregar un mensaje descriptivo directamente en la línea de comando, que describe brevemente los cambios que se están confirmando en el commit.-m
Agregar un commit más un mensaje.git commit -m "mi mensaje"
Agregar todos los archivos modificados y nuevos al área de preparación y crear un commit con el mensaje especificado, capturando una instantánea del estado actual del proyecto.git commit -am "Aquí va el mensaje"
Deshacer los cambios en un archivo específico y restaurarlo a la última versión confirmada en el repositorio. Si el archivo aún no ha sido confirmado (staged) en el área de preparación, este comando también puede ser usado para revertir los cambios locales.git checkout "nombre_del_archivo"
Mostrar información del hash de commit.git show hash_de_commit
Este comando se utiliza para gestionar cambios en Git, incluida la restauración de archivos a estados anteriores.git restore
Esta opción indica que deseas actuar sobre archivos que están en el área de preparación, también conocida como staging area.--staged
Quitar un archivo específico del área de preparación (staging area) y revertirlo a su estado anterior en el último commit. Esta acción se realiza sin modificar el estado del archivo en tu directorio de trabajo actual.git restore --staged nombre_del_archivo
Renombrar archivo.git mv nombre_del_archivo_actual nuevo_nombre_del_archivo
Abrir Visual Studio Code si ya está establecido como editor de texto predeterminado en git.code .
Mostrar las diferencias entre dos puntos en la historia de tu repositorio de Git. Puedes utilizar git diff de varias maneras para comparar y visualizar las diferencias en diferentes contextos. Si ejecutas git diff sin ningún argumento adicional, Git te mostrará las diferencias entre los archivos en tu directorio de trabajo y los archivos en el área de preparación. Esto te permite ver qué cambios has realizado desde el último commit y qué cambios están listos para confirmar en el próximo commit.git diff
Mostrar las diferencias entre los archivos que están en el área de preparación (staging area) y el último commit realizado en el repositorio de Git. En otras palabras, te permite ver los cambios que se confirmarán en el próximo commit.git diff --staged
Mostrar el historial de commits en un repositorio. Te proporciona información detallada sobre los commits que se han realizado en la rama actual, incluyendo detalles como el autor, la fecha y hora de cada commit, y un resumen del mensaje de commit.git log
Mostrar una lista más compacta de commits, con una única línea por commit que incluye el resumen del mensaje de commit y el hash corto del commit.git log --oneline
Mostrar una lista más compacta de commits de un archivo específico.git log --oneline nombre_del_archivo
Mostrar una lista más compacta de commits de un usuario en específico.git log --oneline author="nombre_del_usuario"
Mostrar una lista más compacta de commits de un usuario en específico que ha hecho en un archivo específico.git log --oneline author="nombre_del_usuario" nombre_del_archivo
Buscar commits que contengan un texto específico en su mensaje de commit.git log --oneline --grep="texto_a_buscar"
Ver la lista de ramas en tu repositorio.git branch
Crear una nueva rama y cambiar inmediatamente a esa rama.git checkout -b 'nombre_nueva_rama'
Crear una nueva rama y cambiar inmediatamente a esa rama (Nuevo método).git switch -c nombre_de_la_rama
Fusionar una rama específica con la rama actual.git merge nombre_de_la_otra_rama
Descartar todos los cambios locales en tu directorio de trabajo y revertirlos a la última versión confirmada en el repositorio.git checkout -- .
Obtener un resumen del estado actual del repositorio, incluyendo información sobre los cambios en los archivos y la rama actual.git status -s -b
Deshacer la preparación de los cambios en un archivo, pero dejar los cambios en tu archivo local intacto. Esto significa que el archivo volverá al estado en el que estaba antes de que fuera añadido con git add.git reset HEAD nombre_del_archivo
Deshacer la preparación de los cambios en el directorio de trabajo, pero dejar los cambios en tus archivos locales intactos. Esto significa que los archivos volverán al estado en el que estaban antes de que fueran añadidos con git add.git reset HEAD .
Añadir al área de preparación todos los archivos con una extensión en específico en el directorio actual y sus subdirectorios. Estos archivos estarán listos para ser confirmados en el próximo commit.git add *nombre_de_la_extensión
Crear una etiqueta (tag) que identifica un punto específico en la historia de tu repositorio. Una etiqueta es simplemente un marcador que apunta a un commit específico. Se utiliza para marcar versiones importantes en tu proyecto, como lanzamientos o hitos significativos. Esto hace que sea más fácil para ti y para otros colaboradores del proyecto identificar y acceder a versiones específicas de tu código. Recuerda que las etiquetas son inmutables, lo que significa que no puedes realizar cambios en ellas después de ser creadas. Puedes eliminar o sobrescribir una etiqueta, pero se debe hacer con precaución, ya que esto puede afectar la consistencia de la historia del repositorio.git tag nombre_de_la_etiqueta
Mostrar etiquetas.git tag
Borrar etiqueta.git tag -d nombre_de_la_etiqueta
Crear una etiqueta anotada. Las etiquetas anotadas están asociadas con un mensaje explicativo que describe el propósito o la naturaleza de la etiqueta. Este mensaje se suele utilizar para proporcionar información adicional sobre la etiqueta.git tag -a nombre_de_la_etiqueta -m "Aquí va el mensaje"
Ver información detallada sobre una etiqueta específica.git show nombre_de_la_etiqueta
Crear una etiqueta anotada. Las etiquetas anotadas están asociadas con un mensaje explicativo que describe el propósito o la naturaleza de la etiqueta. Este mensaje se suele utilizar para proporcionar información adicional sobre la etiqueta.git tag -a nombre_de_la_etiqueta codigo_del_hash -m "Aquí va el mensaje"
Crear una etiqueta anotada asociada a un commit específico y proporcionar un mensaje descriptivo.git tag -a nombre_de_la_etiqueta codigo_hash_del_commit -m "Aquí va el mensaje"
Mostrar un historial de commits de forma condensada, mostrando cada commit en una sola línea.git log --oneline
Mostrar una salida detallada y visualmente representativa del historial de commits.git log --oneline --decorate --all --graph
Crear un alias personalizado que simplifica la ejecución de comandos complejos o frecuentemente utilizados.git config --global alias.nombre_deseado "Aquí van los comandos a simplificar"
Mostrar las diferencias entre el estado actual del directorio de trabajo y el área de preparación (staging area), es decir, los cambios que has realizado pero aún no has preparado para el próximo commit.git diff
Mostrar las diferencias entre el área de preparación (staging area) y el último commit realizado. Esto te proporciona una vista de los cambios que has preparado para ser incluidos en el próximo commit.git diff --staged
Mostrar las diferencias entre el estado actual del directorio de trabajo y un commit identificado por el código hash.git diff código_hash_del_commit
Realizar cambios en el commit más reciente, incluido el mensaje del commit. Esto puede ser útil si olvidaste incluir un archivo o si deseas corregir el mensaje de commit antes de compartirlo con otros.git commit --amend -m "Aquí va el mensaje"
Deshacer el último commit y deshacer los cambios que se incluyeron en ese commit del área de preparación (staging area), manteniendo los cambios en tu directorio de trabajo.git reset HEAD^
Mover la rama actual a un commit específico, manteniendo los cambios que se realizaron en los commits posteriores en el área de preparación (staging area) y en el directorio de trabajo.git reset --soft código_hash_del_commit
Mover la rama actual a un commit específico, deshaciendo los cambios realizados en los commits posteriores y deshaciendo también la preparación (staging) de los cambios en el área de preparación.git reset --mixed código_hash_del_commit
Mover la rama actual a un commit específico, deshaciendo los cambios realizados en los commits posteriores y borrando completamente los cambios locales no confirmados.git reset --hard código_hash_del_commit
Mover la rama actual al último commit realizado y borrando completamente los cambios locales no confirmados.git reset --hard HEAD
Mostrar un registro de referencia para los cambios de punteros (como HEAD y ramas) en tu repositorio. En otras palabras, mantiene un historial de todas las acciones que han afectado las referencias de tu repositorio.git reflog
Renombrar un archivo en tu repositorio y automáticamente preparar este cambio para ser incluido en el próximo commit.git mv nombre_del_archivo nuevo_nombre_del_archivo
Mover un archivo en tu repositorio y automáticamente preparar este cambio para ser incluido en el próximo commit.git mv nombre_del_archivo nueva_ubicación/nombre_del_archivo
Eliminar un archivo del repositorio y preparar ese cambio para ser incluido en el próximo commit.git rm ubicación/nombre_del_archivo
Establecer los archivos, formatos de archivo o carpetas que se desean ignorar.Crear archivo .gitignore y en cada línea colocar el nombre del archivo o la ubicación de la carpeta
Ignorar todos los archivos con un formato específico.*.nombre_del_formato
Dejar de rastrear un archivo que está bajo control de versiones sin eliminarlo de tu sistema de archivos local.git rm --cached nombre_del_archivo
Crear una nueva rama en un repositorio. Una rama en Git es esencialmente una línea de desarrollo independiente que permite a los desarrolladores trabajar en funcionalidades o correcciones de errores sin afectar el código en otras ramas.git branch nombre_de_la_nueva_rama
Visualizar las ramas en un repositorio.git branch
Cambiar de una rama a otra en tu repositorio.git checkout nombre_de_la_rama
Cambiar de una rama a otra en tu repositorio (Nuevo método).git switch nombre_de_la_rama
Eliminar una rama local que ya ha sido fusionada (merged) en la rama actual. Es decir, si has terminado de trabajar en una rama y has fusionado sus cambios en otra rama (como main o master), puedes eliminar la rama que ya no necesitas con este comando.git branch -d nombre_de_la_rama
Forzar la eliminación de una rama local, incluso si no ha sido fusionada (merged) en la rama actual.git branch -D nombre_de_la_rama
Crear una nueva rama y cambiar a ella en un solo paso.git checkout -b nombre_de_la_rama
Reorganizar el historial de commits en tu rama actual para que parezca que se desarrolló a partir de la última versión de la rama master.git rebase master
Realizar una operación de rebase interactivo en los últimos tres commits a partir de tu HEAD (es decir, los tres commits más recientes en tu rama actual). Cuando ejecutas este comando, se abrirá un editor de texto (generalmente el que has configurado como editor predeterminado en Git) que mostrará una lista de los tres commits seleccionados junto con instrucciones sobre cómo puedes interactuar con ellos.git rebase -i HEAD~3
Guardar temporalmente cambios locales que aún no han sido comprometidos en un commit. Esto es útil cuando deseas cambiar de rama o hacer alguna otra operación que requiera un estado de trabajo limpio. Cuando ejecutas git stash, tus cambios locales se guardan en una especie de "pila" temporal. Esto te permite cambiar de rama u realizar otras operaciones sin necesidad de comprometer tus cambios o crear una nueva rama para preservarlos.git stash
Mostrar una lista de todos los cambios almacenados temporalmente en la pila de cambios (stash). Esta lista proporciona información sobre los cambios guardados, incluyendo un identificador único para cada uno.git stash list
Aplicar el último cambio almacenado temporalmente (stash) a tu directorio de trabajo y luego eliminarlo de la pila de cambios. Básicamente, combina dos acciones en una: Aplicar el último cambio (stash) a tu directorio de trabajo y eliminar ese último cambio de la pila de cambios. Este comando es especialmente útil cuando deseas recuperar rápidamente los cambios que guardaste temporalmente y continuar trabajando en ellos. git stash pop
Eliminar un cambio almacenado temporalmente (stash) de la pila de cambios sin aplicarlo a tu directorio de trabajo. Básicamente, este comando descarta el cambio y lo elimina de la lista de stashes. Cuando ejecutas git stash drop, se eliminará el cambio más reciente de la pila. Esto puede ser útil si has guardado un cambio temporalmente pero luego decides que no lo necesitas.git stash drop


Explicación de datos

DatoExplicación
HEADIndica el punto donde te encuentras.

Comandos de git para repositorios remotos o en la nube

FunciónComando
Mostrar información detallada sobre los repositorios remotos asociados con tu proyecto Git.git remote -v
Añadir repositorio remoto. Se recomienda usar "origin" como nombre del repositorio remoto principal.git remote add nombre_del_repositorio_remoto URL_del_repositorio_remoto
Enviar los commits locales de una rama a una rama en un repositorio remoto que tiene el mismo nombre de la rama local.git push nombre_del_repositorio_remoto nombre_de_la_rama_local
Traer los cambios y referencias de un repositorio remoto a tu repositorio local. Es importante tener en cuenta que git fetch no fusiona automáticamente estos cambios con tu rama local, sino que simplemente los trae y los almacena en tu repositorio local.git fetch
Actualizar la rama local actual con los cambios de una rama de un repositorio remoto. Es una combinación de git fetch y git merge para hacer más sencilla la actualización de tu repositorio local con los cambios del repositorio remoto.git pull nombre_del_repositorio_remoto nombre_de_la_rama_local
Enviar los commits locales de una rama a una rama de un repositorio remoto.git push nombre_del_repositorio_remoto nombre_de_la_rama_local:nombre_de_la_rama_remota
Establecer una relación de seguimiento entre la rama local y la rama en el repositorio remoto. Esto significa que en el futuro, si simplemente escribes git push, Git sabrá a qué repositorio y rama debe enviar los cambios sin tener que especificarlos explícitamente.git push -u nombre_del_repositorio_remoto nombre_de_la_rama_local

Comentarios

Haz comentarios o preguntas acerca de este artículo respetando las normas de la comunidad ¡Les damos la bienvenida!