Git Bash: qué es y cómo usarlo en Windows
Git Bash es una terminal para Windows que se instala junto con Git for Windows y ofrece un entorno Unix conocido: el shell bash, los comandos ls, cd, cat, grep, ssh y el propio Git. Sirve para que los comandos de Git y las instrucciones de la documentación funcionen en Windows igual que en Linux y macOS.
Qué es Git Bash
Git Bash es una aplicación para Windows que se instala con Git for Windows y abre una ventana de terminal con el shell bash. Dentro funcionan el propio Git y un conjunto de utilidades Unix estándar: ls, cd, pwd, cat, grep, find, less, ssh, ssh-keygen, curl y otras.
Técnicamente es un port del entorno MSYS2: los programas están compilados para Windows, pero se comportan como en Linux. La ventana de terminal por defecto es el emulador MinTTY. No es una máquina virtual ni un Linux completo; para eso existe WSL. Git Bash es más ligero: arranca al instante y trabaja directamente con los archivos de Windows.
En los buscadores a veces aparece escrito como «git bush», pero es lo mismo. Bash significa Bourne Again SHell y no tiene nada que ver con arbustos (bush).
Para qué sirve Git Bash si ya existen cmd y PowerShell
Git funciona perfectamente tanto en PowerShell como en la línea de comandos normal. Pero Git Bash tiene ventajas prácticas, sobre todo para quien empieza.
- Los mismos comandos en todos los sistemas. La documentación de Git, las respuestas en foros, las guías de GitHub y los cursos escriben los comandos para bash. En Git Bash funcionan sin adaptarlos:
rm -rf build,cat ~/.ssh/id_ed25519.pub,export VAR=value. - Herramientas SSH listas para usar.
ssh-keygen,ssh-agentyssh-addya están incluidos: la clave para GitHub se crea en un minuto. - Información de Git en el prompt. Git Bash muestra la rama actual en la propia línea de entrada, por ejemplo
(main), y durante una fusión,(main|MERGING). - Autocompletado. Tab completa comandos de Git, nombres de ramas y de archivos.
- Una habilidad para el futuro. Los servidores, los contenedores Docker y el CI funcionan con Linux. Si se acostumbra a bash en Git Bash, en un servidor se sentirá como en casa.
Git Bash, Git CMD y PowerShell: diferencias
Tras instalar Git for Windows aparecen varias entradas en el menú Inicio, y eso confunde.
| Herramienta | Qué es | Cuándo usarla |
|---|---|---|
| Git Bash | Shell bash con utilidades Unix y Git | Trabajo principal con Git, seguir instrucciones de internet |
| Git CMD | La línea de comandos normal de Windows (cmd.exe) con Git en el PATH | Si está acostumbrado a cmd y solo necesita comandos git |
| Git GUI | Cliente gráfico sencillo en Tcl/Tk | Preparar un commit de forma visual; se usa poco |
| PowerShell / cmd | Terminales estándar de Windows | Git funciona si durante la instalación eligió el PATH «from the command line and also from 3rd-party software» |
Git CMD no es un programa aparte, sino un cmd normal con el entorno configurado. Los comandos de Git son los mismos, pero ls, cat y grep no funcionan: en su lugar están dir, type y findstr. Cuando alguien busca cómo usar git desde cmd, normalmente quiere saber justo eso: cómo ejecutar git desde la línea de comandos estándar. La respuesta: no hace falta nada especial, basta con ejecutar git status si Git está en el PATH.
Cómo abrir Git Bash
Desde el menú Inicio
Escriba «Git Bash» y abra la aplicación. La terminal se abrirá en la carpeta personal del usuario: /c/Users/Nombre, que en bash se representa como ~.
En la carpeta deseada con el menú contextual
Es la forma más cómoda: en el Explorador, haga clic derecho en un espacio vacío dentro de la carpeta del proyecto y elija «Open Git Bash here». En Windows 11 esta opción está escondida en «Mostrar más opciones» (o Mayús + clic derecho).
En la terminal de VS Code
Abra la terminal (Ctrl + `), pulse la flecha junto al «+» y elija Git Bash. Para que se abra por defecto, ejecute el comando «Terminal: Select Default Profile» y seleccione Git Bash.
En Windows Terminal
Git for Windows puede añadir por sí mismo un perfil de Git Bash a Windows Terminal (es una opción del asistente de instalación). Si no aparece, cree uno nuevo con el comando C:\Program Files\Git\bin\bash.exe -i -l.
Rutas y archivos: la principal diferencia con Windows
En Git Bash las rutas se escriben al estilo Unix. La unidad C: se convierte en /c y las barras invertidas, en barras normales.
| Windows | Git Bash |
|---|---|
C:\Users\Anna\projects | /c/Users/Anna/projects |
D:\work | /d/work |
%USERPROFILE% | ~ o $HOME |
Si la ruta tiene espacios, póngala entre comillas: cd "/c/Users/Anna/My Projects". Puede abrir la carpeta actual en el Explorador con explorer . y en VS Code con code ..
Comandos básicos de Git Bash para principiantes
Navegación y archivos
pwd # dónde estoy
ls -la # lista de archivos, incluidos los ocultos (.git, .gitignore)
cd projects/site # entrar en una carpeta
cd .. # subir un nivel
mkdir new-app # crear una carpeta
touch index.html # crear un archivo vacío
cat README.md # mostrar el contenido
rm file.txt # borrar un archivo
rm -r old-folder # borrar una carpeta con su contenido
clear # limpiar la pantalla
Su primer repositorio en Git Bash
$ mkdir my-first-repo && cd my-first-repo
$ git init
Initialized empty Git repository in C:/Users/Anna/my-first-repo/.git/
$ echo "Hola, Git" > hello.txt
$ git add hello.txt
$ git commit -m "Añadir hello.txt"
$ git log --oneline
Después de git init el prompt cambia: aparece el nombre de la rama entre paréntesis. Es una forma rápida de saber que está dentro de un repositorio.
Trucos útiles
- Tab: autocompleta comandos, ramas y archivos. Púlselo dos veces para ver las opciones.
- Flecha arriba: comando anterior;
history: todo el historial; Ctrl + R: búsqueda en el historial. - Copiar/pegar: en MinTTY, seleccionar con el ratón ya copia; para pegar, Mayús + Insert o clic derecho. Ctrl + C en la terminal interrumpe el comando, no copia.
- q: salir de la vista paginada (
git logygit diffse abren enless). - Esc, luego :q! y Enter: salir de Vim si se abrió para el mensaje del commit.
Git CLI: por qué conviene aprender la línea de comandos
Git CLI es la interfaz de línea de comandos de Git, es decir, los propios comandos git .... Los clientes gráficos son cómodos para ver el historial, pero tienen límites: no todas las operaciones están disponibles y, cuando algo falla, un botón no explica qué está pasando. La línea de comandos da control total y mensajes detallados.
Otro argumento: en una entrevista o en un equipo nuevo le pedirán que muestre cómo deshace un commit o resuelve un conflicto, y cada uno usa una GUI distinta. Los comandos son iguales en todas partes. Una buena estrategia es trabajar en la CLI y usar la GUI o las herramientas integradas del IDE para ver diffs e historial.
Personalizar Git Bash
Alias en ~/.bashrc
Al arrancar, Git Bash lee ~/.bash_profile y ~/.bashrc. Añada ahí sus atajos:
alias gs='git status'
alias gl='git log --oneline --graph --all'
alias ll='ls -la'
Para aplicar los cambios sin reiniciar, ejecute source ~/.bashrc. Si al arrancar aparece un aviso de que se encontró .bashrc pero no .bash_profile, Git Bash creará .bash_profile automáticamente; es normal.
Alias del propio Git
Los alias también se pueden guardar en Git, y así funcionan en cualquier terminal:
git config --global alias.st status
git config --global alias.lg "log --oneline --graph --all"
Ahora git st y git lg funcionan tanto en Git Bash como en PowerShell.
Apariencia
La fuente, el tamaño, los colores y la transparencia se configuran con clic derecho en la barra de título → Options. Para que las tildes y la ñ se vean bien, compruebe en la sección Text que la codificación sea UTF-8.
Problemas típicos en Git Bash
Caracteres raros en lugar de tildes y eñes en git log
Suele bastar con establecer la codificación UTF-8 en Options → Text y añadir a ~/.bashrc la línea export LANG=es_ES.UTF-8. Para los nombres de archivo con acentos o ñ en git status, ejecute git config --global core.quotepath false; si no, se muestran como secuencias escapadas del tipo \303\261.
Los programas interactivos se cuelgan
Algunos programas de consola (por ejemplo, el intérprete de Python o node sin argumentos) se comportan de forma extraña en MinTTY. Ejecútelos con winpty: winpty python, o use Git Bash dentro de Windows Terminal.
Las rutas se convierten en algo extraño
MSYS convierte automáticamente los argumentos que parecen rutas Unix en rutas de Windows. A veces estorba, por ejemplo al pasar /app a docker run. La solución es duplicar la barra (//app) o definir MSYS_NO_PATHCONV=1 para ese comando.
«Permission denied (publickey)» al hacer push
La clave SSH no está creada o no se ha añadido a GitHub. Cree la clave en Git Bash con ssh-keygen -t ed25519 -C "you@example.com", añada el contenido de ~/.ssh/id_ed25519.pub en la configuración de GitHub y compruébelo con ssh -T git@github.com.
Git Bash o WSL
WSL es un Linux real dentro de Windows, con su propio sistema de archivos y paquetes. Lo necesita si desarrolla para Linux: ejecuta Docker, compila, usa un stack de servidor. Git Bash es más simple y ligero, y para trabajar con Git basta y sobra. Lo importante es no mezclar: un repositorio clonado dentro de WSL conviene gestionarlo con el Git de WSL, y uno en la unidad C:, con Git for Windows.
Conclusión
Git Bash es una terminal con bash y utilidades Unix que viene con Git for Windows. Hace que Windows sea compatible con la documentación y las guías de Git, trae SSH listo para usar y muestra la rama en el prompt. Git CMD es el mismo Git en la línea de comandos normal, sin comandos Unix. Para aprender y para el trabajo diario en Windows, elija Git Bash: en el curso de Git es la terminal principal de las clases prácticas.
Preguntas frecuentes
¿Git Bash es gratuito?
Sí, Git Bash forma parte de Git for Windows y se distribuye gratis con licencia abierta.
¿Se puede instalar Git Bash sin Git?
No, Git Bash solo se instala junto con Git for Windows. Si Git ya está instalado, Git Bash aparece en el menú Inicio.
¿Existe Git Bash para macOS y Linux?
No hay un programa aparte ni hace falta: en macOS y Linux la terminal integrada ya trabaja con bash o zsh y utilidades Unix.
¿Dónde guarda Git Bash la carpeta personal y la configuración?
La carpeta personal es C:\Users\Nombre, accesible en bash como ~. Ahí están también .bashrc, .bash_profile, .gitconfig y la carpeta .ssh.
¿Se pueden ejecutar archivos bat y exe en Git Bash?
Sí, los programas de Windows se ejecutan por nombre o por ruta, por ejemplo ./build.bat o notepad file.txt.
Este tema se explica a fondo y con práctica en el curso «Git desde cero hasta desarrollador seguro».
Ir al curso