alias dots='git --git-dir=$HOME/.dots.git/ --work-tree=$HOME'
git init --bare $HOME/.dots.git
dots remote add origin https://github.com/yuhuanq/dots.git
dots config status.showUntrackedFiles no
dots config alias.untracked "status -u ."
dots config alias.untracked-at "status -u"
# Use the dots alias like you would use the git command
dots status
dots add --update ...
dots commit -m "..."
dots push
git clone --recursive --separate-git-dir=$HOME/.dots.git https://github.com/yuhuanq/dots.git /tmp/dots
rsync -rvl --exclude ".git" /tmp/dots/ $HOME/
rm -r /tmp/dots
dots submodule update --init --recursive $HOME/
credits to jaagr