🧠 Fundamentos de Git y GitHub
🎯 Objetivo de la clase
Introducir los conceptos fundamentales de Git y GitHub, explicar su utilidad en el desarrollo colaborativo, y practicar el flujo básico de trabajo con repositorios locales y remotos.
🛠️ Herramientas necesarias
- Editor de código: Visual Studio Code (recomendado), Atom, Sublime Text
- Terminal: PowerShell, Terminal (Windows), iTerm (Mac), terminal estándar (Linux)
- Git: Sistema de control de versiones. Descargar desde git-scm.com
🧩 ¿Qué es Git?
- Sistema de control de versiones creado por Linus Torvalds
- Permite trabajar en equipo sin sobrescribir el trabajo de otros
- Resuelve problemas como:
- Manejo de versiones (“final_final_v2”)
- Historial de cambios
- Autoría de líneas de código
- Reversión de errores
🌐 ¿Qué es GitHub?
- Plataforma para alojar repositorios Git
- Funciona como red social profesional para desarrolladores
- Permite compartir, revisar y colaborar en proyectos
- Repositorios pueden ser públicos o privados
📦 Flujo básico de trabajo
1. Crear repositorio local
git init
2. Crear archivo HTML base
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Ejemplo de HTML para Git</title>
</head>
<body>
<h1>Estoy aprendiendo Git</h1>
</body>
</html>
3. Verificar instalación de Git
Para comprobar que Git está correctamente instalado en tu sistema, ejecuta el siguiente comando en la terminal:
git --version
4. Agregar archivo al área de preparación (stage)
Una vez creado el archivo, el siguiente paso es agregarlo al área de preparación de Git. Esto indica que el archivo está listo para ser incluido en el próximo commit.
git add ejemplo.html
5. Confirmar cambios (commit)
Una vez que los archivos están en el área de preparación, se deben confirmar mediante un commit. Esto sella la “caja” de cambios y la etiqueta con un mensaje descriptivo.
git commit -m "Mi primer commit"
6. Configurar identidad (si es la primera vez)
Antes de poder confirmar cambios con Git, es necesario establecer tu identidad como autor. Esto se hace una sola vez por computadora y permite que cada commit esté firmado con tu nombre y correo.
git config --global user.name "userGithub"
git config --global user.email "mail@..."
🔄 Conexión con GitHub
1. Crear repositorio en GitHub
Antes de conectar tu proyecto local con GitHub, debes crear un repositorio en la plataforma:
- Asigna un nombre sin espacios ni tildes.
- Elige si será público o privado.
- No agregues README ni licencia (debe estar vacío para facilitar la conexión).
2. Conectar repositorio local con remoto
Una vez creado el repositorio en GitHub, conecta tu proyecto local con el remoto usando los siguientes comandos:
git remote add origin https://github.com/usuario/repositorio.git
git remote -v
3. Enviar cambios (push)
Una vez que el repositorio local está conectado con GitHub, puedes enviar tus commits al repositorio remoto usando:
git push -u origin main
📥 Traer cambios del repositorio remoto
1. Verificar si hay cambios disponibles
Para consultar si existen actualizaciones en el repositorio remoto sin descargarlas aún, utiliza el siguiente comando:
git fetch
2. Descargar cambios
Para traer los cambios del repositorio remoto y fusionarlos con tu rama local actual, utiliza el siguiente comando:
git pull
3. Ver estado actual
Para revisar el estado del repositorio y ver qué archivos han sido modificados, agregados o están listos para confirmar, utiliza el siguiente comando:
git status
🧪 Revertir cambios y ver historial
1. Ver historial de commits
Para consultar el historial de cambios realizados en el repositorio, utiliza el siguiente comando:
git log
2. Revertir un commit específico
Si necesitas deshacer un cambio que ya fue confirmado, puedes revertir un commit específico utilizando su identificador SHA:
git revert SHA
Reemplaza SHA por el código único del commit que deseas revertir (puedes obtenerlo con git log).
Este comando no elimina el commit original, sino que crea uno nuevo que revierte sus efectos.
📥 Clonar un repositorio existente
Para trabajar con un proyecto que ya existe en GitHub, puedes clonarlo en tu máquina local siguiendo estos pasos:
1. Copiar la URL del repositorio (HTTPS)
Desde la página del repositorio en GitHub, haz clic en el botón verde Code y copia la URL en formato HTTPS.
2. Crear carpeta local
Abre tu terminal y navega hasta la carpeta donde deseas clonar el proyecto. Si quieres crear una nueva carpeta, puedes hacerlo con:
mkdir nombre-de-la-carpeta
cd nombre-de-la-carpeta
3. Ejecutar el comando de clonación
Para clonar el repositorio directamente en la carpeta actual, ejecuta el siguiente comando en tu terminal:
git clone https://github.com/usuario/repositorio.git .
El punto (.) evita crear una subcarpeta adicional
🧠 Conceptos clave:
- Commit: Caja cerrada con cambios, mensaje y firma del autor
- Stage: Área de preparación antes del commit
- Push: Envío de cambios al repositorio remoto
- Pull: Descarga de cambios desde el remoto
- Fetch: Consulta de cambios disponibles sin descargarlos
- Fork vs Clone:
- Fork: Copia para modificar sin afectar el original
- Clone: Descarga para trabajar bajo las reglas del proyecto
⚙️ GitHub Actions (mención introductoria)
- Automatizaciones que se ejecutan al hacer cambios
- Permiten correr tests, validar calidad de código, desplegar sitios
- Muy útiles en proyectos profesionales
🧠 Recomendaciones finales
- Usar extensiones oficiales de GitHub en VS Code si hay problemas de autenticación
- Activar
fetch
automático en VS Code para evitar conflictos - Practicar el flujo completo:
init
,add
,commit
,push
,pull
,clone
- No temer a los errores: todo tiene solución
📚 Glosario técnico
Término | Definición |
---|---|
Repositorio | Carpeta que contiene todos los archivos y el historial de cambios |
Commit | Registro de cambios con mensaje y autoría |
Push | Envío de cambios al repositorio remoto |
Pull | Descarga de cambios desde el repositorio remoto |
Fetch | Consulta de cambios disponibles sin descargarlos |
Stage | Área de preparación antes de confirmar cambios |
Fork | Copia de un repositorio para modificarlo sin afectar el original |
GitHub Actions | Automatizaciones que se ejecutan sobre el código |