Domina Git: Control de Versiones para Desarrolladores
Aprende los comandos esenciales, flujos de trabajo profesionales y buenas pr谩cticas para colaborar en equipo sin conflictos.
馃幆 Lo que Aprender谩s
Desde la instalaci贸n hasta flujos de trabajo avanzados. Todo con ejercicios pr谩cticos que puedes completar directamente aqu铆.
M贸dulo 1: Introducci贸n y Configuraci贸n
Git es un sistema de control de versiones distribuido. Aprende a instalarlo, configurarlo y entender su arquitectura b谩sica.
Comandos Esenciales:
- git init: Inicializa un nuevo repositorio
- git config: Configura tu identidad (nombre y email)
- git status: Muestra el estado actual del repositorio
- git log: Muestra el historial de commits
$ git config --global user.name "Tu Nombre"
$ git config --global user.email "tu@email.com"
$ git init mi-proyecto
Initialized empty Git repository in ./mi-proyecto/.git/
Ejercicio Pr谩ctico 1.1
¿Qu茅 comando usas para configurar tu email en Git?
M贸dulo 2: El Ciclo B谩sico de Git
Entiende el flujo de trabajo fundamental: modificar archivos, preparar cambios (stage) y confirmar (commit).
Comandos Clave:
- git add: Agrega archivos al 谩rea de staging
- git commit: Confirma los cambios con un mensaje
- git diff: Muestra diferencias entre archivos
- git restore: Descarta cambios no confirmados
$ git add archivo.txt
$ git commit -m "Agregar funcionalidad X"
[main abc123] Agregar funcionalidad X
1 file changed, 10 insertions(+)
Ejercicio Pr谩ctico 2.1
¿Qu茅 flag usas para agregar un mensaje al commit?
M贸dulo 3: Ramas y Fusi贸n
Las ramas te permiten trabajar en caracter铆sticas separadas sin afectar la l铆nea principal. Aprende a crear, cambiar y fusionar ramas.
Comandos de Ramas:
- git branch: Lista o crea ramas
- git checkout / git switch: Cambia de rama
- git merge: Fusiona una rama con la actual
- git branch -d: Elimina una rama
$ git branch nueva-feature
$ git switch nueva-feature
$ # ... trabajar en la feature ...
$ git switch main
$ git merge nueva-feature
Ejercicio Pr谩ctico 3.1
¿Qu茅 comando usas para cambiar a una rama llamada "develop"?
M贸dulo 4: Trabajo Remoto con GitHub
Conecta tu repositorio local con un repositorio remoto para colaborar con otros desarrolladores.
Comandos Remotos:
- git remote add: Agrega un repositorio remoto
- git push: Sube commits al remoto
- git pull: Descarga e integra cambios del remoto
- git fetch: Descarga cambios sin fusionar
$ git remote add origin https://github.com/usuario/repo.git
$ git push -u origin main
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
To https://github.com/usuario/repo.git
* [new branch] main -> main
Ejercicio Pr谩ctico 4.1
¿Qu茅 comando sube tus commits al repositorio remoto?
M贸dulo 5: Resoluci贸n de Conflictos
Los conflictos ocurren cuando Git no puede fusionar cambios autom谩ticamente. Aprende a identificarlos y resolverlos profesionalmente.
Proceso de Resoluci贸n:
- Identificar: Git marca conflictos con <<<<<<<, =======, >>>>>>>>
- Editar: Elige qu茅 c贸digo mantener en cada secci贸n
- Marcar: Usa git add para marcar como resuelto
- Confirmar: Haz commit para finalizar la fusi贸n
$ git merge feature-x
CONFLICT (content): Merge conflict in archivo.txt
Automatic merge failed; fix conflicts and then commit the result.
$ # Editar archivo.txt y resolver conflictos
$ git add archivo.txt
$ git commit -m "Resolver conflicto en archivo.txt"
Ejercicio Pr谩ctico 5.1
¿Qu茅 comando usas para marcar un archivo como resuelto?
M贸dulo 6: Buenas Pr谩cticas y Flujos
Adopta convenciones profesionales para mantener un historial limpio y facilitar la colaboraci贸n en equipo.
Convenciones Recomendadas:
- Mensajes de commit: Usa el formato imperativo ("Agregar" no "Agregu茅")
- Ramas: Usa nombres descriptivos (feature/login, bugfix/error-404)
- .gitignore: Excluye archivos innecesarios (node_modules, .env)
- Commits at贸micos: Un cambio l贸gico por commit
Ejercicio Pr谩ctico 6.1
¿Qu茅 archivo usas para excluir archivos del control de versiones?
Comentarios
Publicar un comentario