Gitの初期設定: git config、ユーザー名、メール、SSHキー
Gitの基本設定は git config --global user.name と git config --global user.email で行い、コミットに作成者を記録します。エディタやデフォルトブランチも選べます。パスワードなしでGitHubにログインするには、ssh-keygen -t ed25519 でSSHキーを作成し、公開鍵をアカウントに登録して、ssh -T git@github.com で接続を確認します。
1分でできるGitの最小設定
Gitをインストールしたら、まず次の4つのコマンドを実行しましょう。最初の2つがないと、Gitはコミットを作成できません。残りの2つは、よくある不便を防ぎます。
git config --global user.name "Anna Smith"
git config --global user.email "anna@example.com"
git config --global init.defaultBranch main
git config --global core.editor "code --wait"
結果を確認します。
$ git config --global --list
user.name=Anna Smith
user.email=anna@example.com
init.defaultbranch=main
core.editor=code --wait
次に、それぞれの設定が何をするのか、Gitがどこに保存しているのか、SSHでGitHubに接続する方法を見ていきます。
git configの3つの設定レベル
git config は、3つのファイルのいずれかに設定を読み書きします。範囲の狭いレベルが、広いレベルの設定を上書きします。
| レベル | フラグ | ファイル | 適用範囲 |
|---|---|---|---|
| システム | --system | /etc/gitconfig(Windowsではインストールフォルダ内) | コンピュータのすべてのユーザー |
| グローバル | --global | ~/.gitconfig または ~/.config/git/config | 自分のすべてのリポジトリ |
| ローカル | --local(デフォルト) | リポジトリ内の .git/config | そのリポジトリだけ |
個人的な設定の多くはグローバルに、例外のみをローカルに設定するのが基本です。たとえば、会社のプロジェクトで使う勤務先のメールアドレスは、--global を付けずに個別のリポジトリ内で設定します。
便利なgit configのコマンド
git config user.email # 現在の値を表示する
git config --list --show-origin # すべての設定と、その取得元ファイルを表示する
git config --global --edit # ~/.gitconfig をエディタで開く
git config --global --unset core.editor # 設定を削除する
--show-origin はデバッグに役立ちます。「メールアドレスが想定と違う」場合に、どのファイルから値が読み込まれたかを示してくれます。
ユーザー名とメール: 見落とせない理由
コミットには作成者の名前とメールアドレスが永久に記録されます。これはログインIDでもパスワードでもなく、Gitが検証することもありません。しかし、GitHubやGitLabはメールアドレスをもとにコミットをアカウントと結び付けます。プロフィールで確認済みのメールアドレスと一致しない場合、コミットは草グラフに反映されず、アイコンも表示されません。
コミットの作成者情報は、履歴を書き換えずに後から変更することはできません。最初のコミットの前に設定を確認しましょう。
メールアドレスを公開しない
公開リポジトリでは、履歴を見た人なら誰でもメールアドレスを確認できます。GitHubは ID+username@users.noreply.github.com という形式のプライベートなアドレスを提供しています(設定のEmailsで確認できます)。これをGitに設定します。
git config --global user.email "12345678+anna@users.noreply.github.com"
仕事用と個人用でメールアドレスを分ける
勤務先のリポジトリごとに手作業で設定しなくてもよいように、条件付きのインクルードを使えます。~/.gitconfig に次のように書きます。
[includeIf "gitdir:~/work/"]
path = ~/.gitconfig-work
そして ~/.gitconfig-work には次のように書きます。
[user]
email = anna@company.com
これで ~/work/ の中にあるリポジトリは、自動的に仕事用のメールアドレスを使います。パスの末尾のスラッシュは必須です。
そのほかの便利な設定
エディタ
Gitは、コミットメッセージ、対話的なrebase、マージの際にエディタを開きます。デフォルトは Vim のことが多いです。選択肢は次のとおりです。
git config --global core.editor "code --wait" # VS Code
git config --global core.editor "nano" # Nano
git config --global core.editor "subl -n -w" # Sublime Text
デフォルトのブランチ名
init.defaultBranch main は、新しいリポジトリの最初のブランチ名を設定します(Git 2.28以降)。設定しないと、Gitは master を作成し、名前の変更を促す案内を表示します。
改行コード
git config --global core.autocrlf true # Windows
git config --global core.autocrlf input # macOSとLinux
これにより、リポジトリには常にLF形式の改行が保存され、ファイルの全行が「変更された」と表示される問題を防げます。
git pullの動作
戦略を指定しない場合、最近のGitは、ブランチが分岐しているときに戦略を明示するよう求めます。どれか1つを選んでください。
git config --global pull.rebase false # マージ(デフォルトの動作)
git config --global pull.rebase true # リベースで履歴を直線に保つ
git config --global pull.ff only # 早送りのみ、それ以外はエラー
日本語のファイル名と色
git config --global core.quotepath false
git config --global color.ui auto
エイリアス
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.lg "log --oneline --graph --decorate --all"
git config --global alias.last "log -1 HEAD"
これで git lg でブランチのグラフを表示し、git last で最新のコミットを確認できます。
設定後の ~/.gitconfig の例
[user]
name = Anna Smith
email = anna@example.com
[init]
defaultBranch = main
[core]
editor = code --wait
autocrlf = input
quotepath = false
[pull]
rebase = false
[alias]
st = status
lg = log --oneline --graph --decorate --all
これは普通のテキストファイルなので、直接編集したり、別のコンピュータに持ち運んだりできます。
Gitのログイン: GitHubへの接続方法
Gitには git login コマンドがありません。初心者がよくはまる落とし穴です。Gitは「アカウント」を保存しません。認証は、サーバーに接続するとき(clone、push、fetch)に、次の2つのプロトコルのいずれかで行われます。
| HTTPS | SSH | |
|---|---|---|
| アドレスの形式 | https://github.com/user/repo.git | git@github.com:user/repo.git |
| 認証の方法 | アクセストークン、またはブラウザでのログイン(Credential Manager) | SSHキーのペア |
| アカウントのパスワード | 2021年以降は使えない | 不要 |
| 向いている環境 | Git Credential Managerを使うWindows、企業のプロキシ環境 | macOS、Linux、サーバー、CI |
HTTPSでのログイン
Git for Windowsや、Git Credential Managerを使うmacOS版では、初回の git push でブラウザのウィンドウが開き、GitHubにログインできます。認証情報はシステムの保管場所に保存されます。別の方法として、公式ツールのGitHub CLIがあります。gh auth login を実行すると、認証の手順が案内され、Gitも設定されます。手動で行う場合は、GitHubの設定(Developer settings)でPersonal access tokenを作成し、パスワードの代わりに入力します。
GitでSSHを使う手順
SSHキーは2つのファイルのペアです。秘密鍵は自分のコンピュータに残し、公開鍵はGitHubに登録します。サーバーは、あなたが秘密鍵を持っていることを確認するため、パスワードを求める必要がなくなります。
手順1. キーがすでにあるか確認する
ls -la ~/.ssh
id_ed25519 と id_ed25519.pub がすでにあれば、手順3に進んでください。
手順2. キーを作成する
ssh-keygen -t ed25519 -C "anna@example.com"
Enterを押してデフォルトの場所に保存し、パスフレーズを設定します。パスフレーズは、ノートPCが盗まれた場合にキーを保護します。Ed25519は現在推奨されているアルゴリズムです。古いシステムで対応していない場合は、ssh-keygen -t rsa -b 4096 -C "anna@example.com" を使ってください。
手順3. ssh-agentにキーを追加する
エージェントは、復号されたキーをメモリに保持するため、pushのたびにパスフレーズを入力する必要がなくなります。
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
macOSでは、~/.ssh/config に次の行を追加すると、パスフレーズをキーチェーンに保存できます。
Host github.com
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_ed25519
そのうえで、ssh-add --apple-use-keychain ~/.ssh/id_ed25519 を実行してください。
手順4. 公開鍵をGitHubに登録する
cat ~/.ssh/id_ed25519.pub
ssh-ed25519 から始まる行全体をコピーします。GitHubで Settings → SSH and GPG keys → New SSH key を開き、キーを貼り付けて「ノートPC 2026」などわかりやすい名前を付けます。拡張子 .pub のないファイルは絶対に送信や公開をしないでください。それは秘密鍵です。
手順5. 接続を確認する
$ ssh -T git@github.com
Hi anna! You've successfully authenticated, but GitHub does not provide shell access.
初回接続では、SSHがホストを信頼するかどうか尋ねます。GitHubの公式ドキュメントに掲載されたフィンガープリントと照合してから、yesと答えてください。
手順6. リポジトリのリモートをSSHに切り替える
HTTPSでクローンしたリポジトリは、リモートのアドレスを変更します。
git remote -v
git remote set-url origin git@github.com:anna/my-project.git
git push
1台のコンピュータで複数のGitHubアカウントを使う
1つのSSHキーは、1つのGitHubアカウントにしか関連付けられません。仕事用と個人用のアカウントがある場合は、2つのキーを作成し、~/.ssh/config でホストの別名を設定します。
Host github-work
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_work
IdentitiesOnly yes
仕事用のリポジトリは、別名を使ってクローンします: git clone git@github-work:company/app.git。メールアドレス用の includeIf と組み合わせると、仕事用と個人用の環境を完全に分けられます。
設定時によくあるエラー
「Please tell me who you are」
user.name と user.email が設定されていません。この記事の冒頭のコマンドを実行してから、コミットをやり直してください。
「Permission denied (publickey)」
GitHubが適切なキーを見つけられませんでした。ssh-add -l でキーがエージェントに追加されているか、公開鍵がアカウントに登録されているかを確認してください。詳細は ssh -vT git@github.com で表示されます。
「Support for password authentication was removed」
HTTPSでの操作時に、アカウントのパスワードを入力しています。トークン、Credential Managerでのログイン、またはSSHへの切り替えを使ってください。
GitHubでコミットにアイコンが表示されない
git config user.email のメールアドレスが、GitHubのプロフィールに追加されていません。Settings → Emails で追加すると、過去のコミットも自動的に紐付けられます。
ネットワークでポート22が閉じている
GitHubは、ポート443でもSSH接続を受け付けます。~/.ssh/config に Host github.com、Hostname ssh.github.com、Port 443 を指定してください。
新しいコンピュータでの設定手順
- Gitをインストールし、
git --versionで確認する。 user.name、user.email、init.defaultBranch、エディタを設定する。- エイリアスやpullの戦略を含む
~/.gitconfigを移行するか、新規に作成する。 - 新しいSSHキーを作成し、GitHubに登録する(古い秘密鍵を、必要もなくコンピュータ間でコピーしないでください)。
ssh -T git@github.comで接続を確認し、SSHのアドレスで作業用リポジトリをクローンする。
端末ごとに別のキーを使うと、ノートPCを紛失した場合でも、GitHubでそのキーだけを削除すれば済みます。ほかの端末のアクセスには影響しません。
まとめ
Gitの設定は3ステップです。git config --global で名前とメールアドレスを設定し、エディタ、デフォルトブランチ、pullの戦略を選びます。その後、GitHubへの接続をSSHキーで設定します。最も簡単で確実な方法です。Gitには git login コマンドがないことを覚えておいてください。認証はサーバーにアクセスするときに行われます。設定とSSHアクセスの詳細は、Gitのコースで実際に試しながら学べます。
よくある質問
WindowsでGitの設定はどこに保存されますか?
グローバル設定は C:\Users\名前\.gitconfig に、ローカル設定は各リポジトリの .git\config に保存されます。正確な場所は git config --list --show-origin で確認できます。
Gitの設定をリセットするにはどうすればよいですか?
~/.gitconfig を削除または名前を変更すると、Gitはデフォルト値に戻ります。個別の設定は git config --global --unset 名前 で削除できます。
1つのSSHキーでGitHubとGitLabの両方を使えますか?
はい。同じ公開鍵を複数のサービスに登録できます。ただし、GitHubではキーは1つのアカウントにしか関連付けられない点に注意してください。
GitHubで「Verified」と表示されるようにコミットに署名するにはどうすればよいですか?
GPGまたはSSHキーで署名を設定します。たとえば、git config --global gpg.format ssh、user.signingkey に公開鍵のパス、commit.gpgsign true を設定し、そのキーをGitHubに Signing key として登録します。
Gitをアップデートした後、設定をやり直す必要はありますか?
いいえ。アップデートで ~/.gitconfig や ~/.ssh のキーが変わることはありません。すべての設定は保持されます。