[Windows]gitの設定ファイルと最初の設定(ファイル名文字化け対策と個人識別情報)

Windows上に構築したgitに初期設定を行います
具体的には個人の識別情報の設定とファイル名の文字化けを防ぐ対策を行います
なお、個人の識別情報については、GitBash上で行う設定とSourceTreeを使った同等の設定について記載します

このページでは、Windows上に構築したgit環境に対して初期設定を行います

git設定ファイルの構成について

gitには以下のレベルの設定ファイルがあります。

  • system設定

    [gitインストール先]\etc\gitconfig  ※Linuxの場合だと、/etc/gitconfig

  • global設定

    C:\Users\$USER\.gitconfig 又は C:\Documents and Settings\$USER\.gitconfig  ※Linuxの場合だと、${HOME}/.gitconfig

  • リポジトリ設定

    gitリポジトリ\.git\config

リポジトリ > global > system の優先で設定値が採用されます
例えば、同一設定項目が リポジトリとglobalに設定されていた場合はリポジトリの設定値が優先されます

git status等で日本語ファイル名が化けるのを回避する

git statusコマンド等で日本語ファイル名が化ける場合がありますので、GitBash上から以下のコマンドを実行します。

$ git config --global core.quotepath false

これで日本語ファイル名も化けずに確認できる様になります。

個人の識別情報の設定

個人の識別情報を設定します。
この情報は、コミットする際のユーザ名となりますので必ず必要です

設定項目は

  • ユーザ名([user]-[name])
  • メールアドレス([user]-[email])

です。

global設定

global設定として個人の識別情報を設定します。
設定するには、GitBash上で以下を実行します

$ git config --global user.name "taro yamada"
$ git config --global user.email taro.yamada@example.com

“–global”を指定しているのは、global設定に値を設定することを意味しています。
これで、現在Windowsにログインしているユーザでコミットした場合の個人の識別情報は”taro yamada”になります。

コマンドを実行した後の設定ファイル(C:\Users\$USER\.gitconfig)の内容は以下となります。

[user]
	name = taro yamada
	email = taro.yamada@example.com

※git configコマンドでなくても、ファイルをエディタ等で直接編集してもOKです

system設定

system設定として個人の識別情報を設定するには、global設定と同様、Git Bash上で以下を実行します。

$ git config --system user.name "taro yamada"
$ git config --system user.email taro.yamada@example.com

system設定ですので、Windowsにログインしているすべてのユーザがこの値となります。
ただし、同時にglobal設定されているとglobal設定値の方が優先されます

リポジトリ設定

リポジトリ設定に設定する場合は、GitBashで、リポジトリのディレクトリに移動し、

$ git config user.name "taro yamada"
$ git config user.email taro.yamada@example.com

と実行します

設定の確認

GitBash上で、以下のコマンドを実行することにより、設定内容が確認できます

$ git config --list
user.name=taro yamada
user.email=taro.yamada@example.com
  :    :    :
  :    :    :

SourceTreeで同様の設定をする

SourceTreeでglobal設定またはリポジトリ設定を行うこともできます

global設定

SourceTreeのメニュー [ツール]-[オプション]で以下の様にします。

sourcetree設定

  • “SourceTreeにGitとMercurialのグローバル設定ファイルの変更を許可する” にチェックする
  • フルネームとメールアドレスにそれぞれ設定する

これで、Git Bash上で実行したコマンドと同等の処理が行われます

リポジトリ設定

SourceTreeのメニュー [リポジトリ]-[リポジトリ設定]の[詳細]タブで以下の様にします。

sourcetree設定

  • “グローバルユーザ設定を使う” のチェックを外す
  • フルネームとメールアドレスにそれぞれ設定する

これで、Git Bash上で実行したコマンドと同等の処理が行われます

まとめ

git設定ファイルにはレベルがあることがわかりました。
通常は、globalに設定していれば問題はないかと思います。