Git と Visual Studio 2017 その 11 : 構成
前回の記事では、Visual Studio 2017 を使ったソリューションの共有を説明しました。今回は Git の構成について見ていきます。Git は構成を変更することで様々な動作を変更出来ます。
構成のスコープ
Git の構成には 3 つのスコープがあります。より狭いスコープの設定が最終的に適用されます。
システム: 同じ PC を使うすべてのユーザーに適用
グローバル: 特定のユーザーのすべてのレポジトリに適用
ローカル: 特定のレポジトリにのみ適用
‘git config’ コマンドで構成を操作しますが、スコープの指定をしない場合はローカルの構成が変更されます。詳細はこちら。
構成 : Git
まず Git における構成を見ていきましょう。
1. ‘git config -l’ を実行して全スコープから現在の構成を表示。
2. ‘git config --local -l’ を実行してローカルスコープの設定を取得。
3. ‘git config user.name’ を実行して現在のユーザー名を表示。
4. ‘git config user.name <yourname>’ を実行してユーザー名を設定。スコープの指定を省略しているため、ローカルスコープで設定。グローバルスコープで設定したい場合は、‘git config --global user.name <yourname>’ を実行。GitHub この名前をもってユーザーを特定
おすすめの構成設定
話はそれますが、個人的にお気に入りの設定を紹介します。
core.pager: Git で log コマンドの結果などを表示する際、どのように結果を出すか指定できます。既定は less ですが、空欄にすることですべての情報が一気に出せます。
core.autocrlf: Windows と Linux のように改行コードが異なる環境で設定が必要になります。詳細はオフィシャルサイトを見てください。
alias.<alias> : 独自ショートカットを作成できます。log などはオプションが多いため、“lol” というショートカットに ‘log --oneline --graph --all’ を設定したりしています。
help.autocorrect: コマンドを打ち間違えた場合に自動補正してくれる機能です。パラメーターとして渡す数字は 1 が 0.1 秒となります。意図したコマンドになると困るので、一応 50 を設定することが多いです。
color.status: 各結果表示の色を変えることが出来ます。画面ショットからもわかる通り、特に赤色は見ずらいので変えることが多いです。例えば ‘git config color.status.changed yellow’ および‘git config color.status.untracked magenta’ にするとステータスは以下のようになります。
構成 : VS
Visual Studio 2017 での構成を見る前に、VS に関連する設定を見てみましょう ‘git config --global -l’ を実行して、マージと差分ツールを見てください。ここの設定があるため ‘git mergetool’ などで VS が起動するようになっています。
では VS での Git 構成を見ていきましょう。
1. チームエクスプローラーより設定をクリック。”グローバル設定” がグローバルスコープ、”レポジトリの設定” がローカルスコープに相当。”グローバル設定” をクリック。
2. ユーザー名や電子メールアドレスは Git の構成として反映されるが、”既定のレポジトリの場所” などは Visual Studio 自体の設定として保持される。”既定でマージ後に変更をコミットする。” 設定はマージの回で説明したが、他の設定は詳細リンクを参照。Git だけを再インストールしたなどの理由でマージや差分ツールが Visual Studio から変更されてしまった場合は、こちらの画面から再設定が可能。
3. 戻って ”レポジトリの設定” をクリック。ユーザー名などグローバルスコープを上書きする設定と、ローカルスコープの設定がともに存在。.gitignore や .gitattributes ファイルは編集リンクより編集が可能。またリモートのように Git 観点では構成ではないものも、こちらで設定。
4. .gitignore などが VS のエディターで変更できるのは便利。参考として既定の設定確認も推奨。
5. その他の設定も、読み取り専用だが数多くの参考となる設定が可能。
まとめ
構成は目立たないものの重要なため、どのような値となっているかは都度確認するようにしています。チームで同じプロジェクトをやる場合は構成を合わせたりもしています。次回は履歴などからのファイルの比較について見ていきます。次の記事へ
中村 憲一郎