2. Fundamentos de Git

Git es un sistema de control de versiones distribuido. Esto significa que cada desarrollador tiene una copia completa del historial del proyecto en su máquina. A diferencia de sistemas centralizados, Git te permite trabajar sin conexión y luego sincronizar tus cambios.

Nuestro primer paso será instalar Git y configurar nuestro entorno.

Instalación y configuración inicial

Instalación

En Linux (Ubuntu/Debian):

sudo apt-get update
sudo apt-get install git

En macOS:

brew install git

En Windows:

Descarga el instalador desde git-scm.com y sigue las instrucciones.

Verificar la instalación

git --version

Deberías ver algo como git version 2.40.0.

Configuración inicial

Antes de usar Git, necesitas configurar tu identidad. Esta información se incluirá en cada commit que hagas.

git config --global user.name "Tu Nombre"
git config --global user.email "tu@email.com"

Se usará para identificar tus commits.

Para verificar tu configuración:

git config --list

Conceptos básicos

Repositorio

Un repositorio (o "repo") es un directorio que contiene tu proyecto y todo su historial de cambios. Piensa en él como una carpeta especial que Git monitorea.

Commit

Un commit es una instantánea de tu proyecto en un momento específico. Es como una fotografía de todos tus archivos. Cada commit tiene:

  • Un identificador único (hash)
  • Un mensaje descriptivo
  • El autor y la fecha
  • Los cambios realizados

Staging Area (Área de preparación)

Es un espacio intermedio donde preparas los cambios antes de confirmarlos. Esto te permite elegir exactamente qué cambios incluir en cada commit.

Working Directory → Staging Area → Repository
(archivos editados)  (git add)     (git commit)

Comandos esenciales

git init

Crea un nuevo repositorio Git en el directorio actual.

mkdir mi-proyecto
cd mi-proyecto
git init

Verás el mensaje: Initialized empty Git repository in /ruta/mi-proyecto/.git/

git status

Muestra el estado actual de tu repositorio: qué archivos han cambiado, cuáles están en staging, etc.

git status

git add

Añade archivos al área de staging.

# Añadir un archivo específico
git add archivo.txt

# Añadir todos los archivos
git add .

# Añadir todos los archivos con extensión .txt
git add *.txt

git commit

Guarda los cambios del staging area en el repositorio.

# Commit con mensaje en línea
git commit -m "Añade funcionalidad de login"

# Commit que abre el editor para escribir un mensaje más largo
git commit

Ejemplo práctico:

# Crear un archivo
echo "# Mi Proyecto" > README.md

# Ver el estado
git status

# Añadir al staging
git add README.md

# Confirmar los cambios
git commit -m "Añade README inicial"

git log

Muestra el historial de commits.

# Ver el historial completo
git log

# Ver un resumen de una línea por commit
git log --oneline

# Ver los últimos 5 commits
git log -n 5

# Ver el historial con un gráfico
git log --oneline --graph --all

El archivo .gitignore

Hay archivos que no quieres versionar: archivos temporales, dependencias, contraseñas, etc. El archivo .gitignore le dice a Git qué ignorar.

Crea un archivo .gitignore en la raíz de tu proyecto:

# Dependencias
node_modules/
venv/
__pycache__/

# Archivos de configuración local
.env
.env.local
config.local.js

# Archivos del IDE
.vscode/
.idea/
*.swp

# Archivos del sistema
.DS_Store
Thumbs.db

# Logs
*.log

Configuración de perfil: .gitconfig

Tu archivo .gitconfig contiene configuraciones personales. Está en tu directorio home (~/.gitconfig).

# Ver tu configuración
cat ~/.gitconfig

# Editar la configuración
git config --global --edit

Configuraciones útiles:

# Definir el editor por defecto
git config --global core.editor "code --wait"

# Colorear la salida de Git
git config --global color.ui auto

# Alias útiles
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.unstage 'reset HEAD --'

Ahora puedes usar git st en lugar de git status.

Clientes visuales

Aunque la línea de comandos es poderosa, los clientes visuales pueden ayudarte a entender mejor el estado de tu repositorio.

Clientes populares:

  • GitKraken: Multiplataforma, interfaz intuitiva
  • SourceTree: Gratis, de Atlassian
  • GitHub Desktop: Simple y eficaz, especialmente para GitHub
  • Git GUI: Creado por los desarrolladores de Git

Recomendación: Aprende primero la línea de comandos, luego usa clientes visuales para complementar.

Actividad 1
  1. Instala Git en tu sistema y verifica la versión.
  2. Configura tu nombre de usuario y email.
  3. Crea un nuevo directorio llamado mi-primer-repo e inicializa un repositorio Git.
  4. Crea un archivo README.md con algún contenido.
  5. Añade el archivo al staging area y haz tu primer commit.
  6. Crea un archivo .gitignore que ignore archivos .log.
  7. Verifica el historial con git log.

This work is under a Attribution-NonCommercial-NoDerivatives 4.0 International license.

Will you buy me a coffee?