Skip to main content

Guía práctica de Git

¿Qué nos permite hacer git?

Git nos va a permitir:

  • Guardar el historial del proyecto: ver qué cambió y cuándo, como un “deshacer” mucho más potente.
  • Trabajar en equipo sin pisarnos: cada uno aporta sus cambios y luego se juntan ordenadamente.
  • Tener varias líneas de trabajo (ramas): por ejemplo, una para pruebas y otra para la versión estable.
  • Probar ideas sin miedo: si algo sale mal, vuelves atrás a una versión que funcionaba.
  • Trabajar incluso sin Internet: puedes avanzar y más tarde sincronizarlo todo.
  • Marcar hitos: poner etiquetas tipo v1.0 para señalar versiones importantes.
  • Saber quién hizo qué: cada cambio lleva autor y mensaje, útil para recordar decisiones.
  • Tener copia de seguridad: guardar el proyecto en un servidor (GitHub, etc.) por si tu equipo falla.

Términos clave

TérminoDefinición simpleEjemplo / Comando típico
ProyectoCarpeta con tu código y archivos.
RepositorioProyecto con historial controlado por Git.git init
Repositorio localEl repo en tu ordenador.
Repositorio remotoCopia del repo en un servidor (GitHub, GitLab…).git remote add origin <url>
GitHerramienta de control de versiones.
GitHubServicio para alojar repos y colaborar.
Versión (commit)“Foto” del estado del proyecto.git commit -m "mensaje"
CambiosModificaciones realizadas en archivos.git status
Área de trabajoArchivos tal cual en tu carpeta.
Staging / ÍndiceZona para preparar lo que se guardará en un commit.git add archivo
CommitGuardado de lo preparado con un mensaje.git commit -m "mensaje"
Mensaje de commitResumen corto y claro de lo hecho."Corrige login"
Historial (log)Lista de commits del repo.git log --oneline
Rama (branch)Línea de trabajo paralela e independiente.git switch -c feature/x
Principal / mainRama principal del proyecto.git switch main
MergeUnir cambios de una rama a otra.git merge feature/x
ConflictoGit no sabe mezclar cambios automáticamente.Editar, git add, luego git commit
PushEnviar tus commits al remoto.git push origin main
PullTraer y mezclar cambios del remoto.git pull
FetchTraer cambios del remoto sin mezclar.git fetch
CloneCopiar un repo remoto a tu máquina.git clone <url>
ForkCopia de un repo en tu cuenta (GitHub).Botón Fork en GitHub
Pull Request (PR)Propuesta para mezclar tu rama en otra.En GitHub/GitLab
Tag / EtiquetaMarca una versión importante.git tag v1.0
.gitignoreArchivos/carpetas que Git debe ignorar.node_modules/
HEADPuntero a tu commit/rama actual.git show HEAD
Checkout / SwitchCambiar de rama o versión.git switch rama
ResetMover HEAD / deshacer cambios (con cuidado).git reset --hard HEAD~1
StashGuardado temporal de cambios sin commitear.git stash, git stash pop
DiffVer diferencias entre archivos/commits.git diff

Instalación

MacOS

brew install git

Linux

sudo apt update
sudo apt install git

Windows

Descargar instalador


Configuración inicial

git config --global user.name "NombreUsuario"
git config --global user.email "CorreoUsuario"
git config --global credential.helper store

Nota: --global indica que esta configuración se aplica a nivel de todo el sistema.

Ejemplo:

git config --global user.name "JuanPerez"
git config --global user.email "juanperez@example.com"

Iniciar Git en un proyecto

Desde el directorio raíz que queremos sincronizar con Git:

git init

Esto crea la carpeta oculta .git, lo que indica que el directorio ya trabaja con control de versiones.

Añadir y confirmar cambios iniciales

git add .
git commit -m "Crear repositorio"

Ramas (Branches)

  • Listar ramas
git branch
  • Cambiar nombre a la rama
git branch -m main
  • Crear nueva rama
git branch NombreNuevaRama
  • Cambiar de rama
git checkout NombreRama
# o con la sintaxis moderna
git switch NombreRama
  • Restaurar archivo al último commit
git checkout NombreArchivo
  • Resetear cambios
git reset

Ejemplo:

git branch feature-login
git switch feature-login

Estados del repositorio

  • Ver estado actual
git status
  • Historial de commits
git log
git log --graph --pretty=oneline
  • Historial de referencias
git reflog

Ejemplo:

git log --oneline

Archivo .gitignore

Se usa para indicar archivos o directorios que no queremos incluir en el control de versiones.
Debe estar en la raíz del repositorio.

  1. Crear archivo:
touch .gitignore
  1. Editar y añadir los elementos a ignorar:
node_modules/
*.log
*.tmp

Ejemplo: ignorar todos los archivos .env:

*.env

Comparar cambios

Ver diferencias respecto al último commit:

git diff

Ejemplo:

git diff index.html

Desplazamiento entre commits y tags

  • Moverse a un commit específico (por ID)
git checkout id_commit
  • Moverse a un tag
git checkout tag/nombre_tag

Ejemplo:

git checkout 3f5a2c1
git checkout v1.0.0

Tags

  • Crear un tag
git tag nombre_tag
  • Listar tags
git tag

Ejemplo:

git tag v1.0.0
git tag

Resumen

Con esta guía puedes instalar, configurar, crear repositorios, trabajar con ramas, gestionar estados, ignorar archivos, comparar cambios y usar tags en Git.