GitとGitHubとは　簡単に理解しイチからMacに導入する

# Gitとは
## バージョン管理
様々なファイルの変更履歴を管理することをバージョン管理といい、バージョン管理を行うことによって、バグなどの修正やスムーズな開発などが可能になります。
バージョン管理を行なっていない場合、いつ、どのような変更を加えたのかが記録されないため、開発において何らかの問題が生じたときに、その原因を探して修正することが困難になります。
プログラマーが開発を行うときはもちろん、テキストデータやExcelファイルなど、多くの変更が加えられるような様々な作業に活用することができます。

## Git
Gitは上記のバージョン管理システムの一つです。Gitは分散型バージョン管理システムと言われ、集中型とは異なり、特定の開発場所で一元管理するのではなく、個々人の開発環境で管理を行います。それらを相互に連携することにより、データの変更などを反映させることができます。現在は分散型のバージョン管理が主流になっており、中でもGitが代表的なシステムとして使われています。

MacにはデフォルトでGitがインストールされています。ターミナルで下記コマンドを打つと、Gitのバージョン確認ができます。ターミナルは`command+space`でスポットライト検索を表示し、ターミナルと検索することで起動します。

```zsh
$ git --version
git version 2.24.3 (Apple Git-128)
```

以降で説明する最新版のGitのインストール作業を行なっていない場合、バージョンの末尾に(Apple Git-~)という表示がつきます。

## リポジトリ
バージョン管理がされるファイルとその変更履歴が保管される領域をリポジトリと呼びます。
Gitを用いた開発において、リポジトリには個人のパソコン上にあるローカルリポジトリとサーバー上にあるリモートリポジトリの二種類があります。ローカルリポジトリで作業を行い、それをリモートリポジトリに反映させる流れで開発を行います。

# GitHubとは
GitHubは、Gitを利用して、データを保存・公開することができるようにしたウェブサービスです。
リモートリポジトリとして活用することができる他にも、他者との共有機能なども豊富なことからチーム開発に広く用いられています。

# HomeBrewとは
Homebrew(ホームブリュー)とは、様々なソフトウェアなどの実行ファイルや設定ファイルなど(パッケージ)のインストール作業を一括管理するパッケージ管理システムのひとつです。複数のパッケージの依存関係などを管理し、インストールを円滑に進めるために便利です。
MacにはデフォルトでGitがインストールされていますが、バージョンが少し古いことがある、バージョンを簡単に変更できないなどのデメリットがあります。そのため、ここでは、Homebrewを用いてGitをインストールすることで、Gitのバージョン管理をしやすくします。

# 導入
導入の流れ

1. [HomeBrewのインストール](#1-homebrewのインストール)
1. [Gitのインストール](#2-gitのインストール)
1. [Githubの登録](#3-githubの登録)
1. [リポジトリの作成](#4-リポジトリの作成)

##  1. HomeBrewのインストール
まず、既にHomeBrewをインストールしていないかを確認してみましょう。

```zsh
$ brew -v
# 既にインストールされていればバージョンが表示される
Homebrew 2.5.8

# インストールされていなければエラー
zsh: command not found:brew
```
インストールされていなかった場合、以下の手順でHomeBrewをインストールしましょう。
まず、[HomeBrew](https://brew.sh/index_ja)にアクセスし、記載されているインストールコマンドをコピーし、macOSのターミナルに貼り付けEnterキーを押します。
![スクリーンショット 2021-10-26 11.20.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/932675/4f73f2fd-25c8-6356-fa71-f8f5cdc4a642.png)

`Press RETURN to continue or any other key to abort`と聞かれた場合はEnterを押します。
`Password:`と聞かれたときはMacのログインパスワードを入力します。しばらくインストール作業が進んだ後、`Installation Successful!`と表示されたらインストール完了です。
以下のコマンドで無事にインストールが完了したことを確認できます。

```zsh
$ brew doctor
# 以下の表示がされればインストール完了
Your system is ready to brew.
```


##  2. Gitのインストール
まず、HomeBrewを最新版にし、HomeBrewでGitがインストールされていないことを確認します。
HomeBrewをインストールした直後であればアップデートと確認は不要です。

```zsh
$ brew update

$ brew list
# HomeBrewでインストール済みのパッケージ一覧が表示される。
# gitが入っていないことを確認
```

Gitがインストールされていなければ、下記コマンドでGitをインストールします。

```zsh
$ brew install git
```

インストール後、下記コマンドでバージョン情報が表示されればインストール完了です。

```zsh
$ brew info git
git: stable 2.29.2 (bottled), HEAD
Distributed revision control system
...
```

### HomeBrewでインストールしたGitを利用可能にする
`brew install git`を実行しただけでは、Macにデフォルトで入っている古いGitが使われる状態になっています。
HomeBrewでインストールしたGitを利用できる状態にするためには、シェルにパスを通す必要があります。
シェルとは、ターミナルで様々なコマンドを実行してくれるプログラムのことで、Macではbashとzshの二種類があります。
ターミナルがbashかzshのどちらのシェルを用いているかの確認は、ターミナルの上部を見ると分かります。筆者はzshを使っています。
![bash_zsh.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/932675/57babcc9-e1fd-bd60-4717-e9f2b3b27121.png)

下記コマンドでbash_profile(またはzsh_profile)にパスを追記しパスを設定できます。

```zsh
# bashの場合
$ echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bash_profile

# zshの場合
$ echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.zshrc
```

パスを通した後、下記コマンドで反映させます。

```zsh
# bashの場合
$ source ~/.bash_profile

# zshの場合
$ source ~/.zshrc
```

これで最新のGitを使えるようになり、`git --version`でHomeBrewでインストールしたGitのバージョンが表示されるようになります。

```zsh
$ git --version
git version 2.29.2
```

以降は、`brew`コマンドを利用することでGitを簡単にアップデートすることができます。

```zsh
$ brew upgrade git
Warning: git 2.29.2 already installed
```

### Gitの初期設定
Gitを初めて使う場合は、下記コマンドで名前とメールアドレスの登録を行う必要があります。
登録したかどうかを忘れてしまった場合は、`cat ~/.gitconfig`で確認してみてください。

```zsh
# 下記コマンドの"自分の名前"と"自分のメールアドレス"を自分のものに置き換えて実行して下さい
$ git config --global user.name "自分の名前"
$ git config --global user.email "自分のメールアドレス"
```

下記コマンドを実行して、名前とメールアドレスが登録されていれば完了です。

```zsh
$ cat ~/.gitconfig
[user]
        name = ○○◯
        email = ○○○
...
```

## 3. GitHubの登録
[GitHub](https://github.co.jp)にアクセスして、ユーザー名、メールアドレス、パスワードを記入してアカウント作成を行います。ユーザー名は、GitHub上での表示名です。
![スクリーンショット 2021-10-26 21.50.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/932675/809c172f-1e16-4a68-6d1f-7f243c9d1695.png)
<img width= "500" alt="スクリーンショット 2021-10-26 21.47.08.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/932675/0dd9085a-0458-8020-da4e-45c98186454d.png">
先に進んでいくと、登録したメールアドレスに認証用メールが届くので、認証を行なって下さい。これでGitHubのアカウント作成は完了です。

## 4. リポジトリの作成
### リモートリポジトリの作成
[GitHub](https://github.co.jp)にアクセスして、リモートリポジトリを作成します。以下のNewという部分を押します。
![スクリーンショット 2021-10-26 22.24.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/932675/7b87aeec-8547-76f7-ec5a-c6b9867ba753.png)

リポジトリ作成画面に移るので、リポジトリの詳細を決めていきます。
Repository nameにはリポジトリの名前を記入します。
その下のDescriptionには何も記載しなくて大丈夫です。
PublicとPrivateという部分はリポジトリの種類を表します。

- Public: 誰でもリポジトリの中身を閲覧することができます。
- Private: 非公開となり、指定したユーザーしか閲覧することができません。

GitHubでは、2019年から無料でPrivateを作成することができるようになっています。
その下のInitialize this repository withという部分でオプションを指定できます。
基本的になくても構いませんが、他のユーザーに見せることを想定する場合にはREADMEファイルにチェックをつけておくことを推奨します。
READMEファイルとは、リポジトリに関する説明やコードの使い方などを記載したテキストファイルです。
最後に、一番下のCreate repositoryという部分を押すとリポジトリを作成できます。
![repository.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/932675/5fde686d-637f-9e89-c1be-aa57712dd2ce.png)


### ローカルリポジトリの作成
ローカルリポジトリの作成は、ターミナルでリポジトリとして管理したいディレクトリに移動した状態で、`git init`コマンドを実行することで行うことができます。
既存のディレクトリではなく新たに作成したディレクトリに移動する場合はディレクトリを作成してから下記手順を行って下さい。
まず、Finderを開き、所望のディレクトリの上で右クリックをして`option`キーを押したままにします。表示された「パス名をコピー」をクリックすることで、パス名を取得します。
![pass.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/932675/59d9df29-bae6-8bfe-ecef-5ce0f34ec828.png)

そして、下記コマンドで所望のディレクトリに移動し、ローカルリポジトリを作成します。


```zsh
$ cd "コピーしたパス名" # 所望のディレクトリに移動
$ git init # ローカルリポジトリとして初期化
```

これで、Gitを用いたファイル管理の準備が完了しました。
以降は、下記の記事で説明するGitHubを用いた開発方法によって作業を行なっていきます。