Blog
Git GitHub GitLab Bitbucket

Guía práctica para empezar con Git

Qué es Git, para qué sirve y cómo usarlo desde cero con ejemplos reales y comandos esenciales.

Raul Mauricio Uñate Castro Raul Mauricio Uñate Castro · 16 de junio de 2026
Guía práctica para empezar con Git

¿Qué es Git?

Git es un sistema de control de versiones distribuido. En palabras simples: es una herramienta que guarda el historial completo de cambios de tu código, como un "deshacer" inteligente que recuerda cada modificación que hiciste, cuándo la hiciste y por qué.

Imagina que estás escribiendo un documento importante. Git sería como guardar una copia del documento cada vez que realizas un cambio relevante, pero de forma automática y organizada, sin llenar tu disco con archivos llamados documento_final_v2_DEFINITIVO.docx.

¿Por qué se utiliza en el desarrollo de software?

En el desarrollo de software, el código cambia constantemente. Sin una herramienta como Git:

  • Es difícil saber quién cambió qué y cuándo.
  • Trabajar en equipo se convierte en un caos de archivos sobrescritos.
  • Volver a una versión anterior del código puede ser imposible.

Git resuelve todos estos problemas al mantener un registro preciso de cada modificación y permitir que múltiples personas trabajen sobre el mismo proyecto sin pisarse los pies.

Beneficios principales

  • Historial completo: puedes ver cada cambio realizado en el proyecto.
  • Colaboración: varios desarrolladores pueden trabajar en paralelo sin conflictos.
  • Reversibilidad: si algo se rompe, puedes volver a una versión anterior en segundos.
  • Ramas: permite experimentar con nuevas funcionalidades sin afectar el código principal.
  • Amplia adopción: es el estándar de la industria, usado en startups y grandes empresas.

Herramientas populares para trabajar con Git

Git CLI

La línea de comandos de Git (Git CLI) es la herramienta oficial. Con ella puedes ejecutar cualquier comando de Git directamente desde la terminal. Es la forma más completa y flexible de usar Git, y aprender a usarla te dará una comprensión sólida de cómo funciona por dentro.

GitHub

GitHub es la plataforma de alojamiento de repositorios más popular del mundo. Permite almacenar tu código en la nube, colaborar con otros desarrolladores y gestionar proyectos mediante pull requests, issues y wikis.

GitLab

GitLab es una alternativa a GitHub con funcionalidades integradas de CI/CD (integración y despliegue continuo). Es muy popular en entornos empresariales y permite instalación propia (self-hosted).

Bitbucket

Bitbucket es la plataforma de Atlassian (creadores de Jira). Ofrece integración nativa con herramientas como Jira y Confluence, y es una opción común en equipos que ya usan el ecosistema de Atlassian.

Clientes gráficos populares

Si prefieres una interfaz visual en lugar de la terminal, estas herramientas ofrecen una experiencia amigable:

  • GitHub Desktop: simple e ideal para principiantes.
  • Sourcetree: potente y gratuito, desarrollado por Atlassian.
  • GitKraken: moderno, con una interfaz visual muy clara.
  • VS Code: incluye integración con Git directamente en el editor.

Comandos más utilizados

git init

Descripción: Inicializa un nuevo repositorio Git en el directorio actual.

# Sintaxis
git init

# Ejemplo
mkdir mi-proyecto
cd mi-proyecto
git init
# Resultado: Initialized empty Git repository in mi-proyecto/.git/

git clone

Descripción: Descarga una copia completa de un repositorio remoto a tu máquina local.

# Sintaxis
git clone <url-del-repositorio>

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

git status

Descripción: Muestra el estado actual del repositorio: qué archivos fueron modificados, cuáles están listos para el próximo commit y cuáles no están siendo rastreados.

# Sintaxis
git status

# Ejemplo
git status
# On branch main
# Changes not staged for commit:
#   modified: index.html

git add

Descripción: Prepara archivos modificados para incluirlos en el próximo commit.

# Sintaxis
git add <archivo>       # un archivo específico
git add .               # todos los archivos modificados

# Ejemplo
git add index.html
git add .

git commit

Descripción: Guarda los cambios preparados en el historial del repositorio con un mensaje descriptivo.

# Sintaxis
git commit -m "mensaje del commit"

# Ejemplo
git commit -m "Agrega página de inicio con formulario de contacto"

git pull

Descripción: Descarga los cambios del repositorio remoto y los fusiona con tu rama local. Es el comando que usas para "actualizarte" con el trabajo de tus compañeros.

# Sintaxis
git pull

# Ejemplo
git pull origin main

git push

Descripción: Envía tus commits locales al repositorio remoto.

# Sintaxis
git push <remoto> <rama>

# Ejemplo
git push origin main

git fetch

Descripción: Descarga los cambios del repositorio remoto sin fusionarlos automáticamente. A diferencia de git pull, te deja revisar los cambios antes de integrarlos.

# Sintaxis
git fetch

# Ejemplo
git fetch origin
git log origin/main  # revisa qué llegó antes de fusionar

git log

Descripción: Muestra el historial de commits del repositorio.

# Sintaxis
git log
git log --oneline   # versión compacta

# Ejemplo
git log --oneline
# a3f1b2c Agrega autenticación de usuario
# 9e0d4a1 Corrige error en formulario de contacto

git branch

Descripción: Lista, crea o elimina ramas en el repositorio.

# Sintaxis
git branch                  # lista las ramas
git branch <nombre-rama>    # crea una nueva rama

# Ejemplo
git branch
# * main
#   feature/login

git branch feature/registro

git checkout o git switch

Descripción: Cambia entre ramas o restaura archivos. git switch es la alternativa moderna y más clara para cambiar de rama.

# Sintaxis (clásico)
git checkout <rama>

# Sintaxis (moderno)
git switch <rama>

# Ejemplo
git switch feature/login
# Switched to branch 'feature/login'

¿Qué son las ramas (Branches)?

Una rama es una línea de desarrollo independiente dentro del mismo repositorio. Piensa en el código principal como el tronco de un árbol: cada rama te permite trabajar en algo nuevo (una funcionalidad, una corrección) sin tocar el tronco hasta que estés listo.

Importancia de las ramas

  • Permiten desarrollar funcionalidades de forma aislada.
  • Protegen el código principal (generalmente main o master) de cambios incompletos o con errores.
  • Facilitan la revisión de código antes de integrarlo al proyecto.

Relación con el trabajo en equipo

En un equipo, cada desarrollador trabaja en su propia rama. Cuando la funcionalidad está lista, se abre un Pull Request (en GitHub) o Merge Request (en GitLab) para que otros revisen el código antes de fusionarlo. Este flujo de trabajo evita conflictos y mejora la calidad del código.

Uso de ramas

Crear una rama

git branch feature/nueva-funcionalidad
# o directamente crea y cambia a ella:
git switch -c feature/nueva-funcionalidad

Cambiar de rama

git switch main
git switch feature/nueva-funcionalidad

Fusionar ramas (merge)

Una vez que tu funcionalidad está lista, fusiona tu rama con main:

git switch main
git merge feature/nueva-funcionalidad

Eliminar ramas

# Eliminar rama local (ya fusionada)
git branch -d feature/nueva-funcionalidad

# Eliminar rama remota
git push origin --delete feature/nueva-funcionalidad

Buenas prácticas para nombrar ramas

Usa nombres descriptivos y consistentes. Algunas convenciones comunes:

  • feature/nombre-funcionalidad — para nuevas funcionalidades.
  • fix/descripcion-del-error — para correcciones de errores.
  • hotfix/error-critico — para correcciones urgentes en producción.
  • chore/tarea-de-mantenimiento — para tareas como actualizar dependencias.

Evita nombres genéricos como mi-rama, prueba o cambios.

Conclusión

Git es una habilidad fundamental para cualquier desarrollador de software. Con los conceptos y comandos de esta guía ya puedes:

  • Crear y clonar repositorios.
  • Registrar cambios con commits descriptivos.
  • Sincronizarte con un equipo usando pull y push.
  • Organizar tu trabajo con ramas.

Recomendaciones para seguir aprendiendo

  1. Practica creando repositorios propios en GitHub.
  2. Aprende sobre pull requests y revisión de código.
  3. Explora flujos de trabajo como Git Flow o GitHub Flow.
  4. Lee la documentación oficial: git-scm.com.
  5. Usa git help <comando> en la terminal para consultar cualquier comando.

Resumen rápido

Comando ¿Qué hace?
git init Inicializa un repositorio nuevo
git clone <url> Clona un repositorio remoto
git status Muestra el estado del repositorio
git add . Prepara todos los cambios para commit
git commit -m "msg" Guarda los cambios con un mensaje
git pull Descarga y fusiona cambios del remoto
git push Envía commits al repositorio remoto
git fetch Descarga cambios sin fusionarlos
git log --oneline Muestra el historial de commits
git branch Lista las ramas del repositorio
git switch <rama> Cambia a otra rama
git merge <rama> Fusiona una rama con la actual
git branch -d <rama> Elimina una rama local

¡Ahora estás listo/a para empezar a usar Git en tus proyectos!