| 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. |