Skip to content

euclidesseg/CURSO-GIT-PROFESIONAL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 

Repository files navigation

📘 Guía práctica de Git y Gitflow

De básico a avanzado

Esta guía organiza los comandos más importantes de Git desde los más básicos hasta los más avanzados, e incluye un flujo Gitflow profesional para trabajo individual o en equipo.

================================================================================

1️⃣ COMANDOS BÁSICOS DEL SISTEMA
touch historico.txt
→ Crea un archivo vacío en el directorio actual.

code historico.txt
→ Abre el archivo en Visual Studio Code.

================================================================================

2️⃣ CONFIGURACIÓN INICIAL DE GIT (SOLO UNA VEZ)

git config --global user.name "Euclides Perez"
→ Configura el nombre del usuario que aparecerá en los commits.

git config --global user.email "eperez@intecol.com.co"
→ Configura el correo electrónico asociado a los commits.

git config --global credential.helper store
→ Guarda las credenciales para no autenticarse cada vez.

================================================================================

3️⃣ FLUJO BÁSICO DE TRABAJO CON GIT

git status
→ Muestra el estado de los archivos (modificados, preparados, no rastreados).

git add historico.txt
→ Agrega un archivo específico al área de preparación (staging).

git add .
→ Agrega todos los cambios al staging.

git commit -m "Primer commit"
→ Guarda los cambios preparados en el repositorio local.

git commit -a -m "Commit rápido"
→ Agrega y commitea automáticamente archivos ya rastreados.

================================================================================

4️⃣ ENVIAR CAMBIOS AL REPOSITORIO REMOTO (MUY IMPORTANTE)

git push
→ Envía los commits locales al repositorio remoto de la rama actual.

git push origin main
→ Envía los commits de la rama main al repositorio remoto.

git push origin develop
→ Envía los commits de la rama develop al repositorio remoto.

git push -u origin nueva_rama
→ Sube una rama nueva al repositorio remoto y la vincula (tracking).

git push --force
→ Fuerza el envío de commits (⚠️ usar solo en ramas locales o controladas).

================================================================================

5️⃣ VER HISTORIAL Y CAMBIOS

git log
→ Muestra el historial completo de commits.

git log --graph --oneline --all
→ Muestra el historial resumido con ramas y gráfico visual.

git log historico.txt
→ Muestra el historial de cambios de un archivo específico.

git show
→ Muestra información detallada del último commit.

git log -p
→ Muestra los cambios línea por línea en cada commit.

git diff
→ Muestra diferencias entre el directorio de trabajo y el staging.

git diff --staged
→ Muestra diferencias entre el staging y el último commit.

================================================================================

6️⃣ MANEJO AVANZADO DEL STAGING Y ARCHIVOS

git add -p
→ Permite agregar cambios de forma interactiva (por bloques o líneas).

git restore historico.txt
→ Descarta los cambios locales antes de hacer git add.

git restore --staged historico.txt
→ Quita los archivos del area de preparacion luego de hacer git add.

git rm historico.txt
→ Elimina un archivo del repositorio y del sistema.

git rm --cached historico.txt
→ Elimina el archivo del staging pero lo conserva localmente.

git mv archivo_actual nuevo_nombre
→ Mueve o renombra archivos manteniendo el seguimiento de Git.

git clean -fd
→ Elimina archivos y carpetas no rastreados.

================================================================================

7️⃣ RECUPERACIÓN Y MANIPULACIÓN DEL HISTORIAL (USAR CON CUIDADO)

git reset --soft ID_COMMIT
→ Vuelve a un commit anterior manteniendo los cambios en staging.

git reset --hard ID_COMMIT
→ Vuelve a un commit anterior eliminando todos los cambios posteriores.

git checkout ID_COMMIT
→ Se mueve a un commit específico sin borrar el historial.

git reflog
→ Muestra el historial completo, incluso commits eliminados.

git revert ID_COMMIT
→ Revierte un commit creando uno nuevo (seguro para producción).

================================================================================

8️⃣ TRABAJO CON RAMAS (FUNDAMENTOS)

git branch
→ Lista todas las ramas locales.

git branch nombre_rama
→ Crea una nueva rama.

git checkout nombre_rama
→ Cambia a otra rama.

git checkout -b nueva_rama
→ Crea una nueva rama y se mueve a ella automáticamente.

git branch -D nombre_rama
→ Elimina una rama local.

git push -u origin nombre_rama
→ Envia una rama que esta en local hasta rel repositorio remoto.
================================================================================

9️⃣ FUSIÓN DE RAMAS

git merge feature1
→ Fusiona la rama feature1 en la rama actual.

git merge --abort
→ Cancela una fusión cuando hay conflictos.

Regla importante:
Primero debes posicionarte en la rama destino y luego ejecutar el merge.

================================================================================

🚀 GITFLOW (FLUJO PROFESIONAL)

================================================================================

🌱 RAMAS PRINCIPALES

main (o master)
→ Rama de producción. Contiene solo código estable.

develop
→ Rama de integración. Aquí se unen todas las funcionalidades.

================================================================================

✨ RAMAS FEATURE

Características:
- Se crean desde develop
- Contienen una sola funcionalidad
- Nunca se fusionan directamente con main

Crear una rama feature:

git checkout develop
git checkout -b feature/nueva-funcionalidad

Finalizar una feature:

git checkout develop
git merge feature/nueva-funcionalidad
git branch -d feature/nueva-funcionalidad

git push origin develop
→ Publica los cambios integrados en develop.

================================================================================

📦 RAMAS RELEASE

Características:
- Se crean desde develop
- Solo permiten correcciones, documentación y ajustes finales

Crear una release:

git checkout develop
git checkout -b release/1.0.0

Finalizar una release:

git checkout main
git merge release/1.0.0
git push origin main

git checkout develop
git merge release/1.0.0
git push origin develop

git branch -d release/1.0.0

================================================================================

🚑 RAMAS HOTFIX

Características:
- Se crean desde main
- Corrigen errores críticos en producción

Crear un hotfix:

git checkout main
git checkout -b hotfix/error-critico

Finalizar un hotfix:

git checkout main
git merge hotfix/error-critico
git push origin main

git checkout develop
git merge hotfix/error-critico
git push origin develop

git branch -d hotfix/error-critico

================================================================================

🧠 RESUMEN GITFLOW

1. main → Producción
2. develop → Integración
3. feature/* → Nuevas funcionalidades
4. release/* → Preparación de versión
5. hotfix/* → Correcciones urgentes

================================================================================

✅ BUENAS PRÁCTICAS

- Usa git reset solo en ramas locales
- Usa git revert en ramas compartidas o producción
- Evita git push --force en ramas compartidas
- Haz commits pequeños y descriptivos
- Mantén el historial limpio y legible

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors