Git y GitHub: Guía completa para principiantes

 

Git y GitHub: Guía completa para principiantes

¿Qué son Git y GitHub? La diferencia clave

Git y GitHub son conceptos diferentes que suelen confundirse. Git es el motor y GitHub es el lugar donde se aloja el código .

ConceptoDescripción
GitSistema de control de versiones distribuido, creado por Linus Torvalds en 2005. Es software libre y de código abierto que se ejecuta en tu computadora local para rastrear cambios en el código. 
GitHubPlataforma web que aloja repositorios Git en la nube. Añade funciones de colaboración como pull requests, seguimiento de incidencias y una interfaz web para navegar el código. Fue fundada en 2008 y adquirida por Microsoft en 2018. 

La forma más sencilla de recordarlo: Git es la herramienta que controla tu código, GitHub es el lugar donde lo guardas para que otros puedan verlo . Puedes usar Git sin GitHub, pero la mayoría de los desarrolladores los usan juntos .


Paso 1: Instalar y configurar Git

Instalación

Windows:

bash
# Descarga el instalador desde git-scm.com
# o usa el gestor de paquetes winget:
winget install Git.Git

macOS:

bash
brew install git

Linux (Ubuntu/Debian):

bash
sudo apt update
sudo apt install git

Verifica la instalación:

bash
git --version

Configuración básica

Git necesita saber quién eres para asociar cada commit a tu identidad :

bash
git config --global user.name "Tu Nombre"
git config --global user.email "tu.email@ejemplo.com"

Verifica la configuración:

bash
git config --global --list

Paso 2: Conceptos fundamentales de Git

Las tres áreas de Git

Git maneja tres espacios de trabajo :

  1. Directorio de trabajo (working directory): Los archivos que estás editando

  2. Área de preparación (staging area): Cambios que has marcado para guardar

  3. Repositorio local: Historial completo de commits guardados

Comandos esenciales

ComandoFunción
git initInicializa un nuevo repositorio en la carpeta actual 
git statusMuestra el estado actual de los archivos 
git add <archivo>Mueve cambios al área de preparación 
git commit -m "mensaje"Guarda los cambios preparados como un snapshot permanente 
git logMuestra el historial de commits 

Flujo de trabajo básico

  1. Editas archivos en tu directorio de trabajo

  2. Preparas cambios con git add

  3. Confirmas cambios con git commit -m "mensaje descriptivo"


Paso 3: Crear un repositorio en GitHub

Desde la interfaz web

  1. Inicia sesión en GitHub.com

  2. Haz clic en el + en la esquina superior derecha

  3. Selecciona "New repository"

  4. Completa el formulario:

    • Repository name: nombre del proyecto

    • Descripción (opcional)

    • Public o Private: público si quieres compartirlo, privado si solo es para ti 

    • Marca "Add a README file" (recomendado)

    • Añade un .gitignore (para Python, Node, etc.)

    • Elige una licencia (opcional)

  5. Haz clic en "Create repository" 

Conectar un repositorio local a GitHub

Si ya tienes un proyecto local y quieres subirlo a GitHub :

bash
# Navega a tu proyecto
cd ruta/de/tu/proyecto

# Inicializa Git
git init

# Añade todos los archivos
git add .

# Haz el commit inicial
git commit -m "Initial commit"

# Conecta con el repositorio remoto
git remote add origin https://github.com/tu-usuario/tu-repositorio.git

# Sube los cambios
git branch -M main
git push -u origin main

Paso 4: Trabajar con ramas (branches)

Las ramas permiten desarrollar funcionalidades sin afectar el código estable (normalmente la rama main) .

Comandos de ramas

ComandoFunción
git branchLista todas las ramas locales
git branch <nombre>Crea una nueva rama 
git switch <nombre>Cambia a otra rama 
git switch -c <nombre>Crea y cambia a la nueva rama en un solo paso
git merge <nombre>Fusiona la rama especificada con la rama actual
git branch -d <nombre>Elimina una rama local (seguro) 

Buenas prácticas para nombrar ramas

  • Usa nombres descriptivos: feature/autenticacion, bugfix/error-login

  • Separa palabras con guiones o guiones bajos

  • Si trabajas en equipo, incluye el número de incidencia: issue-42-fix-login

bash
# Crear y moverte a una nueva rama
git switch -c feature/nueva-funcionalidad

# Hacer cambios y commits en la rama
git add .
git commit -m "Agrega nueva funcionalidad"

# Volver a main y fusionar
git switch main
git merge feature/nueva-funcionalidad

Paso 5: Colaboración con GitHub

Clonar un repositorio

bash
# HTTPS
git clone https://github.com/usuario/repositorio.git

# SSH (recomendado)
git clone git@github.com:usuario/repositorio.git

Sincronizar cambios

bash
# Descargar cambios del remoto
git pull origin main

# Subir cambios locales
git push origin main

Pull Requests (PR)

Los Pull Requests son la forma principal de colaborar en GitHub :

  1. Fork el repositorio (si no tienes permisos de escritura)

  2. Crea una rama con tu contribución

  3. Haz commits y sube la rama (git push)

  4. Abre un Pull Request desde la interfaz web

  5. Espera revisión y, si todo está bien, merge


Paso 6: Deshacer cambios

Restaurar archivos en el directorio de trabajo

bash
# Descarta cambios en un archivo (lo vuelve a la versión del último commit)
git restore <archivo>

git restore es el comando moderno para esta operación .

Deshacer el último commit

bash
# Revertir un commit publicado (seguro)
git revert <hash-del-commit>

# Obtén el hash con:
git log --oneline

El comando git revert crea un nuevo commit que deshace los cambios del commit especificado, manteniendo el historial intacto .


Paso 7: Buenas prácticas

Mensajes de commit

  • Qué cambió es más útil que qué archivo cambió 

  • Escribe mensajes en inglés que sean comprensibles incluso años después

  • Explica el por qué, no solo el qué

Buen ejemplo:

text
Fix login error when user submits empty form

Mal ejemplo:

text
fixed stuff

Recomendaciones generales

Haz:

  • Commits frecuentes con cambios lógicos

  • git pull antes de git push

  • Usa ramas para cada nueva funcionalidad 

Evita:

  • Hacer commits enormes que mezclan múltiples cambios

  • Subir código sin probar

  • Forzar push (git push --force) en ramas compartidas


Recursos y herramientas útiles

Clientes gráficos de Git

  • GitHub Desktop: Interfaz oficial de GitHub

  • GitKraken y Sourcetree: Alternativas populares

  • Visual Studio Code: Incluye integración nativa con Git

Alternativas a GitHub

  • GitLab y Bitbucket: Otros servicios de alojamiento de repositorios con características similares 


Resumen rápido de comandos

AcciónComando
Crear repositorio localgit init
Ver estadogit status
Preparar archivosgit add .
Hacer commitgit commit -m "mensaje"
Subir cambiosgit push origin main
Bajar cambiosgit pull origin main
Crear ramagit switch -c nombre-rama
Ver historialgit log --oneline

Comentarios

Entradas más populares de este blog

12. Hola Mundo en Docker.

11¿Qué es Docker? y ¿Por qué debo saberlo?

14. Publish and Detached modes