Ponente: Daniel Sanchez
--system : /etc/gitconfiggit config --system color.status auto--global : ~/.gitconfig--local: .git/config → por cada repositoriocore.symlinks : a true respeta los symlinks, a false (default) los trata como ficherosgit commit –amend : sobrescribe el último commit, editando mensaje → crea un nuevo commit con los cambiosgit checkout - : moverte a la rama anterior (de la que venías)git push -u <remoto> <rama> : define el *upstream* de la rama (al tiempo que está enviando). Al hacer un git pull no será necesario especificar git branch : muestra ramas locales-v : verboso-v –merged : ramas mergeadas-v –no-merged : ramas no mergeadas-a : locales + remotas-avv : locales + remotas + upstreamsgit branch <rama> -u <origin>/<rama> : establece el upstreamgit branch <rama> : crea rama desde la actualgit branch <rama> <rama_madre> crea rama desde rama_madregit checkout <rama> : nos movemos a ramagit checkout -b <rama> : creamos rama a partir de la actual y nos movemos a ellagit checkout -b <rama> <rama_madre>git push <origin> <rama> : envía rama al remoto <origin>-u o --set-upstream : y establece el upstreamgit pull : descarga los cambios de la rama actual--all : de todas las ramas--rebase : reescribe la historia si esta ha sido reescritura en el remote. Puede evitar problemas de historias no coincidentes ( DPS1) lo usa por defecto)git stash push : guarda ficheros de *staged area*git stash save [-u | --include-untracked] «<message>» : le da un nombre a la sesión guardada en el stash-u : incluye los ficheros untrackedgit stash save [-k | --keep-index] «<message>» : guarda en el stash los ficheros del *working copy*git stash list : lista sesiones en el stashgit stash show stash@{indice} : muestra los ficheros del stashgit stash pop : aplica los cambios en los ficheros guardados anteriormente y los saca del stashgit stash apply stash@{indice} : aplica los cambios en los ficheros del stash@{indice} (si hay más de uno)git stash pop stash@{indice} : idem anterior pero elimina la sesión stashgit checkout stash@{indice} <fichero> : recupera del stash el fichero indicadogit stash drop : borra el primer elemento de la pilagit stash drop stash@{indice} : borra la sesión indicadados tipos:
git tag <tag> : crea tag ligero en el HEADgit tag <tag> <commit> : crea tag ligero del commit concretogit tag -a <tag> -m «mensaje» : crea tag anotado en el HEADgit tag -a <tag> <commit> -m «mensaje» : idem en el commit indicadogit tag : muestra lista de tagsgit show <tag> : información del taggit checkout <tag> : se usa como referencia para movernos al commit asociadogit push <remote> refs/tags/<tag> : sube el tag al repositoriogit push --tags : sube todos los tagsgit pull --tags : descarga todos los tagsfusión a 3 bandas entre los dos últimos commits de las dos ramas y el ancestro común
2 maneras de mostrar/trabajar:
no-ff → no fastforward : nanera de trabajar por defecto de la mayoría de los repositorios, se muestran las ramas creadas con sus propios commitsff → fastforward : se integra en una línea, sin mostrar las particularidades de una rama que ha sido mergeada
en ambos casos, al hacer el *merge* se trae todo el historial de esa rama
git merge <rama> : merge de la rama actual con <rama> en formato fast-forward--no-ff : en formato no-fastforwardgit merge --squash <rama> : importa los cambios de la rama y los deja en *staged area*permite importar un commit (de otra rama) a tu rama sin traer el histórico (solo el commit en sí)
git cherry-pick <commit> : trae el commit indicado a la rama actual-e : edita el mensaje de commit<commit>..<commit> : trae el rango de commits sucesivos indicados<commit>^..<commit> : idem anterior, incluyendo el primer commitrevierte los cambios de un commit haciendo otro commit
git revert <commit>-e : permite editar el mensaje de commit (acción por defecto en línea de comando)--no-edit : lo contrariogit revert <commit>..<commit> : revierte desde el primero (no incluido) al último-n : no realiza el commit ¿?<commit>^git reset <commit> : elimina los commits posteriores a <commit> y deja las modificaciones en el working copygit reset HEAD~1 : elimina el último commitgit reset <commit>^ : elimina el commit seleccionado y posterioresgit rebase <rama>-i : interactivogit rebase -i HEAD~n : rabase interactivo de los últimos n commitsgit pull --rebase : al recuperar del remoto, se actualiza la historiagit config --global pull.rebase true : establecerlo por defectogit reflog : muestra las acciones realizadas en el repositoriogit merge <id_reflog> : merge commits perdidosgit checkout -b <rama> <id_reflog> crea rama con la información del pasado