T-CREATOR

Git を macOS に最適導入:Homebrew・初期設定テンプレ・credential 管理まで

Git を macOS に最適導入:Homebrew・初期設定テンプレ・credential 管理まで

macOS で Git を使い始めるとき、「とりあえずインストールすればいい」と思っていませんか?しかし実際には、インストール方法の選択、初期設定の最適化、認証情報の安全な管理など、快適な開発環境を構築するためには押さえておくべきポイントがあります。本記事では、macOS における Git の最適な導入方法から、実務で必要となる設定テンプレート、credential 管理まで、一貫した流れで解説します。

背景

macOS における Git のインストール選択肢

macOS で Git を使う場合、主に以下の 3 つの方法があります。

#方法特徴推奨度
1Xcode Command Line ToolsmacOS 標準、自動インストール★★☆☆☆
2Homebrewバージョン管理が容易、最新版を利用可能★★★★★
3公式インストーラ手動ダウンロード、バージョン固定★★☆☆☆

macOS には Xcode Command Line Tools として Git が同梱されていますが、バージョンが古いことが多く、更新も macOS のアップデートに依存します。一方、Homebrew を利用すれば、最新の Git を簡単にインストールでき、バージョン管理も brew upgrade git で完結します。

Git の初期設定が重要な理由

Git をインストールしただけでは、コミット時にエラーが発生したり、認証に失敗したりすることがあります。これは以下の設定が不足しているためです。

  • ユーザー情報: コミット時に記録される名前とメールアドレス
  • デフォルトブランチ名: master から main への変更対応
  • 改行コード: Windows との協業時のトラブル防止
  • 認証情報管理: パスワード入力の手間削減とセキュリティ向上

以下の図は、Git インストールから実際の開発作業に至るまでの流れを示しています。

mermaidflowchart TD
  install["Git インストール"] --> config["初期設定<br/>(user/email/branch)"]
  config --> cred["認証情報設定<br/>(credential helper)"]
  cred --> work["実際の開発作業"]
  work --> commit["コミット・プッシュ"]
  commit --> auth["認証<br/>(自動入力)"]
  auth --> remote["リモートリポジトリ"]

初期設定を正しく行うことで、スムーズな開発フローを実現できます。

credential 管理の課題

GitHub などのリモートリポジトリにアクセスする際、毎回パスワードや Personal Access Token を入力するのは非効率です。さらに、トークンを平文で保存するとセキュリティリスクが生じます。macOS には Keychain という安全な認証情報管理機能があり、これを Git と連携させることで、セキュリティを保ちながら認証を自動化できます。

課題

バージョン管理の難しさ

Xcode Command Line Tools の Git は、macOS のバージョンに依存するため、以下の課題があります。

  • 最新機能が使えない
  • セキュリティパッチの適用が遅れる
  • 複数バージョンの切り替えが困難

例えば、Git 2.28 で追加された init.defaultBranch 設定を使いたくても、古いバージョンでは対応していません。

初期設定の複雑さ

Git の初期設定は、公式ドキュメントを見ても項目が多く、何を設定すべきか分かりにくいです。特に以下の点で混乱しがちです。

  • グローバル設定とローカル設定の違い
  • 必須設定と任意設定の区別
  • macOS 固有の設定(改行コード、Keychain など)
mermaidflowchart LR
  user["開発者"] --> Q1{"何を設定すべき?"}
  Q1 -->|全プロジェクト共通| global["グローバル設定<br/>(~/.gitconfig)"]
  Q1 -->|プロジェクト固有| local["ローカル設定<br/>(.git/config)"]
  global --> items["必須: user.name, user.email<br/>推奨: core.autocrlf, init.defaultBranch"]
  local --> override["グローバル設定を上書き"]

この図のように、設定には階層があり、適切な場所に適切な設定を行う必要があります。

認証情報の安全な管理

GitHub は 2021 年 8 月にパスワード認証を廃止し、Personal Access Token または SSH キーを使う必要があります。しかし、以下の課題があります。

  • トークンを毎回入力するのは非効率
  • トークンをファイルに保存するとセキュリティリスク
  • SSH キーのセットアップは初心者には難しい

macOS の Keychain を活用すれば、トークンを安全に保存し、自動入力できますが、その設定方法が分かりにくいのが現状です。

解決策

Homebrew による Git インストール

Homebrew を使えば、最新の Git を簡単にインストールでき、バージョン管理も容易になります。

Homebrew のインストール確認

まず、Homebrew がインストールされているか確認します。

bashbrew --version

もし「command not found」と表示される場合は、Homebrew をインストールします。

bash/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Git のインストール

Homebrew で Git をインストールします。

bashbrew install git

インストール後、パスの優先順位を確認します。

bashwhich git

​/​opt​/​homebrew​/​bin​/​git または ​/​usr​/​local​/​bin​/​git と表示されれば、Homebrew 版が使われています。もし ​/​usr​/​bin​/​git と表示される場合は、シェルの設定ファイル(~​/​.zshrc など)で PATH を調整します。

bash# ~/.zshrc に追加
export PATH="/opt/homebrew/bin:$PATH"

設定を反映させます。

bashsource ~/.zshrc

バージョン確認

正しくインストールされたか確認します。

bashgit --version

git version 2.43.0 のように、最新バージョンが表示されれば成功です。

初期設定テンプレート

Git の初期設定を最適化するためのテンプレートを提示します。これらの設定は、実務でよく使われる推奨設定です。

ユーザー情報の設定(必須)

コミット時に記録される名前とメールアドレスを設定します。

bashgit config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

これらの情報は GitHub などのリモートリポジトリで公開されるため、適切な情報を設定してください。

デフォルトブランチ名の設定

GitHub などで main ブランチが標準になったため、Git でもデフォルトブランチ名を main に設定します。

bashgit config --global init.defaultBranch main

この設定により、git init で新しいリポジトリを作成した際に、自動的に main ブランチが作成されます。

改行コードの設定

Windows との協業時に改行コードの違いでトラブルが発生しないよう設定します。

bashgit config --global core.autocrlf input
  • input: チェックアウト時は変換せず、コミット時に CRLF を LF に変換
  • macOS / Linux では input を推奨
  • Windows では true を設定

エディタの設定

Git のコミットメッセージ編集に使うエディタを設定します。

bashgit config --global core.editor "vim"

VS Code を使う場合は以下のように設定します。

bashgit config --global core.editor "code --wait"

--wait オプションにより、エディタを閉じるまで Git が待機します。

カラー表示の有効化

Git の出力を見やすくするため、カラー表示を有効化します。

bashgit config --global color.ui auto

エイリアスの設定

よく使うコマンドを短縮形で実行できるよう設定します。

bashgit config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.unstage "reset HEAD --"

これにより、git stgit status を実行できます。

設定の確認

すべての設定を確認します。

bashgit config --global --list

以下のような出力が表示されます。

textuser.name=Your Name
user.email=your.email@example.com
init.defaultbranch=main
core.autocrlf=input
core.editor=vim
color.ui=auto
alias.st=status
alias.co=checkout
alias.br=branch
alias.ci=commit
alias.unstage=reset HEAD --

credential 管理の最適化

macOS の Keychain を活用して、認証情報を安全に管理します。

macOS の credential helper 設定

Git 2.x 以降では、osxkeychain helper が標準で含まれています。

bashgit config --global credential.helper osxkeychain

この設定により、Git は認証情報を macOS の Keychain に保存し、次回以降は自動的に取得します。

GitHub Personal Access Token の作成

GitHub で Personal Access Token を作成します。

  1. GitHub にログイン
  2. Settings → Developer settings → Personal access tokens → Tokens (classic) にアクセス
  3. "Generate new token (classic)" をクリック
  4. Note に用途を記載(例: "Git CLI")
  5. Expiration でトークンの有効期限を設定
  6. Select scopes で必要な権限を選択(通常は repo にチェック)
  7. "Generate token" をクリック
  8. 表示されたトークンをコピー(この画面でしか表示されません)

以下の図は、GitHub での認証フローを示しています。

mermaidsequenceDiagram
  participant User as 開発者
  participant Git as Git CLI
  participant Keychain as macOS Keychain
  participant GitHub as GitHub

  User->>Git: git push
  Git->>Keychain: 認証情報を取得
  alt 初回 (Keychain に情報なし)
    Keychain-->>Git: 情報なし
    Git->>User: ユーザー名とパスワードを要求
    User->>Git: Personal Access Token を入力
    Git->>Keychain: トークンを保存
  else 2回目以降
    Keychain-->>Git: 保存済みトークンを返却
  end
  Git->>GitHub: 認証情報を使ってアクセス
  GitHub-->>Git: 認証成功
  Git-->>User: プッシュ完了

この図のように、初回のみトークンを入力すれば、以降は自動的に Keychain から取得されます。

初回の認証

リポジトリに対して最初の操作を行うと、認証情報の入力を求められます。

bashgit clone https://github.com/username/repository.git

Username には GitHub のユーザー名を、Password には先ほど作成した Personal Access Token を入力します。

Keychain への保存確認

認証情報が Keychain に保存されたか確認します。

  1. Spotlight で「キーチェーンアクセス」を検索して起動
  2. 検索欄に「github」と入力
  3. github.com の項目が表示されれば、正しく保存されています

SSH キーを使う場合

HTTPS の代わりに SSH キーを使うこともできます。

SSH キーを生成します。

bashssh-keygen -t ed25519 -C "your.email@example.com"

Enter キーを押してデフォルトの保存場所 (~​/​.ssh​/​id_ed25519) を使用します。パスフレーズは任意で設定できます。

SSH エージェントを起動し、キーを追加します。

basheval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

公開鍵をクリップボードにコピーします。

bashpbcopy < ~/.ssh/id_ed25519.pub

GitHub の Settings → SSH and GPG keys → New SSH key で、コピーした公開鍵を追加します。

SSH 接続をテストします。

bashssh -T git@github.com

「Hi username! You've successfully authenticated...」と表示されれば成功です。

SSH キーの Keychain 統合

SSH キーのパスフレーズも Keychain に保存できます。

~​/​.ssh​/​config ファイルを作成または編集します。

textHost *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_ed25519

この設定により、SSH キーのパスフレーズが自動的に Keychain に保存され、次回以降は入力不要になります。

具体例

実際の作業フロー

ここでは、新しいプロジェクトを GitHub で管理する際の具体的な手順を示します。

1. ローカルリポジトリの初期化

プロジェクトディレクトリを作成し、Git リポジトリとして初期化します。

bashmkdir my-project
cd my-project
git init

init.defaultBranch を設定していれば、自動的に main ブランチが作成されます。

2. 最初のコミット

README ファイルを作成し、コミットします。

bashecho "# My Project" > README.md
git add README.md
git commit -m "Initial commit"

ユーザー情報を設定していれば、エラーなくコミットできます。

3. GitHub リポジトリの作成

GitHub で新しいリポジトリを作成します(Web UI から実行)。

4. リモートリポジトリの追加

ローカルリポジトリにリモートを追加します。

bashgit remote add origin https://github.com/username/my-project.git

5. プッシュ

リモートリポジトリにプッシュします。

bashgit push -u origin main

初回のみ Personal Access Token の入力を求められます。入力すると Keychain に保存され、以降は自動的に認証されます。

6. 以降の作業

ファイルを編集し、コミット・プッシュします。

bashecho "## Description" >> README.md
git add README.md
git commit -m "Add description section"
git push

2 回目以降は認証情報の入力は不要です。

トラブルシューティング

実際の運用でよく発生する問題と解決方法を示します。

問題 1: xcrun: error: invalid active developer path

エラーコード: xcrun: error: invalid active developer path (​/​Library​/​Developer​/​CommandLineTools)

発生条件: macOS をアップデートした後、Xcode Command Line Tools が無効化される

解決方法:

  1. Command Line Tools を再インストールします。
bashxcode-select --install
  1. Homebrew の Git を使用している場合は、パスの優先順位を確認します。
bashwhich git

問題 2: fatal: unable to access 'https:​/​​/​github.com​/​...': The requested URL returned error: 403

エラーコード: HTTP Error 403: Forbidden

発生条件: 認証情報が間違っている、または Personal Access Token の有効期限が切れている

解決方法:

  1. Keychain に保存された古い認証情報を削除します。

「キーチェーンアクセス」を開き、github.com を検索して削除します。

  1. 新しい Personal Access Token を作成します(前述の手順を参照)。

  2. 再度 Git 操作を実行し、新しいトークンを入力します。

問題 3: fatal: not a git repository

エラーコード: fatal: not a git repository (or any of the parent directories): .git

発生条件: Git リポジトリ以外のディレクトリで Git コマンドを実行した

解決方法:

  1. 現在のディレクトリを確認します。
bashpwd
  1. Git リポジトリがあるディレクトリに移動します。
bashcd /path/to/your/repository
  1. または、新しいリポジトリを初期化します。
bashgit init

問題 4: コミット時に user.name または user.email が設定されていないエラー

エラーメッセージ:

text*** Please tell me who you are.

Run

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

発生条件: ユーザー情報が設定されていない

解決方法:

エラーメッセージに従って、ユーザー情報を設定します。

bashgit config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

複数アカウントの管理

仕事用と個人用など、複数の GitHub アカウントを使い分ける場合の設定方法を示します。

ディレクトリごとに設定を切り替える

~​/​.gitconfig でグローバル設定を行い、特定のディレクトリでは別の設定を適用します。

グローバル設定(~​/​.gitconfig):

text[user]
  name = Personal Name
  email = personal@example.com

[includeIf "gitdir:~/work/"]
  path = ~/.gitconfig-work

仕事用設定(~​/​.gitconfig-work):

text[user]
  name = Work Name
  email = work@company.com

この設定により、~​/​work​/​ 配下のリポジトリでは自動的に仕事用の設定が適用されます。

SSH キーを使い分ける

複数の SSH キーを使い分ける場合は、~​/​.ssh​/​config で設定します。

text# 個人用
Host github.com-personal
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_personal

# 仕事用
Host github.com-work
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_work

リモート URL で Host を指定します。

bash# 個人用リポジトリ
git remote add origin git@github.com-personal:username/repo.git

# 仕事用リポジトリ
git remote add origin git@github.com-work:company/repo.git

以下の図は、複数アカウント管理の仕組みを示しています。

mermaidflowchart TD
  user["開発者"] --> work["~/work/<br/>仕事用プロジェクト"]
  user --> personal["~/personal/<br/>個人プロジェクト"]

  work --> workConfig["~/.gitconfig-work<br/>(仕事用設定)"]
  personal --> globalConfig["~/.gitconfig<br/>(個人用設定)"]

  workConfig --> workGitHub["GitHub<br/>(仕事用アカウント)"]
  globalConfig --> personalGitHub["GitHub<br/>(個人用アカウント)"]

ディレクトリ構造に応じて、自動的に適切な設定が適用される仕組みです。

まとめ

本記事では、macOS で Git を最適に導入する方法を解説しました。

Homebrew によるインストールでは、最新の Git を簡単に管理でき、バージョンアップも brew upgrade git で完結します。Xcode Command Line Tools に依存せず、常に最新機能を利用できる点が大きなメリットです。

初期設定テンプレートでは、ユーザー情報やデフォルトブランチ名、改行コード設定など、実務で必要な設定を網羅しました。これらを設定することで、エラーを回避し、チーム開発でもスムーズに作業できます。

credential 管理では、macOS の Keychain を活用して認証情報を安全に保存し、毎回のパスワード入力から解放されます。Personal Access Token と SSH キーの両方の設定方法を示したので、環境に応じて選択してください。

これらの設定を行うことで、macOS での Git 利用が格段に快適になります。初回のセットアップに少し時間をかけることで、その後の開発効率が大きく向上するでしょう。

関連リンク