45 lines
2.5 KiB
Bash

#!/bin/bash
function git-config-joshs()
{
git config --global user.name 'Josh Holtrop'
git config --global color.ui true
git config --global color.diff.meta yellow
git config --global core.excludesfile ${HOME}/.gitignore
git config --global core.pager 'less -FRXi'
git config --global alias.dc 'diff --cached'
git config --global alias.lg 'log --graph --abbrev-commit --decorate --date=format:"%a %Y-%m-%d %-I:%M%P" --format=format:"%C(yellow)%h%C(reset) %C(magenta)%an%C(reset) %C(cyan)%ad%C(reset) %C(green)(%ar)%C(reset)%C(red)%d%C(reset)%n %C(white)%s%C(reset)" --all'
git config --global alias.lg1 'log --graph --abbrev-commit --decorate --date=format:"%a %Y-%m-%d %-I:%M%P" --format=format:"%C(yellow)%h%C(reset) %C(magenta)%an%C(reset) %C(cyan)%ad%C(reset) %C(green)(%ar)%C(reset)%C(red)%d%C(reset)%n %C(white)%s%C(reset)"'
git config --global alias.mergef 'merge FETCH_HEAD'
git config --global alias.gdiff 'difftool -y -t gvimdiff'
git config --global alias.gdiffc 'difftool -y -t gvimdiff --cached'
git config --global alias.wdiff 'diff --word-diff=color'
git config --global alias.mktar '!function f { name="$1"; pos="$2"; if [ "$pos" == "" ]; then pos=HEAD; fi; git archive --prefix="$name"/ "$pos" | bzip2 > ../"$name".tar.bz2; }; f'
git config --global alias.mktarxz '!function f { name="$1"; pos="$2"; if [ "$pos" == "" ]; then pos=HEAD; fi; git archive --prefix="$name"/ "$pos" | xz > ../"$name".tar.xz; }; f'
git config --global alias.amd 'am --committer-date-is-author-date'
git config --global push.default upstream
git config --global alias.bcdiff 'difftool -y -t bc'
git config --global alias.bcdiffc 'difftool -y -t bc --cached'
git config --global difftool.bc.cmd 'git_bcdiff "$LOCAL" "$REMOTE" "$MERGED"'
git config --global alias.bcmerge 'mergetool -y -t bc'
git config --global mergetool.bc.cmd \
'git_bcmerge "$LOCAL" "$REMOTE" "$BASE" "$MERGED"'
git config --global alias.authors '!git log --pretty="%an" | sort | uniq -c | sort -n'
git config --global init.defaultBranch master
# Only use configured user.name/user.email; do not guess them
git config --global user.useConfigOnly true
}
function git-config-local-personal()
{
local domain='gmail.com'
git config user.email 'jholtrop@'${domain}
}
alias git-find-lost-commit='git fsck --lost-found'
git_empty_commit='4b825dc642cb6eb9a060e54bf8d69288fbee4904'
function gitat()
{
local timestamp="$1"
shift
GIT_AUTHOR_DATE="$timestamp" GIT_COMMITTER_DATE="$timestamp" git "$@"
}