Git

Domina Git desde cero

Git no es solo una herramienta, es tu red de seguridad. Aprende a controlar el tiempo y el espacio de tu código.

¿Qué es el Control de Versiones?

Imagina que estás escribiendo un libro. Sin control de versiones, tendrías archivos como borrador_final_v2_este_si.doc.

Un VCS es una herramienta que registra cada cambio en tus archivos para que puedas volver al pasado, comparar versiones y trabajar con otros sin sobrescribir sus progresos.

¿Por qué Git es el estándar?

Creado por Linus Torvalds, Git es distribuido. Esto significa que cada desarrollador tiene una copia completa del historial en su propia computadora.

  • Es extremadamente rápido y eficiente.
  • Permite crear "ramas" para experimentar sin miedo.
  • Es el lenguaje universal de la industria tech.

Pilares de Git

Historial Infinito

Nunca pierdas una línea de código. Cada cambio es una "foto" del tiempo.

Trabajo Paralelo

Trabaja en múltiples versiones a la vez usando ramas (branches).

Colaboración

Simplifica integrar el trabajo de equipos enteros sin conflictos.

01. Descarga e Instalación

Antes de configurar nada, necesitas tener Git en tu sistema. Puedes descargarlo directamente o usar un gestor de paquetes.

Método por Terminal

Windows (Winget)

$winget install --id Git.Git -e --source winget

Usando el gestor de paquetes de Windows.

macOS (Homebrew)

$brew install git

El estándar de terminal en Mac.

Linux (Ubuntu/Debian)

$sudo apt install git

Comando nativo para sistemas Debian/Ubuntu.

¿Problemas en Windows?

1. Reinicia tu Terminal

Si acabas de instalar Git, cierra y vuelve a abrir VS Code o PowerShell para que reconozca los cambios.

2. Revisa el PATH

Si el error persiste, asegúrate de que C:\Program Files\Git\cmd esté en las variables de entorno de tu sistema.

¿Cómo saber si ya lo tengo?

Abre una terminal y escribe el siguiente comando:

$git --version

Si te devuelve una versión de git, ¡ya estás listo!

02. Configuración Inicial

Antes de empezar, Git necesita saber quién eres para firmar tus cambios.

$git config --global user.name 'Tu Nombre'

Configura tu nombre de usuario globalmente.

$git config --global user.email 'tu@email.com'

Configura tu correo electrónico (usa el de GitHub).

Identidad vs Autenticación

¡Importante! Estos comandos solo sirven para darle "autoría" a tus commits. Para clonar o publicar en GitHub, la terminal te pedirá loguearte (autenticarse) la primera vez que intentes realizar una acción remota.

03. Navegación por Terminal

Para usar Git, primero debes saber moverte por las carpetas de tu computadora. Estos son los comandos básicos "no-git" que usarás todo el tiempo:

$mkdir mi-proyecto

Crea una carpeta nueva llamada 'mi-proyecto'.

$cd "mi-proyecto"

Entra en la carpeta. Usa comillas si el nombre tiene espacios o guiones.

$cd ..

Retrocede una carpeta (vuelve al nivel anterior).

$ls

Lista los archivos (Linux/Mac/Git Bash).

$dir

Lista los archivos (Windows CMD/PowerShell).

$pwd

Muestra la ruta completa de la carpeta actual.

Guía de Rutas y Caracteres

Rutas Completas

Puedes ir directo a una carpeta usando su ruta total:
cd C:\Proyectos\web

¿Comillas?

Obligatorias si hay espacios. Opcionales pero recomendadas con guiones - o puntos.

Caracteres

Evita usar ñ, á, é o símbolos raros en tus carpetas. Usa siempre kebab-case.

04. El Ciclo de Vida

El flujo básico: modificar archivos, prepararlos y confirmar los cambios. Úsalo aquí mismo para ver cómo funciona:

Terminal Interactiva

branch: main

Estado de Archivos

LALK School Git Shell v1.0

Escribe 'help' para comandos disponibles.

Repositorio (Commit Graph)

$git init

Inicia un repositorio nuevo en la carpeta actual.

$git add info.txt

Prepara un archivo específico (puedes listar varios).

$git add .

Prepara TODOS los archivos modificados a la vez.

$git commit -m "Mi primer cambio"

Confirma los cambios. El "-m" significa "mensaje" y es obligatorio

$git status

Mira el estado actual: ¿qué archivos están listos?

$git diff

Muestra los cambios detallados en tus archivos antes de hacer 'add'.

$git commit -am "Cambio rápido"

¡Atajo! Hace el 'add' y el 'commit' de archivos seguidos en un solo comando (solo para archivos ya rastreados).

$git log --oneline

Muestra una lista resumida de tus fotos (commits).

$git rm archivo.txt

Borra el archivo de tu carpeta y prepara el borrado para el siguiente commit.

$git rm --cached archivo.txt

Deja de rastrear el archivo en Git pero MANTIENE el archivo en tu computadora.

$git restore --staged app.js

Saca un archivo del área de preparación (unstage).

Tip Pro: El archivo .gitignore

Crea un archivo llamado .gitignore para decirle a Git qué cosas NO debe rastrear (como carpetas node_modules o archivos de configuración personales).

05. El Arte del Commit

Hacer un commit no es solo guardar. Es documentar el progreso. Aquí tienes las reglas de oro:

Atomic Commits

Un commit debe hacer una sola cosa. No mezcles "Arreglar login" con "Cambiar color de fondo". Si algo se rompe, es más fácil saber qué fue.

Mensajes Descriptivos

Usa el imperativo: "Add user auth" en vez de "Agregué auth" o "Cosas". Evita mensajes vagos.

Título y Descripción:

Si usas GitHub Desktop, verás dos campos. En terminal:

git commit -m "Título" -m "Descripción detallada..."

Convenciones (Conventional Commits)

feat:

Nueva funcionalidad

fix:

Corrección de un error

docs:

Solo cambios en documentación

style:

Cambios de formato, CSS, etc.

Error Común

"No commitear durante días y luego subir 50 archivos de golpe con el mensaje 'Terminé todo'."

06. Ramas (Branching)

Las ramas permiten trabajar en nuevas funciones sin romper la versión principal. Experimenta creando una rama y haciendo un merge:

Terminal Interactiva

branch: main

Estado de Archivos

LALK School Git Shell v1.0

Escribe 'help' para comandos disponibles.

Repositorio (Commit Graph)

$git branch nueva-feature

Crea una rama nueva llamada 'nueva-feature'.

$git checkout nueva-feature

Cámbiate a la rama 'nueva-feature'.

$git checkout -b otra-feature

¡Atajo! Crea la rama y cámbiate a ella en un solo paso.

$git merge nueva-feature

Combina los cambios de 'nueva-feature' en tu rama actual.

Buena Práctica: ¿Hacer "git pull"?

¡Excelente recomendación! Siempre que te cambies a una rama (especialmente si trabajas en equipo), es ideal ejecutar git pull. Esto asegura que tengas la última versión del código antes de empezar a trabajar, evitando conflictos innecesarios cuando intentes subir tus cambios más tarde.

07. ¿Te equivocaste? ¡No entres en pánico!

En Git, nada es permanente. Puedes volver en el tiempo, descartar cambios y restaurar archivos si algo sale mal.

Borrar cambios locales

$git checkout -- info.txt

Descarta los cambios NO preparados de un archivo.

⚠️ ¡Cuidado! Esto no se puede recuperar.

Quitar del área de preparación

$git restore --staged info.txt

Saca el archivo del 'staging area' pero guarda tus cambios.

Volver a un punto anterior

Usa `git log --oneline` para ver el ID del commit al que quieres volver:

$git reset --hard [id-commit]

¡Bomba atómica! Mueve todo tu proyecto a ese commit y BORRA todo lo posterior.

$git revert [id-commit]

Más seguro: Crea un nuevo commit que compensa el commit indicado (no borra historial).

08. GitHub: Tu Código en la Nube

GitHub es la plataforma donde vive tu código. No confundas Git (la herramienta) con GitHub (el servicio de alojamiento).

Ahorra tiempo: Para no escribir tu contraseña en cada push, instala el GitHub CLI y usa gh auth login una sola vez.

Colaboración Segura

Trabaja con otros usando Pull Requests sin miedo a sobreescribir código.

Portafolio Profesional

Muestra tus proyectos al mundo y contribuye al Open Source.

Comandos Remotos

$git clone https://github.com/usuario/repo.git

Copia un proyecto remoto a tu PC por primera vez.

$git pull

Trae y combina los cambios más recientes del servidor.

$git push

Sube tus commits (cambios confirmados) al servidor.

09. Tu Primera Aportación

Tutorial Práctico: Tu primer "Push"

Sigue este flujo paso a paso para clonar un proyecto, trabajar en él y subir tus cambios a la nube.

1

Clonar el Repositorio

Descarga una copia exacta del proyecto desde GitHub a tu PC. Copia la URL del botón "Code" en GitHub.

$git clone https://github.com/usuario/mi-proyecto.git

Descarga la carpeta del proyecto completa.

2

Entrar al Proyecto

Muévete dentro de la carpeta que acabas de descargar para empezar a trabajar.

$cd mi-proyecto

Cambia el foco de la terminal a tu nuevo repo.

3

Hacer cambios y Confirmar

Crea o edita archivos en tu editor favorito. Luego guarda esos cambios en el historial de Git.

$git add .

Prepara tus cambios para la foto.

$git commit -m "feat: mi primera mejora"

Guarda la foto localmente.

4

Subir a GitHub (Push)

Envía tus fotos (commits) locales al servidor de GitHub para que otros los vean o por seguridad.

$git push origin main

Sube la rama 'main' a la nube.

¡Misión cumplida! 🚀

Ahora tu código está seguro en la nube. Si trabajas en equipo, tus compañeros ahora pueden usar git pull para recibir tus cambios.

¡Ya estás listo!

Recuerda: Git se aprende practicando. No tengas miedo de romper cosas (para eso está Git).

Volver a Cursos