Gitをインストールしたら真っ先にやっておくべき初期設定

  • 581
    いいね
  • 2
    コメント

概要

Git 初期設定の鉄板です。
何回やっても忘れるのでメモ。
気がついたら追記していきます。

ユーザー情報を設定する

最近の Git はこれを設定しないとエラーを吐くようになりました。いい機会です、是非設定しましょう。

git config --global user.name "First-name Family-name"
git config --global user.email "username@example.com"

エディタを Vim に設定する

コミットログを書くとき、 Ubuntu のデフォルトだと nano に設定されてしまうのでこれをvimに修正する。

git config --global core.editor 'vim -c "set fenc=utf-8"'

そもそも nano なんて使わねーよという時

ブコメや、 @fumiyas さんからも指摘がありましたが、 nano 自体を全体的にそもそも使いたくないときは

  • nano は削除する
sudo dpkg -P nano
  • ほかのエディタをデフォルトにする
export GIT_EDITOR=

or

export EDITOR=

or 私のやった方法は以下です。

$ sudo update-alternatives --config editor
alternative editor (/usr/bin/editor を提供) には 4 個の選択肢があります。

  選択肢    パス              優先度  状態
------------------------------------------------------------
* 0            /bin/nano            40        自動モード
  1            /bin/ed             -100       手動モード
  2            /bin/nano            40        手動モード
  3            /usr/bin/vim.basic   30        手動モード
  4            /usr/bin/vim.tiny    10        手動モード

現在の選択 [*] を保持するには <Enter>、さもなければ選択肢の番号のキーを押してください: 3
update-alternatives: /usr/bin/editor (editor) を提供するためにマニュアルモードで /usr/bin/vim.basic を使います

その他

git diff に色付けしたい

git config --global color.diff auto
git config --global color.status auto
git config --global color.branch auto

push 方式を指定

Git 1.8系 以降で使える。というか警告が表示される。
新しい Git だと警告が表示されるので push 方式を明示する。

git config --global push.default simple

Git 1.8系以前 だとこれを設定すると Malform だって言われて以下の様なエラーになっちゃう。ひい。

error: Malformed value for push.default: simple
error: Must be one of nothing, matching, tracking or current.
fatal: bad config file line 8 in /home/wnoguchi/.gitconfig

以下のようにして削除する。

git config --global --unset push.default

詳しくは以下を参照。

Macユーザーに贈るUTF-8問題解決設定

Git 1.7.12以降で使える。
Mac ユーザーの中では有名ですが、濁点つきのディレクトリ・ファイルが分けて表示されてしまう UTF8-MAC 問題の解決方法。
忘れがちなので注意。

  • 今後クローンするリポジトリに対して有効になる
git config --global core.precomposeunicode true
  • 既存リポジトリの .git/config に対してすること
git config --local core.precomposeunicode true

git status とかで表示される日本語ファイル名がエスケープされてうざい

git config --global core.quotepath false

まとめ

以下のスクリプトを流し込むとそれっぽく初期設定してくれる。

git-bootstrap.sh
#!/bin/bash
git config --global user.name "First-name Family-name"
git config --global user.email "username@example.com"
git config --global core.editor 'vim -c "set fenc=utf-8"'
git config --global color.diff auto
git config --global color.status auto
git config --global color.branch auto
#git config --global push.default simple
git config --global core.precomposeunicode true
git config --global core.quotepath false

現在の設定を確認する

% git config --list
user.name=Wataru Noguchi
user.email=username@example.com
core.quotepath=false
core.excludesfile=/Users/noguchiwataru/.gitignore_global
core.precomposeunicode=true
difftool.sourcetree.cmd=opendiff "$LOCAL" "$REMOTE"
difftool.sourcetree.path=
mergetool.sourcetree.cmd=/Applications/SourceTree.app/Contents/Resources/opendiff-w.sh "$LOCAL" "$REMOTE" -ancestor "$BASE" -merge "$MERGED"
mergetool.sourcetree.trustexitcode=true
push.default=simple

参考サイト

  1. git 1.7.12でUTF8-MAC問題が解決 | Butaman-kun Project
  2. git push時に表示されるwarning: push.default is unset...の意味と解決方法 - Qiita キータ
  3. 引数なしのgit pushは危険なので気をつけましょう - DQNEO起業日記
  4. gitのコミットログ編集用エディタをvimにする - Sticker@Something
  5. git git diff で色付け - mat_akiの日記
  6. git config --global で追加した設置値を削除したい場合 - knt45の日記