Todos empiezan por git
, se debe escribir git <comando>
path
puede ser un directorio, un archivo o un glob (*
selecciona todo lo de la carpeta actual, .
se refiere al directorio actual, ..
el directorio anterior, ... )
Se puede combinar mas de una flag, ej:
git commit --amend --no-edit # Sobreescribe el commit anterior y no cambia el mensaje
git commit -am "Hecho el ej. 12" # Hace un commit, añadiendo todos los cambios
remoto
es un repo. remoto enlazado a una rama local, se puede enlazar una rama a otra remota usando git remote add <URL>
clone <URL> # Clona un repo
init # Crea un repositorio en la carpeta actual (en local, no en github)
add <path> # Añade un fichero particular
add -A # Añade todo
status # Estado actual del repo
status -s # Ídem, formato corto
status --show-stash # Info del stash
restore <path> # Restaura todos los cambios no confirmados de un fichero
restore --staged <path> # Saca del area "stage" un fichero
commit -m <mensaje> # Commit indicando mensaje
commit -a # Añade los cambios no confirmados (no incluye archivos/carpetas nuevas)
commit --amend # Añade los cambios actuales al commit anterior
commit --no-edit # No edita el mensaje del commit
push # Sube los cambios al repo. remoto
push <remoto> # Ídem
push --set-upstream <remoto> <rama> # Establece que el repo. remoto 'remoto' le pertenece a la rama 'rama'
fetch # Se fija si hay cambios en el repo. remoto
pull # Descarga los cambios en el repo. remoto
pull <remoto> # Ídem
checkout <rama/commit> # Cambia hacia un commit/rama particular
checkout -b <nombre_rama> # Crea una nueva rama y cambia a ella
branch # Muestra las ramas
rebase <rama> # Une todos los commits de la rama indicada a la rama actual
rebase <rama1> <rama2> # Une todos los commits de rama1 en rama2
log # Registro de commits
log --abbrev-commit # Abrevia los hashes de los commits
log --graph # Pinta "ramas" de colores, uniendo los commits
show # Mustra los cambios entre los últimos dos commits
show <commit/rama> <commit/rama> # Comapra commits/ramas
show --oneline # Ídem, pero muestra menos información en el título
config # Cambia la configuración a nivel local (el repo. actual)
config --global # La cambia para todos los repositorios
config <opción> # Muestra el valor de la opción, ej: 'git config user.name' solo va a mostrar el nombre, no lo cambia
config user.name <nombre> # Indica tu nombre
config user.email <email> # Indica tu email
config alias.<nombre> "<alias>" # Crea un alias para un comando
config init.defaultBranch <nombre_rama> # Establece el nombre de la rama por defecto al crear un repo
remote -v # Muestra los repos. enlazados al actual
remote add <nombre> <URL> # Enlaza el repo a otro, poniéndole un nombre
remote rename <viejo> <nuevo> # Cambia el nombre de un repo
remote remove <nombre> # Remueve el enlace a un repo
remote rm ... # Ídem
reset --soft <commit> # Borra todos los commits hasta el indicado, dejando todos los archivos comod confirmados en el area "stage"
reset --mixed <commit> # Ídem, pero no los confirma (opción por defecto)
reset --hard <commit> # Ídem, pero borra todos los archivos
reset HEAD~1 # Indica que se reseteará el commit actual
reset HEAD~<n> # Resetea hasta n commits hacia atrás
stash # Guarda el estado actual del repo (no realiza un commit, no es lo mismo), y revierte el estado, como si no se hubieran hecho cambios
stash push -m "<mensaje>" # Ídem, indica un mensaje para mas detalle
stash list # Lista los stashes guardados (los indica con un índice y el mensaje que introduciste)
stash show <n> # Muestra los cambios realizados en un stash
stash apply <n> # Añade los cambios de un stash (se pueden añadir a otra rama)
stash drop <n> # Borra un stash
cherry-pick # Añade los cambios de otro commit al actual