Git

Rastrea cambios en el código, colabora en equipo y mantén el historial del proyecto con control de versiones distribuido

TL;DR

En una línea: Git rastrea cada cambio en tu código, permite deshacer errores y hace posible la colaboración.

Valor principal:

  • Historial - cada cambio queda registrado
  • Deshacer - volver a cualquier estado anterior
  • Ramas - trabajar en funcionalidades sin romper el código principal
  • Colaboración - fusionar trabajo de múltiples personas

Quick Start

Install

macOS:

brew install git

Windows: Descargar Git para Windows

Linux:

sudo apt install git  # Debian/Ubuntu

Configure

git config --global user.name "Tu Nombre"
git config --global user.email "[email protected]"

First Repo

mkdir miproyecto && cd miproyecto
git init
echo "# Mi Proyecto" > README.md
git add .
git commit -m "Commit inicial"

Cheatsheet

ComandoDescripción
git initCrear nuevo repo
git clone URLClonar un repo
git statusVerificar estado actual
git add ARCHIVOPreparar cambios
git add .Preparar todos los cambios
git commit -m "msg"Confirmar cambios
git pushEnviar al remoto
git pullTraer del remoto
git branchListar ramas
git branch NOMBRECrear rama
git checkout NOMBRECambiar de rama
git checkout -b NOMBRECrear y cambiar
git merge NOMBREFusionar rama
git log --onelineVer historial
git diffVer cambios no preparados
git stashGuardar cambios temporalmente
git stash popRestaurar cambios guardados

Gotchas

Forgot to add files before commit

git add archivo-olvidado
git commit --amend --no-edit

Wrong commit message

git commit --amend -m "Mensaje correcto"

Undo last commit (keep changes)

git reset --soft HEAD~1

Undo last commit (discard changes)

git reset --hard HEAD~1

Merge conflicts

Edita los archivos en conflicto (busca <<<<<<<), luego:

git add .
git commit -m "Resolver conflictos"

Accidentally committed to wrong branch

# Mover commit a la rama correcta
git checkout rama-correcta
git cherry-pick COMMIT_HASH
git checkout rama-incorrecta
git reset --hard HEAD~1

Next Steps