🌿 Git — Control de Versiones

El sistema de control de versiones más usado en el mundo. Guarda el historial completo de tu proyecto y colabora sin miedo a perder código.

Teoría Terminal Simulada Diccionario Quiz 10/50

📖 Teoría

Git es un sistema de control de versiones distribuido creado por Linus Torvalds en 2005 (el mismo creador de Linux). Permite registrar cada cambio hecho en un proyecto, volver a versiones anteriores y trabajar en equipo sin conflictos.

  • Historial completo: cada cambio queda guardado con fecha, autor y descripción.
  • Trabajo en paralelo: varias personas modifican el código al mismo tiempo usando ramas.
  • Seguridad: si borras algo por error, puedes recuperarlo del historial.
  • Gratis y de código abierto: es el estándar de la industria en desarrollo de software.

💡 Git funciona localmente en tu computador. Para compartir el código en internet se usa GitHub, GitLab o Bitbucket.

Descarga Git desde git-scm.com. Después de instalar, configura tu identidad (se guarda en cada commit):

# Configurar nombre y correo (solo la primera vez)
git config --global user.name "Tu Nombre"
git config --global user.email "tu@correo.com"

# Verificar configuración
git config --list

# Ver versión instalada
git --version

El flag --global aplica la configuración a todos los repositorios de tu computador.

El flujo básico de Git tiene 3 zonas: Working Directory (tus archivos) → Staging Area (preparados para commit) → Repositorio (historial guardado).

Comando Qué hace
git init Crea un repositorio Git en la carpeta actual
git status Muestra el estado de los archivos (modificados, sin seguimiento)
git add archivo.php Agrega un archivo al área de preparación (staging)
git add . Agrega TODOS los archivos modificados al staging
git commit -m "msg" Guarda un punto en el historial con un mensaje descriptivo
git log Muestra el historial de commits del proyecto
git log --oneline Historial resumido en una línea por commit
git diff Muestra las diferencias entre el archivo actual y el último commit

Las ramas (branches) permiten trabajar en funcionalidades nuevas o correcciones sin afectar el código principal. La rama principal se llama main (antes master).

Comando Qué hace
git branch Lista todas las ramas del repositorio
git branch nueva-rama Crea una nueva rama
git checkout nueva-rama Cambia a la rama especificada
git checkout -b nueva-rama Crea Y cambia a la nueva rama (atajo)
git merge nueva-rama Fusiona la rama especificada en la rama actual
git branch -d rama Elimina la rama (solo si ya fue fusionada)

Para sincronizar tu repositorio local con uno remoto (GitHub, GitLab) se usan estos comandos:

Comando Qué hace
git clone URL Descarga un repositorio remoto a tu computador
git remote add origin URL Conecta tu repositorio local con uno remoto
git push origin main Sube tus commits locales al repositorio remoto
git pull origin main Descarga y fusiona los cambios del repositorio remoto
git fetch Descarga cambios remotos sin fusionarlos (solo inspección)

💡 origin es el nombre por defecto que Git le da al repositorio remoto principal.

💻 Terminal Git Simulada

Haz clic en un comando para ver su descripción y salida simulada.

# Haz clic en un comando para ejecutarlo en la terminal simulada...

📚 Diccionario

Git
Sistema de control de versiones distribuido creado por Linus Torvalds en 2005. Registra cada cambio en un proyecto.
Repositorio (repo)
Carpeta gestionada por Git que contiene todos los archivos del proyecto y su historial de cambios completo.
Commit
Punto guardado en el historial del repositorio. Incluye los cambios, un mensaje descriptivo, fecha y autor.
Staging Area
Zona intermedia donde se colocan los archivos (con git add) antes de ser guardados en un commit.
Working Directory
La carpeta de tu proyecto donde editas los archivos. Los cambios aquí no están guardados hasta hacer commit.
Branch (rama)
Versión paralela del repositorio. Permite desarrollar funcionalidades sin afectar el código principal (main).
main / master
Nombre de la rama principal del repositorio. Contiene el código estable y listo para producción.
Merge
Fusionar dos ramas en una. Los cambios de una rama se integran en la rama destino.
Conflict
Conflicto que ocurre cuando dos ramas modificaron la misma línea de un archivo. Git pide resolverlo manualmente.
Clone
Copiar un repositorio remoto completo (con todo su historial) al computador local.
Push
Subir los commits locales al repositorio remoto (GitHub, GitLab) para compartirlos con el equipo.
Pull
Descargar y fusionar los cambios del repositorio remoto en el repositorio local.
Origin
Nombre por defecto que Git da al repositorio remoto principal con el que está conectado.
HEAD
Puntero que indica el commit actual en el que estás trabajando. Normalmente apunta al último commit de la rama.
Hash / SHA
Identificador único de cada commit. Es una cadena hexadecimal de 40 caracteres generada automáticamente.
.gitignore
Archivo que lista los archivos y carpetas que Git debe ignorar (no rastrear): node_modules, .env, etc.
Fetch
Descarga los cambios remotos sin fusionarlos. Permite revisar qué cambió antes de hacer pull.
Rebase
Alternativa al merge: reescribe el historial de commits colocando los cambios de una rama sobre otra.
Stash
Guarda temporalmente cambios sin hacer commit, para cambiar de rama y luego recuperarlos.
Tag
Etiqueta que marca un commit específico como importante. Se usa para marcar versiones (v1.0, v2.0).

🎬 Videos de Apoyo

Git como nunca te lo explicaron

Git tutorial español — cómo empezar

Introducción al control de versiones con Git

Aprende Git en 1 día — Curso completo

📝 Cuestionario de Evaluación

10 preguntas aleatorias del banco de 50. Calificación de 0 a 100.