[color]
ui = auto
[core]
pager = less -FMRiX
excludesfile = /home/<myuser>/.config/git/excludes
[push]
default = simple
[alias]
hist = log --pretty=format:'%C(yellow)[%ad]%C(reset) %C(green)[%h]%C(reset) | %C(cyan)%s %C(bold red){{%an}}%C(reset) %C(magenta)%d%C(reset)' --graph --date=relative
head = hist -10 --topo-order
co = checkout
wd = diff --color-words --word-diff-regex=[^[:space:],.\\:\\'\\\"\\+\\=\\/]+
fork = !zsh -c '"orig_helper=${2:+${1}}; orig=${orig_helper:-main}; target=${2:-${1:-HEAD}}; diff -U 1 <(git rev-list --first-parent ${orig}) <(git rev-list --first-parent ${target}) | tail -1"' -
showfork = !zsh -c 'git show $(git fork ${1} ${2})' -
difffork = !zsh -c '"target=${2:-${1:-HEAD}}; git diff $(git fork ${1} ${2}) ${target}"' -
[user]
email = my@email.com
name = My name
[filter "lfs"]
clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f
process = git-lfs filter-process
required = true
El fichero /home/<myuser>/.config/git/excludes
equivale a un .gitignore
aplicable a todos los repositorios.
El alias fork
devuelve el hash del commit en el que diverge la rama actual de main si no se proporciona ninguna rama. Si se proporciona una rama devuelve el hash del commit en el que diverge la rama proporcionada de main. Y si se proporcionan dos ramas devuelve el hash del commit en el que la segunda rama diverge de la primera rama proporcionada. Ejemplos:
E---F---G rama HEAD
/
A---B---C---D main
\
H---I otra_rama
Estando HEAD en el commit G, fork master devuelve el hash del commit B, es decir, el commit en el que la rama actual diverge de la rama indicada.
$ git fork
<hash del commit B>
$ git fork otra_rama
<hash del commit C>
$ git fork rama otra_rama
<hash del commit B>
El alias showfork
hace un show del commit en el que divergen las ramas indicadas. Y el alias difffork
hace un diff entre el commit en el que divergen las ramas indicadas y el commit referido por la última de las ramas indicadas.