¿Qué es Git?
Git permite registrar y organizar las modificaciones realizadas al código en un proyecto de programación. Además permite revertir cambios y sincronizar el registro con otras copias remotas. Esto lo hace una de las herramientas más utilizadas para el desarrollo de programas y webs que involucran múltiples personas.
Git es un programa que instalas en tu computador. Funciona sin conexión a
internet: guarda el historial completo de tu proyecto en una carpeta oculta
llamada .git, dentro del proyecto mismo.
¿Qué es GitHub?
GitHub es un servicio en internet que aloja repositorios de Git. Es una copia de tu proyecto, con todo su historial, guardada en los servidores de GitHub.
Sirve para tres cosas:
- Respaldo — si se te echa a perder el computador, el proyecto sigue ahí.
- Colaboración — varias personas trabajan sobre el mismo proyecto y sincronizan sus cambios.
- Entrega — es donde el profesor revisa tu trabajo, incluyendo cuándo hiciste cada cambio.
Sobre eso, GitHub agrega herramientas que Git no tiene: una interfaz web para ver el código, issues para anotar tareas, pull requests para revisar cambios antes de integrarlos, y control de quién puede acceder al repositorio.
¿Cuál es la diferencia entre Git y GitHub?
| Git | GitHub | |
|---|---|---|
| Qué es | Un programa | Un sitio web / servicio |
| Dónde vive | En tu computador | En internet |
| Necesita internet | No | Sí |
| Quién lo hizo | Linus Torvalds, 2005 | Una empresa (hoy de Microsoft) |
| Se puede reemplazar | Es el estándar | Sí: GitLab, Bitbucket, Codeberg |
La analogía
Git es el programa con el que escribes y guardas versiones, como Word. GitHub es el lugar donde subes el archivo para tenerlo respaldado y compartirlo, como Google Drive.
Puedes usar Git sin GitHub perfectamente. No puedes usar GitHub sin Git.
Control de versiones
Un sistema de control de versiones guarda fotografías del proyecto en momentos concretos. Cada fotografía se llama commit, y queda registrada con quién la hizo, cuándo, y un mensaje que explica qué cambió.
gitGraph commit id: "Estructura HTML" commit id: "Agrega estilos" commit id: "Formulario de contacto" commit id: "Corrige el menú"
El historial es una línea de tiempo. En cualquier momento puedes ver cómo estaba el proyecto en cada punto, comparar dos versiones, o volver a una anterior.
Un commit no guarda una copia completa
Git guarda solo las diferencias respecto al commit anterior. Por eso un historial de cientos de commits ocupa poco espacio.
¿Para qué sirve versionar?
Sin control de versiones, la forma habitual de guardar avances es duplicar carpetas:
proyecto/
proyecto-v2/
proyecto-final/
proyecto-final-BUENO/
proyecto-final-BUENO-arreglado/
Esto falla por razones concretas:
- No sabes qué cambió entre una carpeta y otra: tendrías que comparar archivo por archivo.
- No sabes por qué cambió: no hay ningún mensaje que lo explique.
- Ocupa espacio multiplicado por cada copia.
- No sirve para trabajar en grupo: si dos personas editan la misma carpeta, uno pisa el trabajo del otro.
Versionar con Git resuelve cada uno de esos puntos:
| Necesidad | Cómo la resuelve Git |
|---|---|
| Saber qué cambió | git diff muestra las líneas exactas |
| Saber por qué | Cada commit lleva un mensaje |
| Volver atrás | Puedes recuperar el estado de cualquier commit |
| Trabajar en paralelo | Cada persona trabaja en su copia y luego se fusionan |
| Saber quién hizo qué | Cada commit registra su autor |
| Probar algo sin romper lo que funciona | Las ramas aíslan el experimento |
Por eso se evalúa el historial
Un historial con commits repartidos en el tiempo muestra cómo se construyó el trabajo. Un único commit gigante el día de la entrega no demuestra nada, y en un trabajo grupal hace imposible saber quién aportó qué.
Checkpoint
Intenta responder antes de desplegar cada pregunta.
¿Por qué versionar es mejor que copiar archivos en carpetas?
Porque duplicar carpetas (
proyecto-final-BUENO) no te dice qué cambió ni por qué, ocupa espacio multiplicado y no sirve para trabajar en grupo. Git guarda las diferencias con un mensaje y un autor en cada commit, permite volver a cualquier punto y fusionar el trabajo de varias personas.
¿En qué se diferencian Git y GitHub?
Git es un programa que instalas en tu computador y funciona sin internet. GitHub es un sitio web que aloja repositorios de Git en la nube.
La analogía: Git es como Word, el programa con el que escribes y guardas versiones; GitHub es como Google Drive, el lugar donde lo subes para respaldarlo y compartirlo. Puedes usar Git sin GitHub, pero no GitHub sin Git.
¿Qué es un commit y qué información guarda?
Es una fotografía del proyecto en un momento concreto. Guarda las diferencias respecto al commit anterior, más quién lo hizo, cuándo, y un mensaje que explica qué cambió.
¿Puedes usar Git sin conexión a internet? ¿Y GitHub?
Git sí: todo el historial vive en la carpeta oculta
.gitdentro de tu proyecto, así que puedes hacer commits sin conexión. GitHub no, porque está en internet:pushypullnecesitan conexión.