Diferències
Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
| Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
| info:libros:git [03/09/2018 05:29] – [Usando Git como los profesionales: GitHub] mate | info: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> | {{tag> | ||
| 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 | ||
| - | {{ : | + | {{ : |
| + | |||
| + | * branches : sin uso actualmente | ||
| + | * config, | ||
| + | * el resto de ficheros se copian de una plantilla: | ||
| + | * hooks, description, | ||
| + | * la plantilla está en ''/ | ||
| + | * también se puede usar un directorio alternativo de plantilla con el parámetro **--template** con los comandos **clone** o **init** | ||
| + | * '' | ||
| + | |||
| + | ==== paso a paso | ||
| + | * '' | ||
| + | - crea un SHA1 a partir del contenido y almacena como BLOB el fichero en la zona temporal | ||
| + | - almacena el nombre de fichero (o ficheros contenidos en la zona temporal) en un arbol | ||
| + | - se calcula el SHA1 del arbol y se almacena en **.git/ | ||
| + | - un arbol puede apuntar a otros árboles | ||
| + | - al hacer un commit, se crear un tercer tipo de objeto, que contiene enlaces a un árbol (el de más alto nivel) y metadatos | ||
| + | |||
| + | === refiriéndonos a objetos en git | ||
| + | * se puede usar '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | === comandos de alto y bajo nivel (fontanería y loza) | ||
| + | * fontanería : comandos bajo nivel | ||
| + | * 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** | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | == viva la diferencia | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | == los dueños de las tuberías - metadatos | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * 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 | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | == concepto de hooks | ||
| + | * ejecución progrma (shell, | ||
| + | * automatización de tareas | ||
| + | * directorio propio: **.git/ | ||
| + | * solo se admite 1 hook por evento y tendrá el nombre del evento asociado (uso de symbolic links) | ||
| + | {{ : | ||
| + | |||
| + | === 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=" | ||
| + | # | ||
| + | SOB=$(git config github.user) | ||
| + | grep -qs " | ||
| + | </ | ||
| + | |||
| + | 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 | ||
| + | </ | ||
| + | |||
| + | * [[https:// | ||
| + | |||