【Git】git configで何ができる?初心者向けにわかりやすく解説
はじめに
Gitで共同開発を行うときに、よく耳にするのがgit configというコマンドです。 ユーザー名やメールアドレスなどを設定するために必須ですが、実は他にもいろいろな活用シーンがあります。 しかし、初心者の方だと「グローバル設定とローカル設定はどう違うのか」や「何をどこまで設定すべきなのか」といった疑問を抱くかもしれません。
そこでこの記事では、git configを使った設定の基本から少し応用的な使い方まで、実例とともにわかりやすく解説します。 プログラミングが初めての方にも理解しやすい表現を心がけましたので、まずは設定のイメージをつかんでみてください。
この記事を読むとわかること
- git configの役割
- グローバル設定とローカル設定の違い
- 実務でどのように設定を使い分けると便利か
- コマンドを使った具体的な設定方法と確認手順
- 設定内容をリセット・管理する際のヒント
git configとは何か
Gitは変更履歴を管理するツールですが、開発の履歴を正しく記録するために誰が作業したのかという情報が必要になります。 この「誰が」の部分を紐付ける主な機能がgit configです。
多くの人は、Gitを最初に導入したタイミングでユーザー名とメールアドレスを設定するでしょう。 しかし実際には、エディタの指定や改行コードの扱いなど、細かい動作仕様を変更するためにもgit configを活用できます。
実務でのイメージ
たとえば、会社のアカウントとは別に個人のプロジェクトをGitHub上で管理する場合があります。 このようなときは、ユーザー名やメールアドレスを使い分ける必要があります。 git configを使うと、各プロジェクトごとに設定を切り替えたり、開発環境全体で共通の設定を行ったりできるのでとても便利です。
git configの種類
git configには、大きく分けると3つの範囲があります。 それぞれ設定が反映されるスコープが異なるため、どこでどの設定を行うかを理解することが大切です。
システム全体(system)
- コンピュータ全体に適用される設定
- 一般的にはサーバー管理者などが一括で設定することを想定
ユーザー単位(global)
- PCの特定ユーザーに対して適用する設定
- 個人としてのユーザー名やメールアドレスはここで設定するのが一般的
リポジトリ(local)
- プロジェクトごとに適用される設定
- 特定のリポジトリだけルールを変えたい場合に活用
実務での使い分け方
- global: 一人の開発者が普段使う基本情報(ユーザー名、メールアドレス)
- local: プロジェクト固有の情報(特定のブランチ運用ルールなど)
システム全体(system)に設定する機会はあまり多くありませんが、企業のサーバー環境によっては必要になることがあります。
git configの基本コマンド
git configの基本的な使い方はとてもシンプルです。 大まかに次の流れで操作します。
git config --global
もしくはgit config --local
の指定設定項目
と値
を入力- 必要に応じて
git config --list
で確認
それでは、実際に具体例を見ていきましょう。
グローバル設定の例
git config --global user.name "YourGlobalName" git config --global user.email "yourglobal@example.com"
このように、--global
をつけることでユーザー単位の設定が反映されます。
ここで設定したユーザー名・メールアドレスは、特に指定がないかぎりすべてのGitリポジトリで使用されます。
ローカル設定の例
cd /path/to/your/project git config --local user.name "ProjectSpecificName" git config --local user.email "project@example.com"
上記は、特定のリポジトリに切り替わった状態でコマンドを打つ形です。 こうすることで、そのリポジトリでだけ別のユーザー名やメールアドレスを使えます。
設定後に git config --list
を実行すると、現在の設定内容を一覧で確認できます。
重複している場合は、local が最優先、次に global、system の順に上書きされます。
実際のプロジェクトで役立つ設定項目
実務において役立つ設定は、ユーザー情報だけではありません。 いくつか代表的な設定項目を紹介します。
コアエディタの設定
コミットメッセージの修正やマージコミットの編集などで使われるエディタを指定できます。 具体的には、以下のように設定します。
git config --global core.editor "vim"
もし他のエディタを使いたい場合は "code --wait"
のように設定すればVSCodeを利用できます。
エディタ操作に慣れたツールを使うことで、作業効率が上がるでしょう。
改行コードの扱い
WindowsとUnix系OS(LinuxやmacOS)では改行コードが異なるため、ファイルの差分が意図しない形で出てしまう場合があります。
これを制御するのが core.autocrlf
という設定です。
# Windows環境で作業する場合の例 git config --global core.autocrlf true # Unix系環境の場合の例 git config --global core.autocrlf input
この設定を誤るとコミットするたびに差分が生まれたりするので注意が必要です。
マージの振る舞い
マージ操作を行ったときに、Fast-forward するかどうかを制御する設定などもあります。 ただ、初心者の方には少し難しく感じるかもしれません。 プロジェクトの方針に合わせて、必要になってから設定することが多いです。
git configファイルの中身
設定コマンドを実行すると、内部的にはテキストファイルに保存されます。 システム全体、ユーザー単位、リポジトリ単位でファイルの場所が異なるため、最初は少し混乱するかもしれません。
主なファイルの場所
- システム全体:
/etc/gitconfig
など(OSによって異なる) - ユーザー単位:
~/.gitconfig
やC:\Users\ユーザー名\.gitconfig
- リポジトリ単位:
.git/config
ファイルを直接編集してもOK
実は、これらのファイルはテキストエディタで直接修正しても動作します。 ただし誤って構文を崩してしまうとエラーになるため、慣れないうちはコマンドベースの操作が無難です。
設定を上書き・解除するには
Gitの設定を一度行った後、別の環境に切り替えたいケースがあります。 たとえば会社プロジェクトから個人プロジェクトに移行した場合などです。
上書きする方法
同じキーに対して新しい値を設定すれば、単純に上書きされます。
たとえば、user.name
を変更したい場合は以下のように再度設定します。
git config --global user.name "NewUserName"
設定を無効化するには
設定を解除したい場合は、以下のコマンドで対象のキーを削除することができます。
git config --global --unset user.name
また、全部まとめて消したいときは --unset-all
を使うか、該当ファイルを直接編集するのも手段の一つです。
あまり頻繁に設定を解除すると、どの設定が適用されているのか分からなくなることがあります。 複数のプロジェクトを扱う際は、local の設定を活用して整理することがおすすめです。
実務での活用シーン
ここからは、より具体的にgit configが活きるシーンを紹介します。
シーン1: 会社と個人のアカウントを使い分ける
会社のGitLabで作業しているときは会社用のユーザー情報、個人の趣味プロジェクトでは個人用のユーザー情報を使いたい場合があります。 そんなときに、グローバル設定は会社の情報、趣味プロジェクトのリポジトリだけlocalで個人の情報を上書きするといった方法が役立ちます。
シーン2: プロジェクト固有の改行コード設定
チーム内にWindowsユーザーとmacOSユーザーが混在しているケースは多いです。
core.autocrlf
をリポジトリごとに設定しておくことで、改行コードの混在による混乱を防げます。
シーン3: 担当者が複数いる開発マシン
一部の現場では、一台のPCを交代で使うことがあります。
その場合、操作のたびに git config --global
で設定を切り替えるのは手間なので、プロジェクトや作業者ごとにlocalで設定し直すことが多いです。
git configのトラブルシューティング
初心者の方がつまずきやすいポイントもいくつかあります。 ここではよくあるトラブルの例と、その対処法を簡単にまとめます。
1. 設定が反映されない
- 設定ファイルが間違った場所にある
- local 設定と global 設定が競合している
対策:
git config --list --show-origin
で、どのファイルから読み込まれているかを確認してみましょう。
2. 自分の名前がコミット履歴に反映されない
- コミットをする前にユーザー名とメールアドレスを変更した
- 実行済みのコミットには旧設定が使われている
対策: コミット済みの履歴は基本的に変更されません。 誤ってコミットしてしまった場合は履歴の書き換えが必要ですが、共同開発中にやるとトラブルの元です。
3. 改行コードの設定で差分が大量に出る
core.autocrlf
の設定を途中で変えたため、ファイル全体の改行コードが置き換わった
対策: プロジェクト開始時に改行コードの方針を決めておくことが大事です。 一度大きな差分が出てしまった場合は、チームで相談してリポジトリを再構築することもあります。
まとめ
git configはユーザー名やメールアドレスだけでなく、開発環境のさまざまな設定を管理する非常に便利なコマンドです。 local、global、system の3つのスコープを上手に使い分けることで、複数のプロジェクトやアカウントを整理できます。
設定を間違えると、コミット履歴が思わぬ形で混乱したり、改行コードの扱いで大きな差分が発生したりすることがあります。 しかし、最低限の知識を押さえておけば、必要に応じて上書き・解除しながらスムーズに進めることができるでしょう。
皆さんがGitを使う場面はさまざまですが、git configを使いこなすことで開発環境がぐっと扱いやすくなります。 ぜひ一度、自分の環境を確認して、設定を見直してみてください。