-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgitconfig
More file actions
129 lines (122 loc) · 6.01 KB
/
gitconfig
File metadata and controls
129 lines (122 loc) · 6.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
[init]
defaultBranch = main
templatedir = ~/.git_template
[push]
default = current
[color]
ui = true
[alias]
# Basic Git commands
st = status
aa = add --all
ap = add --patch
ci = commit -v
co = checkout
pf = push --force-with-lease
pl = pull
ps = push
merge-cleanup = "!bash ~/dotfiles/scripts/git_merge_cleanup.sh"
start-feature = "!bash ~/dotfiles/scripts/git_start_feature.sh"
# Alias para cherry-pick de commits de Codex
codexpick = "!bash ~/dotfiles/scripts/git_codexpick.sh"
# Nuevo alias para commits con formato
commit-format = "!f() { git commit -m \"$1($2): $3\"; }; f"
# Nuevos aliases para la nueva política de ramas
feat = "!bash ~/dotfiles/scripts/git_feat.sh"
feat-help = "!bash ~/dotfiles/scripts/git_feat.sh --help"
pr = "!bash ~/dotfiles/scripts/git_pr.sh"
pr-help = "!bash ~/dotfiles/scripts/git_pr.sh --help"
rel = "!bash ~/dotfiles/scripts/git_rel.sh"
rel-help = "!bash ~/dotfiles/scripts/git_rel.sh --help"
rel-resolve = "!bash ~/dotfiles/scripts/git_rel_resolve.sh"
rel-resolve-help = "!bash ~/dotfiles/scripts/git_rel_resolve.sh --help"
workflow = "!bash ~/dotfiles/scripts/git_workflow.sh"
# Nuevos aliases para logs y diffs mejorados
prettylog = "!f() { bash ~/dotfiles/scripts/git_prettylog.sh \"$@\"; }; f"
diffstat = "!f() { bash ~/dotfiles/scripts/git_diffstat.sh \"$@\"; }; f"
# Nuevo alias para generación de changelogs
changelog = "!f() { bash ~/dotfiles/scripts/git_changelog.sh \"$@\"; }; f"
# Nuevo alias para generación de changelogs de ramas
branch-changelog = "!f() { bash ~/dotfiles/scripts/git_branch_changelog.sh \"$@\"; }; f"
# Nuevos aliases para gestión de tags
taglist = "!git for-each-ref --sort=-creatordate --format='🏷️ %(color:yellow)%(refname:short)%(color:reset) | %(color:green)%(creatordate:format:%Y-%m-%d %H:%M)%(color:reset) | %(color:blue)%(objectname:short)%(color:reset)' refs/tags | tr -d '\\r' | sed '/^$/d'"
tagsannotated = "tag -n99"
tagshow = "!f() { if [ -z \"$1\" ]; then echo '📝 Uso: git tagshow <tag>'; echo '📌 Ejemplo: git tagshow v1.0.0'; else echo '🔍 Detalles del tag:' $1; git show --color=always \"$1\" | tr -d '\\r' | sed '/^$/d'; fi; }; f"
# Nuevos aliases para comparación de ramas
prettysince = "!f() { base=${1:-dev}; echo '🟢 Commits en tu rama desde' $base '(lo que has añadido)'; git log --color=always --pretty=format:\"%C(auto)%h %Cblue%ad %Cgreen%an %C(yellow)%s%Creset\" --date=format:\"%Y-%m-%d %H:%M\" --name-status --numstat \"$base\"..HEAD | tr -d '\\r' | sed '/^$/d'; }; f"
prettyuntil = "!f() { base=${1:-dev}; echo '🔴 Commits en' $base 'que te faltan (lo que necesitas actualizar)'; git log --color=always --pretty=format:\"%C(auto)%h %Cblue%ad %Cgreen%an %C(yellow)%s%Creset\" --date=format:\"%Y-%m-%d %H:%M\" --name-status --numstat HEAD..\"$base\" | tr -d '\\r' | sed '/^$/d'; }; f"
# Branch management
br = branch --format='%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - %(contents:subject) %(color:green)(%(committerdate:relative)) [%(authorname)]' --sort=-committerdate
gbinfo = for-each-ref --sort=-committerdate refs/heads/ --format='%(color:yellow)%(refname:short)%(color:reset) - %(color:green)%(committerdate:short)%(color:reset) - %(color:blue)%(authorname)%(color:reset) - %(contents:subject)'
cleanBranches = !sh -c 'git branch --merged | grep -v "main\\|master\\|dev\\|*" | xargs git branch -D'
# Log commands
lg = !git log --pretty=format:\"%C(magenta)%h%Creset -%C(red)%d%Creset %s %C(dim green)(%cr) [%an]\" --abbrev-commit -30
log = 'git --no-pager log'
glg = log --graph --oneline --all
# Diff commands
gdf = diff --color-words --word-diff=color
gdfc = diff --color-words --word-diff=color -U3
# Other useful commands
undo = reset HEAD~1 --mixed
res = !git reset --hard
done = !git push origin HEAD
# Reemplazado el alias 'save' por 'save-basic' para evitar conflictos
save-basic = !git add -A && git commit -m 'chore: commit save point' --no-template
# Para crear commits más detallados, usar el script git_save.sh
del = branch -D
# Alias para commit rápido sin mostrar editor y sin usar plantilla
cm = !git commit -m
# Comandos básicos de Git (movidos desde aliases)
gs = status
ga = add
gaa = add --all
gc = commit --no-template -m
gp = push
gl = pull
gco = checkout
gb = branch
gdf = diff --color-words --word-diff=color
gdfc = diff --color-words --word-diff=color -U3
# Comandos avanzados de Git (movidos desde aliases)
glog = log --oneline --graph --decorate
glg = log --graph --oneline --all --pretty=format:'%C(yellow)%h%Creset - %s %C(green)(%ad) %C(cyan)[%an]%Creset' --date=format:'%Y-%m-%d %H:%M:%S'
gbinfo = for-each-ref --sort=-committerdate refs/heads/ --format='%(color:yellow)%(refname:short)%(color:reset) - %(color:green)%(committerdate:short)%(color:reset) - %(color:blue)%(authorname)%(color:reset) - %(contents:subject)'
gclean = !sh -c 'git branch --merged | grep -v "main\\|master\\|dev\\|*" | xargs git branch -d'
# Scripts personalizados de Git (movidos desde aliases)
save = !bash ~/dotfiles/scripts/git_save.sh
cc = !bash ~/dotfiles/scripts/git_cc.sh
update = fetch --prune --all && pull
clean-branches = "!f() { if [ -x ~/dotfiles/scripts/git_clean_branches.sh ]; then bash ~/dotfiles/scripts/git_clean_branches.sh \"$@\"; else echo '⚠️ Advertencia: El script git_clean_branches.sh no tiene permisos de ejecución. Ejecuta: chmod +x ~/dotfiles/scripts/git_clean_branches.sh'; fi; }; f"
[core]
excludesfile = ~/.gitignore
autocrlf = false
longpaths = true
eol = lf
editor = nano
[merge]
ff = only
[commit]
template = ~/.gitmessage
verbose = true
gpgsign = false
[fetch]
prune = true
[rebase]
autosquash = true
[include]
path = ~/.gitconfig.local
[diff]
colorMoved = zebra
[user]
name = Jesús Erro
email = olagato@gmail.com
[credential]
helper = store
[safe]
directory = /home/jesus/proyectos/nges
directory = /home/jesus/proyectos/docker
[filter "lfs"]
required = true
clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f
process = git-lfs filter-process