Fundamentos

Git Bash: qué es y cómo usarlo en Windows

Actualizado: · Skillaria.Top

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-agent y ssh-add ya 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.

HerramientaQué esCuándo usarla
Git BashShell bash con utilidades Unix y GitTrabajo principal con Git, seguir instrucciones de internet
Git CMDLa línea de comandos normal de Windows (cmd.exe) con Git en el PATHSi está acostumbrado a cmd y solo necesita comandos git
Git GUICliente gráfico sencillo en Tcl/TkPreparar un commit de forma visual; se usa poco
PowerShell / cmdTerminales estándar de WindowsGit 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.

WindowsGit 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 log y git diff se abren en less).
  • 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.

Aprende este tema en vídeo

Este tema se explica a fondo y con práctica en el curso «Git desde cero hasta desarrollador seguro».

Ir al curso