11-intro
Tutorial Completo de Git
Índice
Introducción a Git
Instalación y configuración inicial
Comandos básicos
Ramas (Branches)
Trabajo remoto con GitHub
Flujos de trabajo comunes
Ejercicios prácticos
1. Introducción a Git {#introducción}
Git es un sistema de control de versiones distribuido que permite:
✅ Llevar un historial de cambios en tu código
✅ Trabajar en equipo sin pisar el trabajo de otros
✅ Experimentar sin miedo a romper nada
✅ Volver a versiones anteriores fácilmente
Conceptos clave:
Repositorio: Carpeta donde Git guarda todo el historial
Commit: Instantánea de los archivos en un momento específico
Rama (Branch): Línea independiente de desarrollo
HEAD: Puntero al commit actual
2. Instalación y configuración inicial {#instalación}
Instalación:
Windows: Descargar desde git-scm.com
Mac:
brew install gito descargar instaladorLinux:
sudo apt install git(Ubuntu/Debian)
Configuración inicial (solo una vez):
# Configurar tu identidad
git config --global user.name "Tu Nombre"
git config --global user.email "tu@email.com"
# Configurar editor por defecto
git config --global core.editor "code --wait" # Para VS Code
# Ver configuración
git config --list3. Comandos básicos {#comandos-básicos}
Crear un repositorio
# Inicializar repositorio nuevo
mkdir mi-proyecto
cd mi-proyecto
git init
# O clonar uno existente
git clone https://github.com/usuario/repositorio.gitCiclo básico de trabajo
# 1. Ver estado de los archivos
git status
# 2. Agregar archivos al área de staging
git add archivo.txt # Archivo específico
git add . # Todos los archivos
# 3. Hacer commit (guardar cambios)
git commit -m "Mensaje descriptivo"
# 4. Ver historial
git log # Historial completo
git log --oneline # Historial resumido
git log --graph # Historial con gráficoComparar cambios
git diff # Cambios sin staging
git diff --staged # Cambios en staging
git diff commit1 commit2 # Diferencia entre commits4. Ramas (Branches) {#ramas}
Trabajo con ramas
# Ver ramas
git branch # Lista local
git branch -r # Ramas remotas
git branch -a # Todas las ramas
# Crear y cambiar ramas
git branch nueva-funcionalidad # Crear rama
git checkout nueva-funcionalidad # Cambiar a rama
git checkout -b otra-rama # Crear y cambiar (combo)
# Fusionar ramas
git checkout main # Ir a rama destino
git merge nueva-funcionalidad # FusionarResolver conflictos
Cuando Git no puede fusionar automáticamente:
Git marca los archivos en conflicto
Ábrelos y busca
<<<<<<<,=======,>>>>>>>Edita para dejar la versión correcta
Guarda y haz commit
5. Trabajo remoto con GitHub {#trabajo-remoto}
Conectar con repositorio remoto
# Ver repositorios remotos
git remote -v
# Agregar repositorio remoto
git remote add origin https://github.com/usuario/repo.git
# Subir cambios
git push origin main # Primera vez
git push # Después de configurar
# Bajar cambios
git pull # Traer y fusionar
git fetch # Solo traer, no fusionarFlujo completo con remoto
# 1. Clonar repositorio
git clone https://github.com/usuario/proyecto.git
cd proyecto
# 2. Crear rama para nueva funcionalidad
git checkout -b feature/amigos
# 3. Hacer cambios y commits
git add .
git commit -m "Agrega lista de amigos"
# 4. Subir rama al remoto
git push origin feature/amigos
# 5. En GitHub, crear Pull Request6. Flujos de trabajo comunes {#flujos-de-trabajo}
Git Flow básico
main (producción)
↑
develop (desarrollo)
↑
feature/nueva-funcionComandos útiles
# Guardar cambios temporalmente
git stash # Guarda cambios sin commit
git stash list # Lista stashes
git stash pop # Recupera último stash
git stash drop # Elimina stash
# Deshacer cambios
git reset HEAD archivo # Quitar del staging
git checkout -- archivo # Descartar cambios locales
git reset --soft HEAD~1 # Deshacer último commit (mantiene cambios)
git reset --hard HEAD~1 # Deshacer último commit (pierde cambios)7. Ejercicios prácticos {#ejercicios}
🎯 Ejercicio 1: Primeros pasos
# Crea un proyecto simple
mkdir ejercicios-git
cd ejercicios-git
git init
echo "# Mi Proyecto" > README.md
git add README.md
git commit -m "Primer commit"🎯 Ejercicio 2: Ramas
# Crea una rama y haz cambios
git checkout -b desarrollo
echo "print('Hola mundo')" > app.py
git add app.py
git commit -m "Agrega script inicial"
git checkout main
git merge desarrollo🎯 Ejercicio 3: Remoto
# Crea repo en GitHub y conecta
git remote add origin https://github.com/tu-usuario/ejercicios.git
git branch -M main
git push -u origin main📝 Buenas prácticas
Mensajes de commit:
Usa imperativo: "Agrega función" (no "Agregué función")
Primera línea: máximo 50 caracteres
Línea en blanco después del título
Detalles si es necesario
Organización:
Un commit por cambio lógico
No commites archivos generados
Usa
.gitignorepara excluir archivos
Ejemplo .gitignore:
# Dependencias
node_modules/
vendor/
# Archivos de sistema
.DS_Store
Thumbs.db
# Archivos de configuración local
.env
*.log🚀 Comandos de emergencia
# ¡CUIDADO! Estos comandos pueden ser destructivos
# Recuperar archivo eliminado
git checkout HEAD -- archivo.txt
# Deshacer último commit pero mantener cambios
git reset --soft HEAD~1
# Deshacer commits locales (no subidos)
git reset --hard origin/main
# Si hiciste merge sin querer
git merge --abort
Comentarios
Publicar un comentario