Git Cheatsheet
Git Cheatsheet
Crear un repositorio
# crear repo local y agregar archivos
git init
git add .
git commit -m "Commit inicial"
# configurar repo remoto 'origin'
git remote add origin https://github.com/user/repo.git
# mover 'master' a 'main' en caso de que la rama por defecto sea 'master'
git branch -M main
# subir la rama 'main' al repo remoto 'origin' configurado
git push -u origin main
Trabajar con cambios locales
# ver los cambios sin guardar
git status
# seleccionar todo/seleccionar algunos/seleccionar hunks específicos
git add .
git add <file1> <file2>
git add -p <file>
# guardar cambios
git commit -m "Mensaje del commit"
Revisando el historial
# ver todo el historial/historial por archivo/historial por línea de código
git log
git log <file>
git blame <file>
Trabajando con ramas
# ver todas las ramas (locales y remotas)
git branch -av
# crear rama
git branch <new-branch>
# cambiar de rama
git checkout <branch-name>
# combinar rama actual con otra rama
git merge <target-branch>
# eliminar rama
git branch -d <branch-name>
Deshaciendo cambios
# deshacer cambios en el 'working directory'
git restore <file>
# deshacer los cambios del último commit 'stage' -> 'working directory'
git reset HEAD~1
# destruir completamente los cambios del último commit
# sin guardar en el 'working directory'
git reset --hard HEAD~1
# regresar completamente hasta un commit específico
# destruyendo todos los cambios realizados
git reset --hard <commit>
Inspeccionando cambios realizados
# HEAD vs working directory
git diff
# HEAD vs commit
git diff <commit>
# commit vs commit anterior/padre (cambios introducidos por el commit)
git show <commit>
# comparar 2 commits
git diff <commit1> <commit2>
Saltar a un commit específico en rama temporal
# saltar a un commit
git checkout <commit>
# a) guardar la rama temporal y cambiar a dicha rama
git branch -b test-branch
# b) volver a la rama principal
git checkout main
Tags
# agregar etiqueta a un commit
git tag <tagname> <commit>
# subir tags al remoto
git push --tags
Trabajando con ramas remotas (subir y eliminar)
# subir rama al remoto (asociando rama local con remota)
git push -u origin <branch-name>
# eliminar rama del remoto
git push --delete <branch-name>
# sincronizar la rama local con la rama remota
git pull
# sincronizar la rama local con la rama remota (sin descargar)
git fetch
NOTA: la asociación de la rama local con la rama remota permite
hacer git push/pull
sin indicar la rama.
NOTA: si se tienen varios remotos, se debe indicar el nombre del repositorio donde se quiere eliminar (p. ej. ‘origin’)
Guardar el directorio de trabajo para otro commit
## limpiar el directorio de trabajo guardando los cambios
git stash push
## recuperar los cambios hacia el directorio de trabajo
git stash pop