Skip to content

Instantly share code, notes, and snippets.

@dflourusso
Last active December 20, 2019 14:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dflourusso/6ef98c946b664b8c51070bd6fe6f4638 to your computer and use it in GitHub Desktop.
Save dflourusso/6ef98c946b664b8c51070bd6fe6f4638 to your computer and use it in GitHub Desktop.
gitconfig
[user]
email = dflourusso@gmail.com
name = Daniel Fernando Lourusso
[core]
excludesfile = ~/.gitignore_global
editor = vi
eol = lf
pager = less -F -X
[color]
ui = true
[color "status"]
updated = green
changed = yellow
untracked = blue
branch = red
nobranch = red reverse
[alias]
# https://git.wiki.kernel.org/index.php/Aliases
# http://durdn.com/blog/2012/11/22/must-have-git-aliases-advanced-examples/
# https://github.com/evbogue/git-aliases/blob/master/bash_aliases
# https://github.com/michel-kraemer/gitaliases/blob/master/gitaliases.sh
s = status -s
c = commit -m
up = pull --rebase --autostash
# commit after merge
cm = commit --no-edit
# merge without commit
m = "!f() { git merge --no-ff --no-commit $@ && git status -s; }; f"
co = checkout
a = "!f() { git add -A $@ && git status -s; }; f"
d = diff --diff-filter=M --unified=0 --minimal --patience --no-prefix --no-renames --color-words
amend = commit --amend --no-edit
reset-clean = "!git status && git reset --hard && git clean -f && git status"
reset-clean-dir = "!git status && git reset --hard && git clean -fd && git status"
count = rev-list --count HEAD
uncommit = reset --soft HEAD^ # go back before last commit, with files in uncommitted state
unstage = reset HEAD # remove files from index (tracking)
filelog = log -u # show changes to a file
todo = grep --line-number --word-regexp @TODO
aliases = "!git config -l | grep alias | cut -c 7-"
dev = checkout develop
master = checkout master
last = diff --unified=0 HEAD^
ls = log --all --date=short --format=format:'%C(bold yellow)%h %C(bold green)%ad %C(reset)%s %C(bold blue)[%an]%C(bold red)%d' --graph
lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative
ll = log --pretty=format:"%C(yellow)%h%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --numstat
# via http://blog.apiaxle.com/post/handy-git-tips-to-stop-you-getting-fired/#use_snapshot_stashes
snapshot = !git stash save "snapshot: $(date)" && git stash apply "stash@{0}"
snapshots = !git stash list --grep snapshot
# http://blog.apiaxle.com/post/handy-git-tips-to-stop-you-getting-fired/#file_level_ignoring
ignore = update-index --assume-unchanged
unignore = update-index --no-assume-unchanged
ignored = "!git ls-files -v | grep ^h | cut -c 3-"
# http://blog.apiaxle.com/post/handy-git-tips-to-stop-you-getting-fired/#them_and_us
ours = "!f() { git checkout --ours $@ && git add $@; }; f"
theirs = "!f() { git checkout --theirs $@ && git add $@; }; f"
#via http://stackoverflow.com/questions/5188320/how-can-i-get-a-list-of-git-branches-ordered-by-most-recent-commit
recent-branches = !git for-each-ref --count=5 --sort=-committerdate refs/heads/ --format='%(refname:short)'
# aliases para flow com branchs
start-feature = "!f() { git checkout master && git up && git checkout -b feature/$@; }; f"
finish-feature = "!f() { git checkout master && git up && git checkout feature/$@ && git rebase master && git checkout master && git merge --no-ff feature/$@ -m 'Merge branch feature/'$@ && git branch -d feature/$@; }; f"
start-hotfix = "!f() { git checkout master && git up && git checkout -b hotfix/$@; }; f"
finish-hotfix = "!f() { git checkout master && git up && git checkout hotfix/$@ && git rebase master && git checkout master && git merge --no-ff hotfix/$@ -m 'Merge branch hotfix/'$@ && git branch -d hotfix/$@; }; f"
start-issue = "!f() { git checkout master && git up && git checkout -b issue/$@; }; f"
finish-issue = "!f() { git checkout master && git up && git checkout issue/$@ && git rebase master && git checkout master && git merge --no-ff issue/$@ -m 'Merge branch issue/'$@ && git branch -d issue/$@; }; f"
# Automatic creates a gitlab merge request to master and merge it when the pipeline succeeds
# Usage example: git pm origin feature/feature-name
pm = push -o merge_request.create -o merge_request.target=master -o merge_request.merge_when_pipeline_succeeds -o merge_request.remove_source_branch
[diff]
# Git diff will use (i)ndex, (w)ork tree, (c)ommit and (o)bject
# instead of a/b/c/d as prefixes for patches
mnemonicprefix = true
# http://blog.apiaxle.com/post/handy-git-tips-to-stop-you-getting-fired/#comparing_large_chunks_of_text
algorithm = patience
[pull]
rebase = true
[merge]
ff = false
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment