Git y GitHub
Git registra cada cambio en tu código como una fotografía en el tiempo. GitHub guarda esas fotografías en la nube y te permite colaborar con otros.
¿Qué son Git y GitHub?
Git es un sistema de control de versiones distribuido. Funciona localmente en tu computadora y lleva un registro exacto de cada modificación que haces en tus archivos. Si algo se rompe, puedes volver a cualquier punto anterior.
GitHub es una plataforma en la nube que aloja repositorios Git. Además del respaldo remoto, ofrece herramientas para colaborar: revisión de código, gestión de tareas y documentación.
Piensa en Git como el historial de guardado de un videojuego: puedes guardar en cualquier momento y cargar cualquier guardado anterior. GitHub es el servidor en la nube donde subes esos guardados para no perderlos y para que otros jugadores los descarguen.
Configuración inicial
La primera vez que usas Git en tu computadora debes decirle quién eres. Esta información queda registrada en cada commit que hagas.
git config --global user.name "Tu Nombre"
git config --global user.email "tu@email.com"
Las comillas son obligatorias para que Git interprete el nombre como una sola cadena.
Flujo básico
Iniciar un repositorio
Navega a la carpeta de tu proyecto y ejecuta git init. Esto crea una carpeta oculta .git que contiene toda la información de control de versiones.
cd MiProyecto
git init
# Initialized empty Git repository in .../MiProyecto/.git/
Agregar archivos al área de preparación
Antes de hacer un commit debes indicarle a Git qué archivos quieres incluir. Esto se llama staging.
git add archivo.py # un archivo específico
git add archivo.py otro.py # varios archivos
git add . # todos los archivos del directorio actual
Hacer un commit
Un commit es una instantánea permanente de los archivos en el área de preparación. El mensaje debe describir qué cambió.
git commit -m "Agrega la función de cálculo de promedio"
Ver el estado del repositorio
git status muestra qué archivos fueron modificados, cuáles están en staging y cuáles no han sido seguidos aún.
git status
Ver el historial de commits
git log lista todos los commits con autor, fecha y mensaje. Usa las flechas para navegar y q para salir.
git log
Conectar con GitHub
Para crear un repositorio en GitHub: inicia sesión, haz clic en New, elige un nombre y crea el repositorio. Luego conecta tu repositorio local con el remoto:
git remote add origin https://github.com/usuario/nombre-repo.git
Para subir tus commits al repositorio remoto:
git push origin main
Ejemplo Primer push desde cero
Secuencia completa para crear y subir un repositorio nuevo:
mkdir MiProyecto && cd MiProyecto
git init
touch README.md
git add README.md
git commit -m "Primer commit"
git remote add origin https://github.com/usuario/MiProyecto.git
git push -u origin main
La bandera -u establece origin main como destino predeterminado, así los próximos git push no necesitan argumentos.
Ciclo de vida de un commit
El flujo que repetirás en cada sesión de trabajo es siempre el mismo:
- Modificar — editas o creas archivos en tu proyecto.
- Agregar — seleccionas los cambios con
git add. - Confirmar — creas la instantánea con
git commit. - Subir — sincronizas con GitHub usando
git push. - Obtener — si trabajas en equipo, bajas los cambios de otros con
git pull origin main.
Más detalle ¿Por qué dos pasos (add + commit)?
El área de preparación (staging area) te permite elegir exactamente qué cambios incluir en cada commit, aunque hayas modificado varios archivos. Esto facilita hacer commits pequeños y descriptivos en lugar de commits gigantes difíciles de entender. Por ejemplo, puedes modificar tres archivos pero hacer dos commits separados: uno con los cambios lógicos de una función y otro con la corrección de un bug.