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
| Comando | Descripción |
|---|---|
git init | Crear nuevo repo |
git clone URL | Clonar un repo |
git status | Verificar estado actual |
git add ARCHIVO | Preparar cambios |
git add . | Preparar todos los cambios |
git commit -m "msg" | Confirmar cambios |
git push | Enviar al remoto |
git pull | Traer del remoto |
git branch | Listar ramas |
git branch NOMBRE | Crear rama |
git checkout NOMBRE | Cambiar de rama |
git checkout -b NOMBRE | Crear y cambiar |
git merge NOMBRE | Fusionar rama |
git log --oneline | Ver historial |
git diff | Ver cambios no preparados |
git stash | Guardar cambios temporalmente |
git stash pop | Restaurar 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