Taula de continguts

git (libro Amazon)

uso básico

configuración inicial

iniciando repositorio

trabajando con Git

sincronizando repositorios

.gitignore

viendo el historial

borrado de archivos

arrepentimientos

rehacer un commit

deshacer cambios de un archivo

volviendo al pasado

resolviendo conflictos

viendo/recuperando archivos antiguos

más usos de Git

organización

no hay reglas de como organizar tu trabajo, aunque si que hay reglas de como NO hacerlo… se ha de organizar para que el trabajo de los otros no te distraiga

qué poner en el directorio principal

estructura habitual con directorio test

flujos de trabajo

ramas

Una rama es un nombre a un commit específico y todos los commits que son antecesores del mismo

ramas ligeras: etiquetas

creando y fusionando ramas

fusionando

  1. git checkout <RAMA_QUE_RECIBIRÁ_LA_FUSION>
  2. git pull <ALIAS_REMOTE> <RAMA_QUE SE FUSIONARÁ
  3. una vez fusionadas correctamente, se podría descartar la rama «muerta»:
    1. git branch -d <RAMA_MUERTA> : en local
    2. git push <ALIAS_REMOTE> :<RAMA_MUERTA> : actualizar el borrado en el repositorio remoto

los misterios del rebase

reescritura de historia (OJO con los push/pull)

quién hizo qué

Usando Git como los profesionales: GitHub

github pages

hooks

ganchos o eventos que se activan cuando se produce alguna acción → petición REST (debidamente formada)

cliente GitHub (hub)

Hooks, ejecutando código tras una orden Git

estructura repositorio

paso a paso

refiriéndonos a objetos en git

comandos de alto y bajo nivel (fontanería y loza)

las cañerias

viva la diferencia

los dueños de las tuberías - metadatos

rev-parse

concepto de hooks

programando un hook básico

comprueba si el nombre de usuario está en el mensaje de commit y si no, lo añade

title="prepare-commit-msg"
#|/bin/bash
SOB=$(git config github.user)
grep -qs "^$SOB" "$1" || echo ". Cambio por @SOB" >> "$1"

añade información al commit:

#!/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"