Aquesta és una revisió antiga del document
GIT
related
mate | |
mate | |
mate | |
mate | |
mate |
cheatsheet
doc
todo
git extras
https://github.com/tj/git-extras/- git-config condicional : https://www.kevinkuszyk.com/2018/12/10/git-tips-6-using-git-with-multiple-email-addresses/
config
- ubicación:
- system : /etc/gitconfig [–system]
- global : ~/.gitconfig [–global]
- repo : .git/config
git config --list --show-origin
git config [–global] –list
: si omitimos el ámbito, muestra todas las configuraciones disponiblesgit config –global user.name «Mi Nombre»
git config –global user.email «mi@email»
git config –global http.sslVerify false
: no verifica el certificado en peticiones por *https*git config –global core.editor «'$(which vim)'»
: asignar VIM como editor por defectogit config credential.helper store
: store contraseñas (texto plano) autenticacióngit config –global credential.helper 'cache --timeout 7200'
git config credential.helper libsecret
?
otros
tips
- HEAD == @
- HEAD^ : commit anterior al HEAD
- HEAD@{1.month}
- - (guión) : te devuelve a la rama que acabas de dejar
comandos interesantes
- renombrado rama en local y remoto
git checkout <old_name> && git branch -m <new_name> # o git branch -m <old_name> <new_name> git push -u origin <new_name> # y comprobar en remoto que todo ha ido bien git push origin :<old_name> # elimina la rama vieja del remoto!
- mover rama, trayendo solo los commits que se hayan realizado
git ck -b rama_destino git cherry-pick <commit1>..<commit2> # commit1^..commit2 para incluir commit1 en el movimiento git push origin rama_destino # envíamos los cambios git push origin :rama_origen # elimina la rama mal colocada
- recuperar un fichero
git checkout <COMMIT|HEAD|HEAD^> <path_file>
- traer los cambios de rama develop a la actual
git pull --rebase origin develop
- comandos con TAGs
git tag [-l] git show <tag> git tag -a <TAG> -m "<MENSAJE>" # tag local annotated git push origin <TAG> # subir tag a remoto git -d <tag> # borrar tag local git push --delete origin <TAG> # borrado tag en remoto
- ficheros modificados en commit concreto
git log --oneline --max-count=10 git diff-tree --no-commit-id --name-only -r <COMMIT_ID> git show --pretty="" --name-only <COMMIT_ID>
- seguir traza cambios a fichero
git log --follow -p -- <FILE>
- actualizar listado ramas
git remote update origin --prune git branch -a
/via: https://stackoverflow.com/questions/36358265/when-does-git-refresh-the-list-of-remote-branches
retroceder o cambiar el pasado(rebase/reset)
- cambiar el mensaje de un commit (el último -1)
git rebase -i HEAD^ # y marcar con reword
- fusionar varios commits
git rebase -i <commit>^ # con ^ se incluye el que indiquemos git rebase -i HEAD~n # los últimos n # marcar con SQUASH aquellos que queramos fusionar, dejando el mayor ancestro como destinatario de todos ellos # git push origin <rama> -f # fuerza la subida de los cambios
- anular último commit (se pierde)
git rebase -i HEAD^ # y marcar con drop
- anular último commit dejando en working area
git reset HEAD~1
ficheros
- diferencia de ficheros entre dos commits:
git diff --name-only SHA1 SHA2
- generar ZIP con ficheros cambiados entre 2 commits:
git archive --output=file.zip HEAD $(git diff --name-only SHA1 SHA2)