Last active
July 10, 2025 15:02
-
-
Save chermed/b0bbd7fcca8f77281f2d4c8558a743aa to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| git config --global remote.origin.prune true | |
| git config --global core.fileMode false | |
| git config --global core.autocrlf false | |
| git config --global core.editor "vim" | |
| git config --global pager.branch false | |
| git config --global core.pager cat | |
| git config --global alias.update-aliases '!curl https://gist.githubusercontent.com/chermed/b0bbd7fcca8f77281f2d4c8558a743aa/raw | sh - ' | |
| git config --global alias.rif '!git rm -r --cached . && git add . && git commit -m "Removing all files in .gitignore"' | |
| git config --global alias.ignore '!function gi() { curl -L -s https://www.gitignore.io/api/$@ > .gitignore; } && gi' | |
| git config --global alias.ignorepython '!function gi() { curl -L -s https://www.gitignore.io/api/osx,linux,python,visualstudiocode,terraform > .gitignore; } && gi' | |
| git config --global alias.ignorego '!function gi() { curl -L -s https://www.gitignore.io/api/osx,linux,visualstudiocode,terraform,go > .gitignore; } && gi' | |
| git config --global alias.prune-branches '!git remote prune origin && git branch -vv | grep -E '"'"': gone]|: disparue]'"'"' | awk '"'"'{print $1}'"'"' | xargs git branch -D' | |
| git config --global alias.delete-merged '!git branch --merged | grep -E -v "\*|master|develop|staging|migration|version|extra|indus" | xargs git branch -D' | |
| git config --global alias.shoot-merged '!git branch --merged | grep -E -v "\*|master|develop|staging|migration|version|extra|indus" | xargs git push -f origin --delete' | |
| git config --global alias.l "log --all --oneline --decorate --graph" | |
| git config --global alias.today 'log --since=midnight --oneline' | |
| git config --global alias.yesterday 'log --since=yesterday.midnight --before=midnight --oneline' | |
| git config --global alias.fromyesterday 'log --since=yesterday.midnight --oneline' | |
| git config --global alias.co checkout | |
| git config --global alias.st status | |
| git config --global alias.sts 'status -sb' | |
| git config --global alias.ci commit | |
| git config --global alias.br branch | |
| git config --global alias.mergeit 'merge --no-edit' | |
| git config --global alias.simulate 'merge --no-commit' | |
| git config --global alias.tryget 'cherry-pick --no-commit' | |
| git config --global alias.unstage 'reset HEAD --' | |
| git config --global alias.audit "grep -e ipdb -e 'print ' -e fixme -e todo -e xxx -i -n" | |
| git config --global alias.l2 "log --date-order --date=iso --graph --full-history --all --pretty=format:'%x08%x09%C(red)%h %C(cyan)%ad%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08 %C(bold blue)%aN%C(reset)%C(bold yellow)%d %C(reset)%s'" | |
| git config --global alias.l1 "log --oneline --pretty=format:'%C(red)%h %C(cyan)%ad%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08 %C(bold blue)%aN%C(reset)%C(bold yellow)%d %C(reset)%s'" | |
| git config --global alias.life "log --all --oneline --decorate --graph --date=relative --date-order --pretty=format:'%C(green)%h %C(cyan)%ad %C(bold blue)%an %C(bold yellow)%d %C(reset)%s'" | |
| git config --global alias.local "log --branches --not --remotes" | |
| git config --global alias.last 'log -1 HEAD' | |
| git config --global alias.lastcommit "for-each-ref --sort=committerdate refs/heads/ --format='%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - %(color:red)%(objectname:short)%(color:reset) - %(contents:subject) - %(authorname) (%(color:green)%(committerdate:relative)%(color:reset))'" | |
| git config --global alias.sdiff 'diff -w --word-diff-regex=[^[:space:]]' | |
| git config --global alias.graph "log --graph --all --date=short --format=oneline --simplify-by-decoration --decorate --pretty=format:'%C(green)%h %C(cyan)%ad %C(bold blue)%an %C(bold yellow)%d %C(reset)%s'" | |
| git config --global alias.shoot "push -f origin --delete" | |
| git config --global alias.brremotecommit "for-each-ref --sort=committerdate refs/remotes --format='%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - %(color:red)%(objectname:short)%(color:reset) - %(contents:subject) - %(authorname) (%(color:green)%(committerdate:relative)%(color:reset))'" | |
| git config --global alias.brcommit "for-each-ref --sort=committerdate refs/heads --format='%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - %(color:red)%(objectname:short)%(color:reset) - %(contents:subject) - %(authorname) (%(color:green)%(committerdate:relative)%(color:reset))'" | |
| git config --global alias.tomergecommit '!git fetch --all && git remote prune origin && git for-each-ref --sort=committerdate refs/remotes --format="%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - %(color:red)%(objectname:short)%(color:reset) - %(contents:subject) - %(authorname) (%(color:green)%(committerdate:relative)%(color:reset))" --no-merged' | |
| git config --global alias.brpath "log --decorate --graph --simplify-by-decoration --oneline" | |
| git config --global alias.backup '!BACKUP_FILE=".git_backups/$(date +%Y%m%d_%H%M%S)" && mkdir -p .git_backups && git br -avv > $BACKUP_FILE && git add $BACKUP_FILE && git commit -m "Backup git branches $BACKUP_FILE"' | |
| git config --global alias.amend '!GIT_COMMITTER_DATE="$(date)" git commit --amend --no-edit --date "$(date)"' | |
| git config --global alias.tomerge '!git fetch --all -p;(echo "Branch#Number of commits#Date#Name#Elapsed time"; for branch in `git branch -a --list --no-merged|sed "s/\*/ /g"|sed "/\/HEAD/d" |sed "s/remotes\///g" | sed "s/ //g"`; do count=$(git rev-list --count HEAD..$branch); commit=$(git log --date=iso8601 --pretty=format:"%ad#%an#%ar#" -1 $branch); echo "$branch#$count#$commit"; done ; ) | column -ts "#" | sort +3 -1' | |
| git config --global alias.tomergev '!git fetch --all ; ( echo "Branch#Count#Changes"; for branch in `git branch -a --list --no-merged|sed "s/\*/ /g"|sed "/HEAD/d" |sed "s/remotes\///g" | sed "s/ //g"`; do lines=""; data=""; for line in `git diff HEAD..$branch --name-only`; do filename=$(basename -- "$line"); extension="${filename##*.}"; lines="$extension $lines"; done; for ext in `echo "$lines" | tr " " "\n" | uniq -u`; do data="*.$ext=(`echo "$lines" | tr " " "\n" | grep "$ext" | wc -l | sed "s/ //g"`) $data"; done; count=$(git rev-list --count HEAD..$branch); echo "$branch#$count#$data"; done; ) | column -ts "#"' | |
| git config --global alias.tomergew '!exclude=$1; if [ $1 ]; then shift; fi; git fetch --all -p; ( echo "Branch#Count"; for branch in `git branch -a --list --no-merged|sed "s/\*/ /g"|sed "/HEAD/d" |sed "s/remotes\///g" | sed "s/ //g"`; do if [ $exclude ]; then if [ -z "${branch##*$exclude*}" ]; then continue; fi; fi; lines=""; data=""; for line in `git diff HEAD..$branch --name-only`; do filename=$(basename -- "$line"); extension="${filename##*.}"; lines="$extension $lines"; done; for ext in `echo "$lines" | tr " " "\n" | uniq -u`; do data=" *.$ext=(`echo "$lines" | tr " " "\n" | grep "$ext" | wc -l | sed "s/ //g"`)##@$data"; done; data="$data@##"; count=$(git rev-list --count HEAD..$branch); echo "$branch#Commits: $count"; echo "$data" | tr "@" "\n" ; done; ) | column -ts "#"' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment