diff --git a/.gitconfig b/.gitconfig new file mode 100644 index 0000000..53ff7d8 --- /dev/null +++ b/.gitconfig @@ -0,0 +1,41 @@ +[user] + name = Marcus Noble + email = git@marcusnoble.co.uk + +[core] + editor = /usr/bin/vim + excludesfile = ~/.gitignore + +[push] + default = simple + +[credential] + helper = store + +[color] + ui = true +[color "diff"] + old = red strike + new = green italic + +[alias] + basename = "!git remote -v | head -n1 | awk '{print $2}' | sed 's/.*\\///' | sed 's/\\.git//'" + org-name = "!git remote -v | grep -m 1 -o ':.*/' | sed 's:^.\\(.*\\).$:\\1:'" + branch-name = "!git rev-parse --abbrev-ref HEAD" + changelog-changed = "!test $(git diff --name-only HEAD origin/master | grep CHANGELOG.md | wc -l | xargs) = 1" + + main = "!git remote set-head origin --auto && git checkout $(git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@') && git pull" + publish = "!func(){ if [[ $(git branch-name) != \"$(git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@')\" ]]; then git push -u origin $(git branch-name) && (git changelog-changed || echo '\n\n⚠️ Dont forget to update changelog ⚠️ ') ; else echo "Wat?!"; fi; }; func" + cleanup = "!git fetch -p && for branch in `git branch -vv | grep ': gone]' | awk '{print $1}'`; do git branch -D $branch; done" + dont-change-file = "!git update-index --assume-unchanged" + ignore-file = "!git update-index --skip-worktree" + remember-file = "!git update-index --no-skip-worktree" + logg = "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit" + dif = "!git diff -w" + pop = "!git stash pop" + +[help] + autocorrect = 1 + +[diff] + compactionHeuristic = true