【Git】最低限やっておきたい.gitconfig

前書き

個人用メモなので他の人がどうしてるのかは知りませんが。復旧したり新しい環境で再設定したりするのが結構だるいんですよね…。

なんだか最近こんな記事ばっかりですね。

aliasで強制的に--no-pagerをつける

いきなり.gitconfigとは全く関係無いですが、pager使いたかったら自分で指定する方がストレスフリーなのでaliasを設定しておきます。

私はNyaosを仕事でもプライベートでも使っているので_nyaに記述。コマンドプロンプトを使ってる?知らんがな。

alias git=git --no-pager

前提知識

Gitのconfigファイルは三種類あります。どれか一つだけ修正して「なんか動かねーぞ!」と慌てる前にgit config --listを使って覚えのない設定で上書きされていないか確認しましょう。

git configでのオプション場所
--system (Gitがインストールされているディレクトリ)\etc\gitconfig
--global %USERPROFILE%.gitconfig
--local リポジトリの.git内のconfig

また、どんな設定ができるかはここに書いてありますが、正直読んでも全然わかりません。

systemレベルの設定

editorをvimにしたりとか、diffツールWinMergeにしたりとか。後はgrepにcolor設定したりとか。

alias以外はデフォルト以上のことはしないようにします。面倒だし。

[core]
    symlinks = false
    autocrlf = false
    editor = vim
[color]
    diff = auto
    status = auto
    branch = auto
    interactive = true
    grep = auto
[pack]
    packSizeLimit = 2g
[help]
    format = man
[http]
    sslCAinfo = /bin/curl-ca-bundle.crt
[diff]
    tool = WinMerge
    guitool = WinMerge
[difftool "WinMerge"]
    prompt = false
    path = C:/Program Files/WinMerge/WinMergeU.exe
    cmd = \"C:/Program Files/WinMerge/WinMergeU.exe\" -e -ub -dl \"Theirs Files\" -dr \"Mine  Files\" \"$REMOTE\" \"$LOCAL\"
    trustExitCode = false
[rebase]
    autosquash = true

aliasはこんな感じ。

[alias]
#各短縮形
st = status
cm = commit
br = branch -a
ad = add
co = checkout
wc = whatchanged
sh = show
ft = fetch

#オレオレ便利コマンド
diffd = difftool -d
cancel = reset --soft HEAD^
history = log --graph --date=iso --pretty=format:'%Cgreen%h %cd %Cblue%cn %Creset%s'
stat = log --stat
unstage = rm --cached
merged = branch --merged
no-merged = branch --no-merged

globalレベルの設定

最低限userだけ入ってればいいでしょみたいなスタンス。

色んな人が使う端末ならsystemの大部分はこっちに持ってきた方がいいんでしょうけど。

[user]
    name = tumbling-dice
    email = xxxxx@gmail.com

localレベルの設定

好きにしたまえ。

後書き

メモでした。