📝 BLOG

Git y Control de Versiones: Comandos Básicos y Flujos de Trabajo

Git es la herramienta fundamental del desarrollo de software moderno. Esta guía cubre los comandos básicos de Git, estrategias de branching y flujos de trabajo.

Actualizado:

Preparado por: Gsetsoft

Git y Control de Versiones: Comandos Básicos y Flujos de Trabajo

¿Qué es Git y por qué usarlo?

Git es un sistema de control de versiones distribuido. Rastrea cambios de código, gestiona diferentes versiones y facilita la colaboración en equipo.

Estructura distribuida: Cada desarrollador tiene una copia completa del repositorio. Esto permite trabajo offline y operaciones rápidas.

Branching: Cree ramas separadas para diferentes características o correcciones. Esto mantiene el código principal (main/master) siempre estable.

Merge y rebase: Fusione ramas en la rama principal. Merge preserva el historial de commits. Rebase crea un historial lineal.

Comandos Básicos de Git

git init: Crea un nuevo repositorio. git clone <url>: Copia un repositorio existente.

git add <file>: Agrega cambios al área de staging. git add .: Agrega todos los cambios.

git commit -m "mensaje": Confirma los cambios en staging. Escriba mensajes de commit significativos.

git status: Verifica el estado del repositorio. git log: Visualiza el historial de commits.

git diff: Ve las diferencias entre el directorio de trabajo y el área de staging. git diff --staged: Ve las diferencias entre el área de staging y el último commit.

Branching y Merging

git branch <name>: Crea una nueva rama. git checkout <name> o git switch <name>: Cambia a la rama.

git merge <branch>: Fusiona la rama en la rama actual. Usa fast-forward merge o three-way merge.

Conflicto de merge: Se requiere resolución manual para cambios conflictivos. Edite los archivos conflictivos, márquelos con git add, complete con git commit.

git branch -d <name>: Elimina la rama. git branch -D <name>: Fuerza la eliminación de una rama no fusionada.

Operaciones de Repositorio Remoto

git remote add origin <url>: Agrega repositorio remoto. git remote -v: Lista los remotos.

git push origin <branch>: Envía cambios locales al remoto. git push -u origin main: Establece la rama upstream.

git pull: Obtiene y fusiona cambios remotos. git fetch: Obtiene cambios remotos (sin fusionar).

git push --force: Actualiza forzadamente la rama remota (usar con cuidado). git push --force-with-lease: Force push más seguro.

Estrategias de Branching

Git Flow: main (producción), develop (desarrollo), feature/* (nuevas características), release/* (preparación de versión), hotfix/* (correcciones urgentes).

GitHub Flow: rama main + ramas de características. Cada rama de característica se fusiona a main mediante pull request. Simple y efectivo.

Trunk-Based Development: Una sola rama main, ramas de características de corta duración (1-2 días). Combinado con integración continua (CI/CD).

Criterios de selección: Git Flow para proyectos grandes, GitHub Flow para proyectos pequeños-medianos, Trunk-Based Development para equipos con CI/CD maduro.

Mejores Prácticas

Mensajes de commit: Use modo imperativo ('Add feature' no 'Added feature'). Limite la primera línea a 50 caracteres, los detalles a 72 caracteres.

Commits atómicos: Cada commit debe contener un solo cambio. Divida los cambios grandes en commits pequeños.

Nomenclatura de ramas: Use nombres descriptivos como feature/user-authentication, bugfix/login-error, hotfix/security-patch.

.gitignore: Ignore archivos innecesarios (node_modules, .env, build/). Use las plantillas de gitignore de GitHub.

Pull request: Use pull requests para revisión de código. Cada cambio debe ser revisado por al menos una persona.

Herramientas relacionadas

Tu elección de privacidad

Las cookies esenciales permiten seguridad y sesiones. También contamos visitas básicas; con permiso activamos análisis adicionales. Política de cookies