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
Next revisionBoth sides next revision
cheat_sheet_chuleta_de_git_para_sysadmins [2022/02/15 19:52] – [Consejos para auditar / eliminar información sensible de repositorio Git] busindrecheat_sheet_chuleta_de_git_para_sysadmins [2022/12/12 11:45] – [Historial de commits y búsquedas] busindre
Line 62: Line 62:
 git log                 # Muestra información de todos los commits. git log                 # Muestra información de todos los commits.
 git shortlog            # Muestra información de todos los commits resumida por usuario. git shortlog            # Muestra información de todos los commits resumida por usuario.
 +
 +# Muestra información de todos los commits en formato agradable a la vista.
 +git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'
 +
 git log -p <fichero>    # Muestra información de los commits de un fichero en particular. git log -p <fichero>    # Muestra información de los commits de un fichero en particular.
 git log --since='FEB 11 2016' --until='FEB 11 2016'   # Muestra información de los commits entre dos fechas. git log --since='FEB 11 2016' --until='FEB 11 2016'   # Muestra información de los commits entre dos fechas.
 git blame <fichero>     # Muestra quién cambió qué en un fichero. git blame <fichero>     # Muestra quién cambió qué en un fichero.
 +
 +
 +git log --name-status -2  # Muestra los ficheros modificados en los dos últimos commits. Útil para saber qué ficheros se ha modificado después de hacer un git pull (dos commits porque el merge es un commit también).
 +git log -p -2             # Muestra los cambios de los dos últimos commits. Útil para saber qué se ha modificado después de hacer un git pull (dos commits porque el merge es un commit también).
 +
  
 git log --all --grep='<texto>'      # Buscar en todas las ramas una palabra o texto (NO de ficheros, si no commits).  git log --all --grep='<texto>'      # Buscar en todas las ramas una palabra o texto (NO de ficheros, si no commits). 
Line 72: 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 80: Line 89:
  
 ===== Ramas y etiquetas ===== ===== Ramas y etiquetas =====
 +
 +Cuando se trabaja en Git con varias ramas en local, hay que tener en cuenta algo. Al crear una rama e introducirse en ella, los cambios en local que se hayan hecho en cualquier otra rama de manera previa y que no hayan sido agregados mediante un commit, se verán en el resto de ramas. Esos ficheros que no están bajo seguimiento de ninguna rama pueden ser mediante un commit pasados a seguimiento en una determinada rama. Eso hará que dichos cambios o ficheros desaparezcan del resto de ramas. Por eso es importante prestar atención cuando se está trabajando con varias ramras a la vez saltando de una a otra realizando cambios.
  
 Visualizar ramas / commits gráficamente / modo texto. Visualizar ramas / commits gráficamente / modo texto.
Line 306: Line 317:
  
 ===== Consejos para auditar / eliminar información sensible de repositorio Git ===== ===== Consejos para auditar / eliminar información sensible de repositorio Git =====
 +
 +Como ya es sabido, git no implementa ninguna posibilidad de cifrar variables o ficheros de manera nativa, por lo que es mejor intentar mantener ese tipo de información sensible fuera de los repositorios.
  
 Lo mejor para auditar repositorios es clonarlos con la opción %%--%%mirror, ya que de esta manera la información del repositorio es más completa y se puede obtener más información dependiendo del caso. Los frameworks vomo github, gitlab, etc no suelen usar %%--%%mirror de manera predeterminada. Lo mejor para auditar repositorios es clonarlos con la opción %%--%%mirror, ya que de esta manera la información del repositorio es más completa y se puede obtener más información dependiendo del caso. Los frameworks vomo github, gitlab, etc no suelen usar %%--%%mirror de manera predeterminada.
  
-Una vez se tiene el repositorio clonado se pueden usar un sin fin de herramientas para buscar información que no debería estar ahí como llaves SSH, SSL, Certificados cliente, secrets, etc.+Una vez se tiene el repositorio clonado se pueden usar un sin fin de herramientas para buscar información que no debería estar ahí como llaves SSH, SSL, Certificados cliente, secretos, etc. Estas herramientas se centran en el uso de expresiones regulares y el uso de algoritmos probabilistas.
  
   * [[https://github.com/newren/git-filter-repo]] Reescribir el historial de Git.   * [[https://github.com/newren/git-filter-repo]] Reescribir el historial de Git.
cheat_sheet_chuleta_de_git_para_sysadmins.txt · Last modified: 2024/05/28 21:09 by busindre