Git: Control de versiones para desarrollo de software

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

Etiquetas: Git control de versiones repositorio branching commits

Publicado el 6-9 00:08