當你買一輛車或腳踏車, 你第一件事會先調整座位的位置和手把的高度到適合你的身體大小. 這就跟 git 配置是一樣的.
在這篇文章, 我會分享一些 git 的設定, 而且是我一直都在使用的.
User name 和 Mail 位址
git config --global user.name "<name>" && \
git config --global user.email "<email>"
- 把 <name> 換成我的名字, 以及 <email> 換成我的 mail 位址.
現存指令的別名
git config --global alias.co checkout
git config --global alias.st status
git config --global alias.br branch
全域的 ignore 設定
git config --global core.excludesfile ~/.gitignore_global
- 這讓你在 ~/.gitignore_global中放入自己特定的 ignore 設定(除了每個專案的 .gitignore 以外), 會讓所有專案的所有 git 運作都採用他.
只 push 你現在正在處理的 branch
git config --global push.default simple
讓 --rebase 成為 git pull 期間的預設行為
git config --global pull.rebase true
- 這會預防無意識到的 merge commit 新建, 發生時機是 pulled 的分支在本地有被修改過.
讓 --prune 成為在 git fetch 期間的預設行為
git config --global fetch.prune true
- 這會移除那些遠端被刪除的本地分支, 是當 git fetch 或 git pull 實行時.
針對 tab 字元設定縮排的寬度
git config --global core.pager 'less -x4'
- 在這個範例中, pager( less 指令) 的選擇指定了 tab 的縮排寬度為 4
當 committing , 時使用 nvim 作為所使用的編輯器
git config --global core.editor 'nvim'
- 我針對不同目的使用不同的文字編輯器, 但我傾向 git commit使用 nvim .
當 merging 時不要 fast-forward
git config --global --add merge.ff false
git config --global --add pull.ff only
- Fast-forward merging 會讓分支上的工作歷史難以追蹤. 所以, 當 merging 時避免無意識的 fast-forward.
- 不過, fast-forwarding 對於 git pull 在大部分情況都不是問題, 所以我在 pull 的情況下強制 fast-forwarding.
在 git grep的結果中輸出行數
git config --global grep.lineNumber true
對 whitespace 可視覺化認出不同(包括 newline)
git config diff.wsErrorHighlight all