En la lección anterior vimos por qué existe Git y conocimos a Ana, Bruno y Carla, el equipo que va a construir gestor-tareas. Antes de que Ana pueda convertir su carpeta en un repositorio necesita algo elemental: tener Git instalado. Esta lección cubre la instalación en los tres sistemas operativos habituales —Linux, macOS y Windows—, cómo verificar que ha ido bien, cómo consultar la ayuda incorporada y cómo mantener Git actualizado. También aclararemos qué es Git Bash, qué son los clientes gráficos y por qué durante todo el curso trabajaremos con la línea de comandos.
Es una lección eminentemente práctica: al terminarla tendrás un Git funcional en tu equipo y sabrás comprobarlo.
Contenido
- Antes de empezar: comprobar si ya tienes Git
- Instalación en Linux
- Instalación en macOS
- Instalación en Windows
- Verificar la instalación
- La ayuda incorporada:
git help - Git Bash, terminales y clientes gráficos
- Por qué la línea de comandos en este curso
- Cómo actualizar Git
- Antes de empezar: comprobar si ya tienes Git
Muchos sistemas traen Git preinstalado o lo han instalado otras herramientas. Antes de descargar nada, abre una terminal y ejecuta:
Hay dos resultados posibles:
Si ves algo así, ya tienes Git. Comprueba que la versión sea razonablemente reciente (2.30 o superior es suficiente para todo el curso; 2.40 o superior es lo ideal) y salta al apartado 5.
Si ves esto —o 'git' is not recognized... en Windows—, Git no está instalado o no está en el PATH. Sigue el apartado que corresponda a tu sistema.
Nota sobre versiones. Git es extraordinariamente estable y compatible hacia atrás: casi todo lo que aprendas funcionará igual dentro de diez años. Aun así, algunas comodidades modernas (como
git switchogit restore, que veremos en los módulos 2 y 3) requieren Git 2.23 o superior, y ciertos valores por defecto sensatos llegaron en la 2.28. Vale la pena no quedarse en una versión antigua.
- Instalación en Linux
En Linux, Git se instala desde el gestor de paquetes de la distribución. Es la vía recomendada: el sistema se encarga de las dependencias y de las actualizaciones.
Debian, Ubuntu, Linux Mint (apt)
Desglose de los comandos:
sudoejecuta el comando con privilegios de administrador, necesarios para instalar software en todo el sistema. Pedirá tu contraseña.apt updaterefresca la lista de paquetes disponibles y sus versiones. No actualiza ningún programa; solo pone al día el catálogo. Omitir este paso es la causa más frecuente de que se instale una versión antigua.apt install gitdescarga e instala el paquetegity sus dependencias.
Fedora, RHEL, CentOS Stream, Rocky Linux (dnf)
En sistemas antiguos con yum en lugar de dnf, el comando equivalente es sudo yum install git.
Otras distribuciones
| Distribución | Comando |
|---|---|
| Arch Linux, Manjaro | sudo pacman -S git |
| openSUSE | sudo zypper install git |
| Alpine Linux | sudo apk add git |
| Gentoo | sudo emerge --ask dev-vcs/git |
Paquetes complementarios útiles
El paquete git básico incluye todo lo esencial, pero algunas distribuciones separan extras que conviene tener:
# Debian/Ubuntu: interfaz gráfica mínima (gitk y git gui) y utilidades de correo
sudo apt install gitk git-gui git-emailgitkes un visor gráfico del historial que viene con Git.git-guies un cliente gráfico mínimo para preparar y confirmar cambios.git-emailhabilita el envío de parches por correo, usado en proyectos como el kernel de Linux.
Ninguno es imprescindible para el curso.
Instalar la última versión en Ubuntu
Las distribuciones estables suelen ir algo por detrás. Si necesitas la versión más reciente, existe un repositorio oficial mantenido por el equipo de Git:
add-apt-repository añade una fuente de paquetes adicional; a partir de ahí, apt la tratará como cualquier otra y ofrecerá actualizaciones automáticas de Git.
- Instalación en macOS
En macOS hay tres caminos. El orden en que los presentamos es también el orden de preferencia.
Opción A: Homebrew (recomendada)
Homebrew es el gestor de paquetes de facto en macOS. Si aún no lo tienes:
Este comando descarga el script oficial de instalación y lo ejecuta. Desglose: curl descarga la URL (-fsSL significa "falla en errores, modo silencioso, muestra errores, sigue redirecciones") y $( ) pasa el resultado a bash para que lo ejecute.
Con Homebrew ya disponible:
Homebrew instala Git en /opt/homebrew/bin/git (Apple Silicon) o /usr/local/bin/git (Intel), rutas que tienen prioridad sobre la versión del sistema en el PATH. Así siempre tendrás una versión actualizada.
Opción B: Command Line Tools de Xcode
macOS incluye una versión de Git dentro de las herramientas de desarrollo de Apple. Se instalan con:
Aparecerá una ventana del sistema pidiendo confirmación. También se disparan automáticamente la primera vez que escribes git en una terminal sin tenerlas instaladas.
Ventaja: no requiere nada más. Inconveniente: la versión suele ir varios meses o años por detrás, y solo se actualiza con las actualizaciones del sistema.
Opción C: Instalador binario oficial
Existen instaladores .dmg en git-scm.com/download/mac. Es una opción válida si no quieres gestores de paquetes, pero la actualización queda en tus manos.
Comparativa en macOS
| Método | Versión | Actualizaciones | Requisitos |
|---|---|---|---|
| Homebrew | La más reciente | brew upgrade git |
Instalar Homebrew |
| Command Line Tools | Retrasada | Con el sistema | Ninguno |
Instalador .dmg |
Reciente al instalar | Manuales | Ninguno |
- Instalación en Windows
Windows no incluye Git, así que hay que instalarlo. Hay tres vías.
Opción A: instalador oficial "Git for Windows" (recomendada)
Descarga el instalador desde git-scm.com/download/win y ejecútalo. El asistente hace bastantes preguntas; estas son las que importan y las respuestas recomendadas:
| Pantalla del asistente | Elección recomendada | Por qué |
|---|---|---|
| Select Components | Marcar "Git Bash Here" y "Git GUI Here" | Añade acceso rápido desde el menú contextual del explorador |
| Default editor used by Git | Visual Studio Code (o el que uses) | Evita quedar atrapado en Vim sin saber salir; se trata en 01-06 |
| Initial branch name | "Override... " → main |
Nombre de rama principal moderno; también se puede fijar luego (01-06) |
| Adjusting your PATH | "Git from the command line and also from 3rd-party software" | Permite usar git desde PowerShell y CMD, no solo desde Git Bash |
| Choosing the SSH executable | "Use bundled OpenSSH" | Suficiente para todo el curso |
| HTTPS transport backend | "Use the native Windows Secure Channel library" | Respeta los certificados corporativos instalados en Windows |
| Line ending conversions | "Checkout Windows-style, commit Unix-style" | Configura core.autocrlf=true; lo explicamos en 01-06 |
| Terminal emulator | "Use MinTTY" | Mejor terminal que la consola de Windows para Git Bash |
| Credential helper | "Git Credential Manager" | Guarda las credenciales; se detalla en 01-06 y en el módulo 4 |
Si dudas en alguna pantalla no marcada aquí, deja el valor por defecto: son elecciones sensatas y casi todas se pueden cambiar después con git config.
Opción B: gestores de paquetes de Windows
Si prefieres una instalación desatendida:
O con Chocolatey:
winget viene incluido en Windows 10 y 11 modernos. El parámetro -e fuerza coincidencia exacta del identificador para no instalar un paquete parecido por error.
Opción C: WSL (Windows Subsystem for Linux)
WSL ejecuta una distribución Linux real dentro de Windows. Si desarrollas con herramientas del mundo Unix (Node.js, Python, Docker), suele ser la mejor experiencia.
Una vez dentro de la distribución (Ubuntu por defecto), Git se instala como en cualquier Linux:
Advertencia importante con WSL. El Git de Windows y el Git de WSL son dos instalaciones distintas, con configuraciones independientes. Además, trabajar desde WSL sobre ficheros almacenados en el disco de Windows (
/mnt/c/...) es notablemente lento y provoca problemas con los permisos y los finales de línea. La recomendación es guardar los repositorios dentro del sistema de ficheros de Linux (~/proyectos/...) y usar solo el Git de WSL.
Comparativa en Windows
| Método | Terminal | Rendimiento | Recomendado para |
|---|---|---|---|
| Git for Windows | Git Bash, PowerShell, CMD | Bueno | Uso general, empezar de cero |
| winget / Chocolatey | Igual que el anterior | Bueno | Instalaciones automatizadas |
| WSL | Terminal Linux | Excelente (dentro de WSL) | Desarrollo con herramientas Unix |
- Verificar la instalación
Independientemente del sistema, cierra y vuelve a abrir la terminal (para que recoja los cambios en el PATH) y ejecuta:
Salida esperada, con el número que corresponda:
Comprobaciones adicionales útiles:
# Dónde está instalado el ejecutable
which git # Linux, macOS, Git Bash
where git # PowerShell / CMD en WindowsEl último comando imprime una lista larga. No hace falta entenderla; sirve para confirmar que la instalación está completa y no truncada.
Si git --version sigue fallando
| Síntoma | Causa probable | Solución |
|---|---|---|
command not found justo tras instalar |
La terminal conserva el PATH antiguo |
Cerrar y abrir la terminal |
'git' is not recognized en Windows |
No se marcó la opción de PATH en el instalador |
Reejecutar el instalador y elegir "Git from the command line..." |
| Versión más antigua de la instalada | Hay dos instalaciones y gana la del sistema | which -a git para ver todas; ajustar el orden del PATH |
| Permiso denegado en Linux | Se intentó instalar sin sudo |
Repetir con sudo |
- La ayuda incorporada:
git help
git helpGit trae su documentación completa dentro del propio programa. Aprender a consultarla es más valioso que memorizar opciones.
Este comando abre la página de manual de git config. En Linux y macOS se muestra con el paginador less: se navega con las flechas o espacio, se busca con /palabra y se sale con q. En Windows, git help abre por defecto la versión HTML en el navegador.
Existen tres formas equivalentes de pedir el manual de un comando:
Para una consulta rápida, sin abrir el manual completo, existe el resumen de opciones:
La -h minúscula imprime unas pocas líneas con la sintaxis y las opciones principales directamente en la terminal. Es la opción que más usarás en el día a día.
| Comando | Qué muestra | Cuándo usarlo |
|---|---|---|
git help |
Índice de comandos habituales | Para orientarse |
git help <comando> |
Manual completo | Para entender a fondo |
git <comando> -h |
Resumen breve de opciones | Consulta rápida |
git help -a |
Todos los subcomandos | Para explorar |
git help -g |
Guías conceptuales incluidas | Lectura de fondo |
Prueba git help -g: Git incluye guías temáticas como gittutorial, giteveryday o gitglossary, que se leen con git help giteveryday.
- Git Bash, terminales y clientes gráficos
Qué es Git Bash
Git Bash es un componente exclusivo de Windows que viene con el instalador oficial. No es Git: es un emulador de terminal que trae consigo un intérprete Bash y un conjunto de utilidades Unix (ls, grep, ssh, curl, vim…) compiladas para Windows.
Existe por una razón práctica: la documentación de Git, los ejemplos de internet y los hooks (scripts que se ejecutan automáticamente, módulo 6) asumen un entorno Unix. Git Bash proporciona ese entorno sin salir de Windows.
| Terminal en Windows | ¿Funciona git? |
¿Comandos Unix (ls, grep)? |
|---|---|---|
| Git Bash | Sí | Sí |
| PowerShell | Sí, si se marcó la opción de PATH |
Parcialmente, con alias distintos |
| CMD | Sí, si se marcó la opción de PATH |
No |
| WSL | Sí, el Git de Linux | Sí, nativos |
Si estás en Windows, usa Git Bash para seguir el curso: los comandos de las lecciones funcionarán tal cual están escritos. En Linux y macOS, la terminal del sistema ya es suficiente.
Qué son los clientes gráficos
Un cliente gráfico (GUI) es una aplicación con ventanas y botones que ejecuta comandos de Git por debajo. Los más conocidos:
| Cliente | Plataformas | Notas |
|---|---|---|
gitk / git gui |
Todas | Vienen con Git; austeros pero siempre disponibles |
| GitHub Desktop | Windows, macOS | Muy sencillo, orientado a GitHub |
| Sourcetree | Windows, macOS | Gratuito, completo, algo pesado |
| GitKraken | Todas | Visualización del historial muy cuidada |
| Fork | Windows, macOS | Ligero y rápido |
| Integración en el editor | Todas | VS Code, IntelliJ, Vim y otros traen soporte de Git |
Los clientes gráficos son útiles, sobre todo para revisar diferencias y navegar el historial. No hay nada malo en usarlos, y muchos profesionales combinan terminal para operar y GUI para inspeccionar.
- Por qué la línea de comandos en este curso
Este curso usa exclusivamente la línea de comandos, por razones concretas:
- Es la única interfaz completa. Todos los clientes gráficos implementan un subconjunto de Git. Tarde o temprano necesitarás algo que tu GUI no ofrece, y entonces habrá que abrir la terminal igualmente.
- Es universal. Un servidor de integración continua, una máquina remota por SSH o el portátil de un compañero no tienen tu GUI instalada, pero todos tienen
giten la terminal. - Enseña el modelo, no la herramienta. Los botones esconden lo que ocurre. Escribir
git commitdespués degit addobliga a entender que existen dos pasos, y ese entendimiento es lo que hace que puedas resolver problemas. - La documentación y las respuestas están en comandos. Cualquier manual, incidencia o respuesta que encuentres estará expresada en comandos, no en "haz clic aquí".
- Es más rápida una vez aprendida. Y se automatiza: los comandos se encadenan en scripts, los gráficos no.
Consejo práctico. Aprende primero en la terminal y añade después el cliente gráfico que te apetezca. El orden inverso deja lagunas difíciles de cerrar.
- Cómo actualizar Git
Mantener Git al día aporta correcciones de seguridad, mejoras de rendimiento y comandos nuevos. Los comandos de actualización según el sistema:
# Debian / Ubuntu
sudo apt update && sudo apt upgrade git
# Fedora
sudo dnf upgrade git
# Arch Linux
sudo pacman -Syu git
# macOS con Homebrew
brew update && brew upgrade git
# Windows con winget
winget upgrade --id Git.Git -eEn Windows, además, las versiones modernas de Git incorporan un comando propio de actualización:
Este comando comprueba si hay una versión más reciente de Git for Windows, la descarga y lanza el instalador. Solo existe en Windows.
Para comprobar qué versión es la última publicada, consulta git-scm.com o ejecuta el comando de actualización de tu gestor de paquetes: si no hay nada nuevo, te lo dirá.
Actualizar no rompe nada. Los repositorios existentes siguen funcionando igual tras actualizar: el formato en disco es compatible hacia atrás desde hace más de una década. Actualizar es seguro.
Errores Comunes y Consejos
- No cerrar la terminal después de instalar. El
PATHse lee al abrir la sesión de la terminal. Si acabas de instalar Git ygit --versionfalla, ciérrala y ábrela de nuevo antes de dar nada por perdido. - Olvidar
apt updateantes deapt install. Sin refrescar el catálogo puedes acabar instalando una versión muy antigua o recibir un error de paquete no encontrado. - En Windows, no marcar la opción del
PATH. Si eliges "Use Git from Git Bash only",gitno funcionará en PowerShell ni en VS Code. Se arregla reejecutando el instalador. - Mezclar el Git de Windows y el de WSL sobre la misma carpeta. Provoca conflictos de permisos, finales de línea distintos y configuraciones cruzadas. Elige uno y guarda los repositorios en su sistema de ficheros nativo.
- Instalar Git desde un
.zipdescomprimido a mano. Funciona, pero no queda registrado en el sistema y las actualizaciones se vuelven un problema. Usa siempre el gestor de paquetes o el instalador oficial. - Consejo: fija tu editor durante la instalación en Windows. Si dejas el valor por defecto acabarás en Vim la primera vez que Git te pida escribir un mensaje. Se puede cambiar después (lección 01-06), pero es una sorpresa desagradable.
- Consejo: instala también
gitken Linux. Es un visor del historial muy útil para entender lo que estás aprendiendo, y no interfiere con el uso de la terminal.
Ejercicios
Ejercicio 1: Auditoría de tu instalación
Ejecuta los comandos necesarios para responder a estas cinco preguntas sobre tu equipo, y anota tanto el comando usado como el resultado:
- ¿Qué versión de Git tienes instalada?
- ¿En qué ruta está el ejecutable?
- ¿Hay más de una instalación de Git en tu
PATH? - ¿Cuántos subcomandos ofrece tu instalación?
- ¿Qué guías conceptuales incluye la documentación?
Ejercicio 2: Explorar la ayuda
Sin buscar en internet, usa exclusivamente la ayuda incorporada de Git para averiguar:
- Qué hace la opción
--globaldel comandogit config. - Qué comando de Git sirve para "mostrar el estado del directorio de trabajo" (búscalo en la lista de comandos habituales).
- El nombre de la guía incluida que resume el uso diario de Git.
Indica en cada caso qué comando ejecutaste.
Ejercicio 3: Plan de instalación para el equipo
El equipo de gestor-tareas es heterogéneo: Ana trabaja en Ubuntu, Bruno en un MacBook con Apple Silicon y Carla en Windows 11. Redacta unas instrucciones breves para cada uno con: (a) el comando o método de instalación, (b) cómo verificar que ha funcionado y (c) una advertencia específica de su plataforma.
Soluciones
Solución al Ejercicio 1
# 1. Versión instalada
git --version
# → git version 2.51.0 (el número variará)
# 2. Ruta del ejecutable
which git # Linux, macOS, Git Bash
where git # PowerShell o CMD
# → /usr/bin/git, /opt/homebrew/bin/git, C:\Program Files\Git\cmd\git.exe...
# 3. Todas las instalaciones en el PATH
which -a git # la opción -a muestra todas las coincidencias, no solo la primera
# Si aparece más de una línea, tienes varias instalaciones: gana la primera
# 4. Número de subcomandos
git help -a | wc -l
# wc -l cuenta líneas; el número exacto varía según versión e instalación
# 5. Guías incluidas
git help -g
# → gitcore-tutorial, giteveryday, gitglossary, gitworkflows, gittutorial...Solución al Ejercicio 2
--globalengit config:
La documentación indica que --global escribe en el fichero de configuración del usuario (~/.gitconfig), aplicable a todos los repositorios de ese usuario. Es el nivel que usaremos en la lección 01-05.
- Comando de estado:
En la sección de comandos habituales aparece status con la descripción "Show the working tree status". El comando es git status y lo usaremos operativamente en el módulo 2.
- Guía de uso diario:
La guía es giteveryday, que se lee con git help giteveryday. Resume los veinte comandos que cubren el 95 % del uso real.
Solución al Ejercicio 3
Ana — Ubuntu
Advertencia: la versión de los repositorios oficiales de Ubuntu puede ir varias versiones por detrás. Si necesita lo último, debe añadir el PPA ppa:git-core/ppa antes de instalar.
Bruno — macOS (Apple Silicon)
Advertencia: macOS trae su propio Git en /usr/bin/git a través de las Command Line Tools. Si which git devuelve esa ruta en lugar de la de Homebrew, el PATH está mal ordenado y seguirá usando la versión antigua.
Carla — Windows 11
Descargar el instalador de git-scm.com/download/win y, durante el asistente, elegir "Git from the command line and also from 3rd-party software" en la pantalla del PATH, main como nombre de rama inicial y su editor habitual.
Advertencia: si no marca la opción del PATH, git funcionará solo dentro de Git Bash y fallará en PowerShell y en su editor. Además, debe seguir el curso desde Git Bash para que los comandos de las lecciones funcionen literalmente.
Conclusión
Ya tienes Git instalado y verificado. Hemos visto que en Linux se instala con el gestor de paquetes de la distribución, en macOS lo más práctico es Homebrew (con las Command Line Tools como alternativa sin requisitos) y en Windows el instalador oficial de Git for Windows, que además aporta Git Bash, el entorno de terminal con el que conviene seguir el curso. La comprobación básica es siempre la misma —git --version— y la documentación completa vive dentro del propio programa, accesible con git help <comando> o, para consultas rápidas, git <comando> -h.
También hemos justificado la decisión metodológica del curso: trabajaremos en la línea de comandos porque es la interfaz completa, universal y la que enseña el modelo de Git en lugar de esconderlo. Los clientes gráficos son un complemento excelente, no un sustituto.
Tener la herramienta no basta: hay que entender su vocabulario. En la siguiente lección, Terminología Básica de Git, construiremos el glosario que sostiene todo lo demás —repositorio, área de preparación, confirmación, HEAD, rama, remoto— y veremos el diagrama de los tres estados por los que pasa cualquier fichero en Git.
Dominando Git: De Principiante a Avanzado
Módulo 1: Introducción a Git
- ¿Qué es Git?
- Instalando Git
- Terminología Básica de Git
- El Modelo de Datos de Git
- Configurando Git
- Configuración Inicial
Módulo 2: Operaciones Básicas de Git
- Creando un Repositorio
- Clonando un Repositorio
- Flujo de Trabajo Básico de Git
- Preparando y Confirmando Cambios
- Inspeccionando Cambios con git diff
- Visualizando el Historial de Confirmaciones
Módulo 3: Ramas y Fusión
- Entendiendo las Ramas
- Creando y Cambiando Ramas
- Fusionando Ramas
- Estrategias de Fusión
- Resolviendo Conflictos de Fusión
- Gestión de Ramas
Módulo 4: Trabajando con Repositorios Remotos
- Entendiendo los Repositorios Remotos
- Agregando un Repositorio Remoto
- Autenticación con Repositorios Remotos
- Obteniendo y Extrayendo Cambios
- Enviando Cambios
- Rastreando Ramas
Módulo 5: Operaciones Avanzadas de Git
- Rebase
- Rebase Interactivo
- Cherry-Picking de Confirmaciones
- Guardando Cambios Temporales
- Etiquetando Confirmaciones
- Revirtiendo Confirmaciones
Módulo 6: Herramientas y Técnicas de Git
- Usando Git Hooks
- Git Bisect
- Git Blame
- Git Log y Alias
- Submódulos de Git
- Múltiples Copias de Trabajo con git worktree
Módulo 7: Estrategias de Colaboración y Flujo de Trabajo
- Forks y Pull Requests
- Revisiones de Código con Git
- Flujo de Trabajo Git Flow
- GitHub Flow
- Trunk Based Development
- Integración Continua con Git
Módulo 8: Mejores Prácticas y Consejos de Git
- Escribiendo Buenos Mensajes de Confirmación
- Manteniendo un Historial Limpio
- Ignorando Archivos con .gitignore
- Atributos de Fichero con .gitattributes
- Mejores Prácticas de Seguridad
- Consejos de Rendimiento
Módulo 9: Solución de Problemas y Depuración
- Problemas Comunes de Git
- Deshaciendo Cambios
- Resolviendo Divergencias con el Remoto
- Recuperando Confirmaciones Perdidas
- Tratando con Repositorios Corruptos
- Técnicas Avanzadas de Depuración
