【macOS版】Homebrewを使ってgitをインストール

<!-- 【macOS版】Homebrewを使ってgitをインストール.md -->

# はじめに
gitをインストールする方法は他にもありますが、今回はHomebrewを使ってgitのインストールを行います。Homebrewはgitのバージョン管理や拡張機能のインストールなどプログラミング言語の環境構築等によく使われるツールです。
今回はHomebrewを使ったgitのインストール方法を紹介しますので、Homebrewをまだインストールしていない方は[【macOS版】初心者でもわかる！Homebrewのインストール手順を徹底解説](https://qiita.com/inakuuun/items/431918811c351e46e3bc)を参考に先にインストールを済ませてください。

## gitが自身のPC上に存在するか確認
gitはMacにデフォルトでインストールされていることもあるため、まずはgitが自身のPC上にインストールされているかをターミナルで`which git`コマンドを実行して確認します。

```
# gitがPC上に存在するか確認するコマンド
%which git

# 出力結果(インストール済み)
# gitコマンドを操作するためのプログラムが格納されたパスが表示される
/usr/bin/git
```

既にインストール済みの方は`git version`コマンドでgitのバージョンを確認しましょう。
```
# gitのバージョン確認コマンド
%git version

# 出力結果(現在のgitのバージョン)
# macにデフォルトで搭載されているgitのバージョンが表示される
git version 2.24.3 (Apple Git-128)
```

バージョンの末尾に、（Apple Git-xxx）と付くのがMacにデフォルトで入っているgitです。

既にインストール済みの方はgitを操作するプログラム格納先のパスが表示されますが、
インストールされていない方は以下のように何も出力されません。
```
# gitがPC上に存在するか確認するコマンド
%which git

# 出力結果(未インストール)
# 特に何も表示されない
% 
```

# Homebrewを使ったgitのインストール
Homebrewを使ったgitのインストール自体はとても簡単です。
`brew install git`コマンドを実行してgitをインストールしましょう。

以下のように「自分のユーザ名%」という状態になったらインストールが完了状態になっています。
```
%brew install git
Running `brew update --auto-update`...
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).

You have 15 outdated formulae and 2 outdated casks installed.
You can upgrade them with brew upgrade
or list them with brew outdated.

==> Fetching git
==> Downloading https://ghcr.io/v2/homebrew/core/git/manifests/2.39.0
Already downloaded: /Users/inamotokouki/Library/Caches/Homebrew/downloads/636072c249a3470615051e25b11bd19d0371cee8acc2673db9a6fb19d78c8215--git-2.39.0.bottle_manifest.json
==> Downloading https://ghcr.io/v2/homebrew/core/git/blobs/sha256:c97012f77d833b2ef076557d3d042108c49f4e15207f3304f8e79e9bc0d2d4e6
Already downloaded: /Users/inamotokouki/Library/Caches/Homebrew/downloads/3c7ace6a84af0925032fb34dc4040beadb29ac010a4d8c6ea7e044aceb4b2f41--git--2.39.0.monterey.bottle.tar.gz
==> Pouring git--2.39.0.monterey.bottle.tar.gz
==> Caveats
The Tcl/Tk GUIs (e.g. gitk, git-gui) are now in the `git-gui` formula.
Subversion interoperability (git-svn) is now in the `git-svn` formula.

Bash completion has been installed to:
  /usr/local/etc/bash_completion.d
==> Summary
# homebrewでインストールしたgitのバージョン
🍺  /usr/local/Cellar/git/2.39.0: 1,607 files, 47.5MB
==> Running `brew cleanup git`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).

# 以下の状態になったらインストール完了
(base) 自分のユーザ名%
```
この状態で、ちゃんとインストールがされているか`which git`コマンドで確認します。
gitを操作するためのプログラムが格納されたパスが表示されたらインストール済みです。
```
# gitがPC上に存在するか確認するコマンド
%which git

# 出力結果(インストール済み)
# gitコマンドを操作するためのプログラムが格納されたパスが表示される
/usr/local/bin/git
```

続いて、使用するgitのパスがしっかりと通っているか確認します。
`git version`コマンドを実行してバージョンを確認してみましょう。
```
# gitのバージョン確認コマンド
%git version

# 出力結果(現在のgitのバージョン)
# インストールしたgitのバージョンと一致していればOK
git version 2.39.0
```

インストールしたgitのバージョンが一致している場合は作業終了です。

しかし、元々デフォルトでgitがインストールされていた方は以下のようにgitのバージョンが、デフォルトの状態かなと思います。gitのバージョンがデフォルト状態の方は続きを読み進めていってください。
```
# gitのバージョン確認コマンド
$git version

# 出力結果(gitの旧バージョン)
# macにデフォルトで搭載されているgitのバージョン
git version 2.24.3 (Apple Git-128)
```

macにデフォルトで搭載されているgitだと、バージョンの末尾に(Apple Git-xxx)といった文字列が表示されます。この場合gitのパスがしっかり通っていないため、「パスを通す」という作業を行う必要があります。

# gitのパスを通す
現在、「デフォルトで搭載されているgit」と、「Homebrewでインストールしたgit」の2つのgitがPC上に存在している状態です。どのgitを使うかを指定するために「パスを通す」必要があります。つまり、使用するgitのパスをシェルというプログラムを介してコンピュータに教えてあげなければなりません。

## シェルってなに？
ざっくり説明すると、シェルとはコマンドをもとにコンピュータへ指令を出すプログラムです。
ターミナルでコマンドを入力して指令を出したり、専用のファイルにあらかじめコマンドを記述して、PC起動時などに自動で指令を出すといったことができます。

## 使用しているシェルを確認
シェルは色々な種類がありますが、macでデフォルトで使用されているシェルは主にzshとbashの2つが挙げられます。`echo $SHELL`コマンドで現在使用しているシェルを特定します。

```
# 現在使用しているシェルを表示するコマンド
$echo $SHELL

# 出力結果(zshを利用している場合)
/bin/zsh

# 出力結果(bashを利用している場合)
/bin/bash
```

## zsh(ゼットシェル)を利用している場合
`vi`コマンドで.zshrcファイルを開きます。
```
$vi ~/.zshrc
```
### bash(バッシュ)を利用している場合
`vi`コマンドで.bash_profileファイルを開きます。
```
$vi ~/.bash_profile
```

※編集でミスるとちょっとめんどくさいことになるのでここからは慎重に手順通り進めてください。

**_ファイルを開いている状態でiキーを押してインサートモードにする_**

インサートモードにするとファイルの中身を編集することができます。
```
# iキーを押すとこの状態になります

~
-- INSERT --
```

**_パスを指定するコマンドを記入する_**

インサートモードで`export PATH=/usr/local/bin/git:$PATH`コマンドをコメントと一緒に記入してください。
※補足：
「PATH=witch gitコマンドで確認したgitパス:$PATH」と記載することで、今回インストールしたgitを使用するということを定義します。

```
# >>> git >>>
# パスを通す
export PATH=/usr/local/bin/git:$PATH
# <<< git <<<


~
-- INSERT --
```

**_インサートモードを終了する_**

`erc`(エスケープキー)を押すと下に出ているINSERTが消えると思います。

`[before]`
```
# >>> git >>>
# パスを通す
export PATH=/usr/local/bin/git:$PATH
# <<< git <<<


~
-- INSERT --
```

`erc`を押下

`[after]`
```
# >>> git >>>
# パスを通す
export PATH=/usr/local/bin/git:$PATH
# <<< git <<<


~
```

**_`:wq`で変更を保存する_**

`erc`を押すとINSERTが消え、`：`を入力するとカーソルが一番下にくるので、`:`の後に`wq`を入力し、Enterで実行してください。
```
# >>> git >>>
# パスを通す
export PATH=/usr/local/bin/git:$PATH
# <<< git <<<


~
:wq
```

**_変更内容を確認_**

`vi`コマンドで先ほど設定したファイルを開いて内容を確認します。

```

$vi ~/設定ファイル
```

※編集は行わないでください。
```
# >>> git >>>
# パスを通す
export PATH=/usr/local/bin/git:$PATH
# <<< git <<<


~
```

**_`:q`で何もせず終了_**

※ファイルの変更がない場合は`:q`で終了しないとエラーになるので気をつけてください。

エラー中にウィンドウを閉じてしまうと少しめんどくさくなるので慎重に操作しましょう。
```
# >>> git >>>
# パスを通す
export PATH=/usr/local/bin/git:$PATH
# <<< git <<<


~
:q
# このコマンドで抜けられない場合は↓のコマンドを実行してください
```

**_万が一間違えて編集してしまった場合（`:q!`で変更を保存せずに終了する）_**

```
# >>> git >>>
# パスを通す
export PATH=/usr/local/bin/git:$PATH
# <<< git <<<


~
:q!
```
編集をしていない場合は`:q`で抜けないとダメです。

## 設定を反映させる
ターミナルを再起動後、以下のコマンドで設定を反映させてください
```
# zsh(ゼットシェル)の場合
source ~/.zshrc

# bash(バッシュ)の場合
source ~/.bashrc
```

## 参照しているgitを確認する
```
# gitのバージョンを確認
%git version

# OK
git version 2.39.0
```
バージョンが確認できればHomebrewを使ったgitのインストールは完了です。お疲れ様でした。