Instalación y configuración inicial
Para instalar Git en sistemas basados en Debian, utiliza el gestor de paquetes:
sudo apt-get install git
Configura tu identidad global en Git para los commits:
git config --global user.nombre "tu_nombre"
git config --global user.correo "tu_correo@ejemplo.com"
Inicialización de un repositorio
Para crear un nuevo repositorio local, navega al directorio deseado y ejecuta:
git init
Esto generará un directorio oculto .git que almacena el historial del proyecto.
Estructura interna de Git
Git opera con tres áreas principales:
- Área de trabajo: Archivos físicos en el directorio actual.
- Área de preparación (staging): Buffer interno donde se registran cambios antes de confirmarlos.
- Historial de commits: Registro inmutable de todas las versiones, donde HEAD apunta al commmit actual.
Registro de cambios
Para añadir archivos al área de preparación y confirmarlos:
git add archivos_modificados
git commit -m "Descripción de los cambios realizados"
Comandos esenciales
git status # Estado actual del repositorio
git diff archivo # Diferencias entre versión de trabajo y staging
git log # Historial de commits con IDs únicos
git reflog # Registro de operaciones recientes
git checkout . # Restaurar archivos desde staging (¡operación irreversible!)
git rm archivo # Eliminar archivo de trabajo y staging
git rm --cached archivo # Eliminar solo del staging
git blame archivo # Anotar cambios línea por línea
Navegación en el historial
Para revertir a un commit anterior, utiliza su identificador o referencias relativas:
git reset --hard HEAD~1 # Volver al commit anterior
git reset --hard 3a8f2b # Revertir a commit específico por ID parcial
Gestión de ramas
Creación y visualización
git branch nueva_funcionalidad # Crear rama desde el commit actual
git branch -a # Listar todas las ramas (locales y remotas)
Cambio y fusión
git checkout nueva_funcionalidad # Cambiar a la rama especificada
git merge nueva_funcionalidad # Integrar cambios a la rama actual
En caso de conflictos durante la fusión, edita los archivos marcados, luego:
git add archivos_corregidos
git commit -m "Resolución de conflictos durante merge"
Ramas remotas
Para clonar una rama específica de un repositorio remoto:
git clone -b desarrollo https://repositorio_remoto/proyecto.git
Etiquetado de versiones
Las etiquetas sirven para marcar puntos importantes en el historial:
git tag v2.0.0 -m "Versión estable liberada"
Configuración de repositorio remoto
Para asociar un repositorio local con uno remoto como Gitee o GitHub:
git remote add origin https://plataforma_remota/usuario/proyecto.git
git remote -v # Verificar conexiones remotas configuradas
Autenticación con claves SSH
Genera un par de claves para autenticación segura:
ssh-keygen -t ed25519 -C "comentario_identificativo"
Agrega la clave pública a tu perfil en la plataforma remota y registra la privada localmente:
ssh-add ~/.ssh/id_ed25519
ssh -T git@plataforma_remota # Probar la conexión
Publicación de cambios
Para enviar commits al repositorio remoto:
git push origin rama_principal # Push a la rama principal
git push origin desarrollo # Push a la rama desarrollo
Para evitar ingreso repetido de credenciales:
git config --global credential.helper cache