Git の初期設定と更新(Mac)
以下は Mac で Git を最新版にアップデートする方法や初期設定についての覚書です。
作成日:2023年8月8日
関連ページ:
- Git の基本的な使い方
- Git ブランチ マージ リベース
- Git スタッシュ(stash) 一時的に変更を退避
- Git リセット git reset コマンド
- Git hunk 変更の一部をステージしてコミット git add -p
- VS Code で Git を使う(ソース管理機能)
Git のインストール
まず、すでに Git がインストールされているかをターミナルで確認します。
以下の Git のバージョンを表示するコマンド(git -v)を実行します。バージョン情報が表示されれば Git がすでにインストールされています。
% git -v // または git --version(Git のバージョンを表示)
Mac の場合、Xcode や Command Line Tools for Xcode、Homebrew をインストールしていれば、Apple Git という Git がプリインストールされています(Homebrew をインストールする際に、Command Line Tools for Xcode もインストールされます)。
例えばこの Mac の場合、Homebrew が入っているので、Apple Git がプリインストールされていました。
which コマンドを使うと、どの外部コマンド(実行ファイル)が実行されるかを調べることができます。
% git -v // バージョンの確認 git version 2.39.2 (Apple Git-143) // この時点の Git の最新版は 2.41.0 なので少し古い % which git // どの git コマンドが実行されるか /usr/bin/git
インストールされていない場合は、「git コマンドを実行するには、コマンドラインデベロッパツールが必要です。ツールを今すぐインストールしますか?」と表示されるので、画面の指示に従ってツールをインストールすれば、Git もインストールされます。
以下の Git の公式ドキュメントのページには各 OS でのインストール方法が記載されています。
Git を最新版にアップデート
プリインストールされている Git を使うこともできますが、必要に応じて最新版の Git をインストールして利用することもできます。
Homebrew がインストールされていれば、以下のコマンドを実行して最新版の Git をインストールすることができます。
% brew install git // Git をインストール(少し時間がかかります)
インストールが終了したらバージョンを確認します。
Homebrew でインストールしたパッケージにパスが通っていない場合は、以下のようにプリインストールされている Apple Git のバージョンが表示されます。
% git -v // Git バージョン確認 git version 2.39.2 (Apple Git-143) // 今までのバージョンのまま
brew info コマンドでインストールしたパッケージの情報を確認することができます。
関連ページ:Homebrew の使い方(コマンド)
(bottled)と表示されるパッケージは、プリコンパイルされたパッケージを意味し、HEAD と表示されるパッケージは、バージョン管理システムの最新の開発ブランチからビルドされたものを意味するようです。
% brew info git // Homebrew でインストールしたパッケージを確認 ==> git: stable 2.41.0 (bottled), HEAD // 最新版 Distributed revision control system https://git-scm.com /usr/local/Cellar/git/2.41.0_2 (1,633 files, 48.7MB) * Poured from bottle using the formulae.brew.sh API on 2023-07-25 at 11:44:06 From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/git.rb License: GPL-2.0-only ・・・
パスを通す
最新版をインストール後、バージョンを確認した際に Apple Git のバージョンが表示される場合は、Homebrew でインストールした Git にパスが通っていないので、パスを通します。
設定ファイル(.zshrc や .bash_profile)にコマンド検索パスを追加し、変更を反映させるため source コマンドを実行します。
Intel Mac の場合、Homebrew でインストールしたパッケージは /usr/local/bin
に実行ファイルが置かれます(M1 Mac/Apple silicon の場合は /opt/homebrew/bin
になります)。
以下は Intel Mac/macOS Ventura で zsh を使用している場合の例です。リダイレクトを使って zsh の設定ファイル .zshrc にコマンド検索パスを追加します。
% echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.zshrc// コマンド検索パスを追加 % source ~/.zshrc //シェルの設定を反映
バージョンを確認して最新版になっていればインストール完了です。
また、現在どの git コマンドを使うようになっているかは which コマンドで確認できます。
% git -v git version 2.41.0 // 最新版 % which git // Git の PATH を確認 /usr/local/bin/git // Homebrew でインストールした Git
Git をアップデート
Homebrew で Git をインストールすれば、以下の brew upgrade コマンドを実行すれば Git のバージョンをアップデートすることができます。
% brew upgrade git // Git をアップデート
Apple Git へ戻す
Apple Git へ戻す場合は、設定ファイルに追加したパスを削除またはコメントアウトして、Apple Git へのパスを先頭に追加します。
# Homebrew でインストールした Git(以下をコメントアウト) #export PATH=/usr/local/bin:$PATH # Apple Git へ戻す場合(以下を追加) export PATH=/usr/bin:$PATH
その後、シェルを再起動(一旦ログアウトして再ログインするか、以下のコマンドを実行)します。
exec $SHELL -l // シェルを再起動
初期設定
インストールが完了したら git config コマンドに --global オプションを指定して初期設定を行います。
--global オプションを指定した設定はユーザーごとのグローバル設定になります。
別途プロジェクト(リポジトリ)ごとの設定をすることで、プロジェクトごとに異なる設定を追加したり、この設定を上書きすることもできます(設定のレベル)。
Git Reference: git config
ユーザー名と Email アドレスを設定
初期設定では少なくともユーザー名(user.name)と Email アドレス(user.email)を設定します。
% git config --global user.name "John Doe" // ユーザー名 % git config --global user.email johndoe@example.com // Email アドレス
上記で設定したユーザー名と Email アドレスは「誰が」変更したかを識別するための情報として使われます。この情報を設定しないとコミットという操作ができないので必ず設定する必要があります。
設定の表示(リスト)
設定した内容は --list または -l オプションを指定して確認することができます。
% git config --global --list user.name=John Doe // ユーザー名 user.email=johndoe@example.com // Email アドレス
また、--global を指定せずに git config --list を実行すると、デフォルトなどの最終的に適用される設定値が全て表示されます。以下は Mac にプリインストールされている Apple Git の例です。
% git config --list credential.helper=osxkeychain init.defaultbranch=main //デフォルトのブランチ名が main に設定されている user.name=John Doe user.email=johndoe@example.com
以下は Homebrew でインストールした Git の例です。
% git config --list credential.helper=osxkeychain user.name=John Doe user.email=johndoe@example.com
設定した値を変更
設定した値を変更したい場合は、設定コマンドを再度実行すれば書き換えることができます。
% git config --global user.email john_doe@example.com // Email アドレスを変更
個々の設定値の確認
Gitに設定されている特定のキーの値を、git config <key> とタイプすることで確認できます。
% git config user.email john_doe@example.com
デフォルトのブランチ名を変更
git config --list を実行して、init.defaultbranch=main が設定されていない場合は、デフォルトのブランチ名が初期値の master になっているので、以下を実行してデフォルトのブランチ名を main に設定します。
% git config --global init.defaultBranch main
master 以外であれば任意の名前を設定することができますが、一般的には main が使用されています。
Mac にプリインストールされている Git はデフォルトのブランチ名がすでに main に設定されているので、変更する必要はありません。
※ init.defaultBranch は Git 2.28 で導入された機能なので、それ以前のバージョンでは利用できません。
% git config init.defaultBranch //デフォルトのブランチ名を確認 main
デフォルトのテキストエディタを変更
Git ではコマンドによってはテキストエディタが起動する場合があり、特に設定していない場合はシェルのデフォルトのテキストエディタ(vim など)が開きます。
デフォルトで起動するテキストエディタは以下で設定することができます。
% git config --global core.editor エディタ名
例えば、デフォルトのテキストエディタを Emacs にする場合は、以下を実行します。
% git config --global core.editor emacs
エディタを VS Code に変更する
デフォルトで起動するテキストエディタを VS Code にするには以下を実行します。
% git config --global core.editor "code --wait"
--wait オプションを使用すると、Git は指定されたテキストエディタを起動した後でも、エディタのプロセスが終了するまで待機します。
これによりユーザーがエディタで作業を行っている間は Git の操作が中断されず、エディタが閉じられるまでコマンドはブロックされます。
例えば、git commit を実行して VS Code が開いてメッセージを編集して保存し、そのタブを閉じるとコミットが実行されます(タブを閉じるまで Git は待機します)。
参考:
vim に戻す
vim に戻す場合は以下を実行します。
% git config --global core.editor vim
または、core.editor の設定を削除すればデフォルトに戻ります。
% git config --global --unset core.editor // デフォルトのテキストエディタの設定を削除
設定した値を削除
git config で追加した設定を削除するには、--unset オプションを使います。
% git config --global --unset キーの値
例えば、デフォルトのテキストエディタの設定を削除する場合は、「特定のキーの値」として core.editor を指定します。
まず、現在のテキストエディタの設定を確認します。
以下の例の場合は、core.editor(デフォルトのエディタ)に Emacs が設定されています。もし、何も設定されていない場合は、何も返されません(表示されません)。
% git config --global core.editor // core.editor に設定されている値を確認 emacs // Emacs に設定されている
また、設定は --list または -l オプションでリスト(一覧)表示させることもできます。
% git config --global -l // グローバル設定を一覧表示 user.name=foo user.email=foo@example.com init.defaultbranch=main core.editor=emacs // デフォルトのエディタに emacs が設定されている
以下を実行すると、デフォルトのテキストエディタの設定を削除します。
% git config --global --unset core.editor // デフォルトのテキストエディタの設定を削除
設定を一覧表示させると、設定が削除されいるのが確認できます。
% git config --global -l user.name=foo user.email=foo@example.com init.defaultbranch=main
設定のレベル(種類)
git の設定(git config)は、オプションでシステム全体(--system)、ユーザーの全リポジトリ(--global)、対象リポジトリのみ(--local)に分けて設定することができます。
--local はデフォルトなので指定を省略することができます。
通常、よく使うのはユーザー設定(--global)になります。
コマンドオプション | 適用範囲 | 設定ファイルの場所 |
---|---|---|
--system | システム上の全ユーザーの全リポジトリ | /usr/local/etc/gitconfig(インストールにより異なります) |
--global | 該当ユーザーの全リポジトリ | ~/.gitconfig(ユーザーのホームディレクトリ内) |
--local デフォルト | 設定したリポジトリ | .git/config(個々の Git リポジトリ内) |
優先順位
設定ファイルは system → global → local の順に読み込まれ、後から読んだ値がその前の値を上書きするので、local が最も優先され、system が最も優先順位が低くなります。
設定ファイル
git config コマンドに --global オプションを指定した場合、特定のユーザーに対する設定になります。
Mac の場合、--global オプションを指定した設定は ~/.gitconfig
(ユーザーのホームディレクトリの .gitconfig)に保存されます。
% cat ~/.gitconfig
//ユーザーの設定ファイルを表示
[user]
name = John Doe
email = john_doe@example.com
[init]
defaultBranch = maingit config コマンドに --global オプションを指定した設定は以下のコマンドでも確認でき、設定ファイル(~/.gitconfig)に保存されている内容が表示されます。
% git config --global --list user.name=John Doe user.email=john_doe@example.com init.defaultbranch=main
--global オプションを指定した特定のユーザーに対する設定以外にも、必要に応じてシステム全体の設定や個々のリポジトリ(プロジェクト)ごとの設定も可能で、それぞれの設定ファイルが存在します。
例えば、git init コマンドでプロジェクトを Git で初期化すると、リポジトリ(.git)が作成され、その中にプロジェクト固有の設定ファイル(.git/config)が作成されます。
プロジェクト固有の設定を登録したい場合は、そのディレクトリに移動して --global をつけずに設定するとその設定が .git/config に記述され、ユーザー設定より優先されます。
~/.gitconfig を編集
以下のコマンドを実行すると、デフォルトのエディタでユーザーの設定ファイル(~/.gitconfig)が開くので編集して、設定を変更することができます。
% git config --global -e
git config コマンドに -e または --edit オプションを指定して実行することで設定ファイルを編集することができます。
デフォルトのエディタが vim の場合は、上記を実行すると以下のように vim が起動して設定ファイル(~/.gitconfig)が開きます。
何もせずに終了するには :q
と入力後、return キーを押します。
デフォルトのエディタを VS Code に設定してある場合は、以下のように VS Code で設定ファイル(~/.gitconfig)が開きます。
必要に応じてファイルを編集後、保存して閉じれば、設定が反映されます。
※ この場合、設定ファイルを閉じるまで、Git は待機します。設定ファイルを閉じるとコマンドラインのプロンプトが戻ります。
関連項目:設定ファイルを編集
管理から除外するファイルを指定
Mac の .DS_Store など、Git で管理する必要のないファイルはグローバルに(ユーザー単位で) Git の管理から除外するように設定しておくと便利です。
~/.config/git/ignore というファイルを作成し、管理から除外するファイルを指定することで、それらのファイルを全てのプロジェクトのリポジトリで管理から除外することができます。以下がその方法です。
ユーザーのホームディレクトリの .config ディレクトリの中に git ディレクトリを作成します。
mkdir に -p オプションを指定すると、.config ディレクトリが作成されていない場合は、そのディレクトリも作成してくれます。
% mkdir -p ~/.config/git //.config/git ディレクトリを作成
.config/git の中に ignore という名前のファイルを作成し、無視するファイルなどを指定します。
この例では Mac で自動的に生成される .DS_Store というファイルを無視するように指定します。
% echo '.DS_Store' >> ~/.config/git/ignore
//ignore を作成し .DS_Store を記述上記ではリダイレクトで ignore ファイルに追記していますが、touch で ignore という名前のファイルを ~/.config/git/ に新規作成し、vim などで編集して記述することができます。
必要に応じて無視するファイルやディレクトリ、パターンを改行して(1行に1つずつ)追加することができます。記述方法は .gitignore と同じです。
.DS_Store .AppleDouble .LSOverride
プロジェクト単位での除外設定
特定のプロジェクトのディレクトリやファイルに対して除外設定をするには、そのプロジェクトのディレクトリに .gitignore という名前のファイルを作成して除外対象を記述します。
.gitignore を設置したディレクトリとその下位のディレクトリで、指定した除外設定が有効になります(詳細:Git の管理から除外する)。