Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
info:libros:git [03/09/2018 05:59] – [estructura repositorio] mateinfo:libros:git [27/11/2018 02:01] (actual) – [Git (libro Amazon)] admin
Línia 1: Línia 1:
-Git (libro Amazon)+git (libro Amazon)
 {{tag>devops cursos git}} {{tag>devops cursos git}}
  
Línia 161: Línia 161:
 == Hooks, ejecutando código tras una orden Git == Hooks, ejecutando código tras una orden Git
 === estructura repositorio === estructura repositorio
-{{ :info:libros:pasted:20180903-052926.png }}+{{ :info:libros:pasted:20180903-052926.png?400 }}
  
   * branches : sin uso actualmente   * branches : sin uso actualmente
Línia 189: Línia 189:
   * fontanería : comandos bajo nivel   * fontanería : comandos bajo nivel
   * loza: comandos alto nivel (usuario)   * loza: comandos alto nivel (usuario)
 +
 +==== las cañerias
 +  * index : contiene a los que GIT ha de prestar atención
 +  * objetos : 
 +    * ficheros: el contenido y el nombre almacenado en el árbol -> **blob**
 +    * mensajes de commit -> **commit**
 +    * etiquetas -> **tag**
 +    * árboles -> **tree**
 +  * ''git ls-tree <commit>'' : muestra la información de **.git/objects** de una manera más ordenada e indicando el tipo de objeto
 +    * ''-r'' : añade el nombre de fichero
 +  * ''git ls-files --stage'' : muestra los archivos que se han añadido al índice pero no se han pasado al árbol
 +  * ''git cat-file -p <objeto>'' : nos muestra el contenido de un objeto
 +
 +== viva la diferencia
 +  * ''git diff'' : muestra las diferencias entre el Index y el último commit
 +    * ''--name-only''
 +    * ''name-status'' : muestra 1 letra con el tipo de cambio (A,D,M)
 +    * ''--cached'' : muestra la diferencias entre el Index y los ficheros que han sido preparados para el commit
 +  * ''git diff HEAD'' : diferencias entre el último commit y la Working Area
 +  * ''git diff-index HEAD'' : compara el índice con algún árbol
 +  * ''git diff-tree HEAD''
 +
 +== los dueños de las tuberías - metadatos
 +  * ''git var -l'' : listado de todas las variables disponibles definidas
 +    * ''git var <variable>''
 +  * ''git config -l'' ofrece el mismo resultado
 +  * uso de estos comandos para unificar el acceso a las mismos en diferentes OS
 +
 +== rev-parse
 +  * recoge y procesa parámetros
 +    * procesamiento de parámetros
 +    * especificación de objetos
 +    * búsqueda en directorios del repositorio
 +  * ''git rev-parse --verify HEAD'' : muestra el SHA1 del HEAD verificando que existe
 +  * ''git rev-parse HEAD@{1.month}'' : retorna SHA1 de commit de hace 1 mes
 +
 +== concepto de hooks
 +  * ejecución progrma (shell,Perl,Python, etc..) ante un evento
 +  * automatización de tareas
 +  * directorio propio: **.git/hooks**
 +  * solo se admite 1 hook por evento y tendrá el nombre del evento asociado (uso de symbolic links)
 +{{ :info:libros:pasted:20180905-031800.png }}
 +
 +=== programando un hook básico
 +  * examinar entorno y parámetros de entrada
 +  * hacer cambios en el entorno, los ficheros y la salida
 +  * salir con mensaje de error o ninguno si todo correcto
 +
 +comprueba si el nombre de usuario está en el mensaje de commit y si no, lo añade
 +<code bash; title="prepare-commit-msg">
 +#|/bin/bash
 +SOB=$(git config github.user)
 +grep -qs "^$SOB" "$1" || echo ". Cambio por @SOB" >> "$1"
 +</code>
 +
 +añade información al commit:
 +<code bash>
 +#!/bin/sh
 +
 +#Recuerda hacer
 +# cp prepare-commit-msg.ejemplo prepare-commit-msg
 +# chmod +x prepare-commit-msg
 +
 +STATS=$(git diff --cached --shortstat)
 +echo ". Cambios en este commit\n  ${STATS}" >> "$1"
 +</code>
 +
 +  * [[https://www.sitepoint.com/git-hooks-fun-profit/|Git Hooks for Fun and Profit]]
 +
 +
  
  
  • info/libros/git.1535979597.txt.gz
  • Darrera modificació: 03/09/2018 05:59
  • per mate