#!/usr/bin/env sh rm ~/.gitconfig # Purge existing gitconf # Dotfiles config git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME config protocol.version 2 git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME config pull.ff only git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME config push.default simple git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME config status.showUntrackedFiles no # Main Git Config git config --global am.messageid true git config --global checkout.thresholdForParallelism 50 # Default 100 files git config --global checkout.workers 0 # Auto-detect threads from CPU git config --global core.commitGraph true git config --global credential.https://source.developers.google.com.helper "gcloud.sh" git config --global fetch.parallel 4 git config --global fetch.writeCommitGraphs true git config --global gc.cruftPacks true git config --global hub.protocol https git config --global init.defaultBranch main git config --global pack.threads 0 # Auto-detect threads from CPU git config --global pack.writeReverseIndex true git config --global protocol.version 2 git config --global pull.ff only git config --global pull.twohead ort # Use new faster merge algorithm git config --global push.default simple git config --global push.followTags true git config --global rebase.autoStash true git config --global status.submodulesummary 1 git config --global user.email tydavis@gmail.com git config --global user.name "Tyler Davis" # Tools git config --global difftool.nvim.cmd "nvim -d \$LOCAL \$REMOTE \$MERGED -c 'wincmd w' -c 'wincmd J'" git config --global difftool.vscode.cmd "code --wait --diff \$LOCAL \$REMOTE" git config --global mergetool.vscode.cmd "code --wait \$MERGED" # Use pager for large diffs git config --global pager.difftool true if [ "$(command -v difft)" ]; then git config --global alias.dft difftool fi # Config tools if [ "$(command -v hx)" ]; then git config --global core.editor hx if [ "$(command -v difft)" ]; then git config --global diff.external difft else git config --global diff.tool vim fi git config --global merge.tool hx else git config --global core.editor vim git config --global diff.tool vim git config --global merge.tool vim fi case `uname` in Darwin) if [ "$(command -v hx)" ]; then git config --global core.editor hx git config --global merge.tool hx else git config --global core.editor vim git config --global merge.tool vim fi git config --global diff.tool vim git config --global core.excludesfile "/Users/tydavis/.gitignore_global" git config --global credential.helper osxkeychain git config --global http.cookiefile /Users/tydavis/.gitcookies ;; Linux) git config --global core.excludesfile "/home/tydavis/.gitignore_global" git config --global credential.helper "store --file=/home/tydavis/.config/gitcreds" # Adding signoff for Kernel work git config --global format.signoff true git config --global http.cookiefile /home/tydavis/.gitcookies # Email configuration for `git send-email` command git config --global sendemail.annotate yes # Review and edit each patch git config --global sendemail.confirm auto git config --global sendemail.smtpserver /usr/bin/msmtp ;; FreeBSD) # commands for FreeBSD go here ;; esac