Both sides previous revisionPrevious revisionNext revision | Previous revision |
cheat_sheet_chuleta_de_git_para_sysadmins [2022/08/04 15:32] – [Ramas y etiquetas] busindre | cheat_sheet_chuleta_de_git_para_sysadmins [2024/05/28 21:09] (current) – [Ramas y etiquetas] busindre |
---|
git log --follow -p -- <fichero> # Lista commits y cambios sobre un fichero concreto. | git log --follow -p -- <fichero> # Lista commits y cambios sobre un fichero concreto. |
| |
git show <commit> # Muestra los ficheros editados y sus cambios en un determinado commit. | git show <commit1> <commit2> # Muestra los ficheros editados y sus cambios en uno o varios commits. |
git diff-tree --no-commit-id --name-only -r <commit> # Muestra únicamente qué ficheros fueron modificados en un commit (Opción 1). | git diff-tree --no-commit-id --name-only -r <commit> # Muestra únicamente qué ficheros fueron modificados en un commit (Opción 1). |
git show --pretty="" --name-only # Muestra únicamente qué ficheros fueron modificados en un commit (Opción 2). | git show --pretty="" --name-only # Muestra únicamente qué ficheros fueron modificados en un commit (Opción 2). |
<code bash> | <code bash> |
git branch -avv # Lista todas las ramas y algunos commits. | git branch -avv # Lista todas las ramas y algunos commits. |
| git branch -r # Lista las ramas remotas (se puede usar con --merged y --no-merged) |
| git branch --merged # Lista las ramas que ya han sido fusionadas (normalmente candidatas para ser eliminadas). |
| git branch --no-merged # Lista ramas todavía pendientes de ser fusionadas. |
| |
git branch <rama> # Crea una rama. Esto es siempre a partir de la rama donde se esté trabajando, es decir, master u otra rama. | git branch <rama> # Crea una rama. Esto es siempre a partir de la rama donde se esté trabajando, es decir, master u otra rama. |
git checkout <rama> # Cambiar de rama = Cambiar el puntero HEAD. / Si se usa "-" se va a la rama anterior. | git checkout <rama> # Cambiar de rama = Cambiar el puntero HEAD. / Si se usa "-" se va a la rama anterior. |
git checkout -b <rama> # Crea una rama y cambia a la rama creada, equivale a los dos comandos anteriores. | git checkout -b <rama> # Crea una rama y cambia a la rama creada, equivale a los dos comandos anteriores. |
| |
git branch -d <rama> # Borrar una rama local que haya sido fusionada. | git branch -d <rama> # Borrar una o varias ramas locales que haya sido fusionada. De haber sido fusionada la rama mostrará un error. |
git branch -d <rama> # Borrar una rama local aunque no haya sido fusionada. | git branch -D <rama> # Borrar una o varias ramas local aunque no haya sido fusionada. |
git branch -d `git branch --merged | grep -v \* | xargs` # Borrar todas las ramas en local (-d o -D segun se necesite). | git branch -d `git branch --merged | grep -v \* | xargs` # Borrar todas las ramas en local (-d o -D según se necesite). |
| |
git push origin --delete <rama> # Borrar una rama en nuestro repositorio remoto. | git push origin --delete <rama> # Borrar una rama en nuestro repositorio remoto. |
| |
git show <rama>:<fichero> # Muestra el contenido de un fichero de otra rama. | git show <rama>:<fichero> # Muestra el contenido de un fichero de otra rama. |
| </code> |
| |
| Eliminar varias ramas de forma simultanea |
| <code bash> |
| # Borra todas las tamas locales ya fusionadas excluyendo master y XXX. |
| git branch --merged | grep -Ev "(^\*|master|XXX)" | xargs git branch -d |
| |
| # Elimina todas las ramas remotas que hayan sido fusionadas (Usar -D para todas las ramas remotas, estén o no fusionadas) a excepcion de master y XXXX. |
| git branch -r --merged | grep -Ev "(^\*|master|XXX)" | sed 's/origin\///' | xargs -n 1 git push origin --delete |
| |
| # Listar y borrar ramas locales que hayan sido eliminadas en el remoto. "<remote>" suele referenciar a "origin" si no se ha cambiado el nombre del repositorio remoto. |
| git remote prune <remote> --dry-run # Lista |
| git remote prune <remote> # Borra |
</code> | </code> |
| |
# Se busca el commit perteneciente a la Pull request, por ejemplo 0ef16eb1370 y se le indica a git que debe coger ese commit. | # Se busca el commit perteneciente a la Pull request, por ejemplo 0ef16eb1370 y se le indica a git que debe coger ese commit. |
git cherry-pick 0ef16eb1370</code> | git cherry-pick 0ef16eb1370</code> |
===== Deshacer acciones ===== | ===== Deshacer / Rehacer acciones ===== |
| |
<code bash>git reset --hard HEAD # Deshace todos los cambios locales. | <code bash>git reset --hard HEAD # Deshace todos los cambios locales. |
git checkout <commit> -- file1 file2 # Restaura los ficheros al estado que tenían en un determinado commit. | git checkout <commit> -- file1 file2 # Restaura los ficheros al estado que tenían en un determinado commit. |
git reset <commit> <file> # Restaura un fichero al estado que tenía en un determinado commit (Lo mismo que el anterior). | git reset <commit> <file> # Restaura un fichero al estado que tenía en un determinado commit (Lo mismo que el anterior). |
| git restore --staged file1 file2 # Para poder usar git diff y ver los cambios realizados al restaurar los ficheros. |
| |
| |
# NOTA: En la sección "Historial de commits y búsquedas" se muestra como ver las diferencias de ficheros entre commits. | # NOTA: En la sección "Historial de commits y búsquedas" se muestra como ver las diferencias de ficheros entre commits. |