User Tools

Site Tools


cheat_sheet_chuleta_de_git_para_sysadmins

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
cheat_sheet_chuleta_de_git_para_sysadmins [2022/08/04 15:32] – [Ramas y etiquetas] busindrecheat_sheet_chuleta_de_git_para_sysadmins [2024/05/28 21:09] (current) – [Ramas y etiquetas] busindre
Line 81: Line 81:
 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).
Line 102: Line 102:
 <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.
Line 107: Line 111:
 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 -<rama>              # Borrar una rama local aunque no haya sido fusionada. +git branch -<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.
Line 118: Line 122:
  
 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>
  
Line 218: Line 235:
 #  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.
Line 228: Line 245:
 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.
cheat_sheet_chuleta_de_git_para_sysadmins.1659619965.txt.gz · Last modified: 2022/08/04 15:32 by busindre