【初心者#2】バージョン管理 Git&Git hubの導入(2025)

複数エンジニアの共同開発には欠かせないソースコードのバージョン管理システム。
GitとGitHubを使えるように準備していきます。

# 0. はじめに
本記事では、以下の前提で、環境を構築していきます。

**OS：Mac OS Sequoia 15.4
パッケージ管理システム：Homebrew 4.5.0 ※インストール済み
バージョン管理システム(ローカル環境)：Git
バージョン管理システム(サーバー環境)：GitHub
接続方法：SSH接続**


# 1. Git(ローカル環境)を導入
ローカル環境でのバージョン管理システムであるGitをインストールします。
ローカルにGitがインストールされているかどうかを、以下のコマンドで確認しておきます。
```
% git --version
git version 2.39.5 (Apple Git-154)
```
デフォルトでApple Gitが搭載されていることがわかりました。
本環境では、パッケージ管理をHomebrewに一元化したいため、Apple-GitからHomebrewでインストールしたGitへの切り替えを行なっておきます。まず、brew installでGitをインストールします。
```
% brew install git
```
.zshrcでGitパスの設定を追加します。
```
#.zshrc
export PATH=/usr/local/bin/git:$PATH
```
sourceコマンドで上の設定変更を反映したのち、再度、Gitのバージョンを確認してみます。
```
% git --version
git version 2.49.0
```
Appleの文字が消え、HomebrewのGitに切り替わっていることが確認できました。

# 2. GitHub(サーバー環境)に登録
サーバー上でのバージョン管理システムであるGitHubのアカウントを作成します。アカウント作成はこちらから。
▶︎GitHub公式：https://github.com

# 3. GitとGitHub間のSSH接続を設定
ローカル環境とサーバー上の管理システムを同期できるよう、公開鍵・非公開鍵のペアを使って接続するSSH接続の準備をしていきます。
さて、SSH鍵はユーザの~/.sshディレクトリに置かれています。まずは、ローカルPCに.sshが存在するかどうかを調べます。

```
$ cd ~/.ssh 
cd: no such file or directory:/Users/username/.ssh
```
~/.sshディレクトリが存在していないことがわかりました。
この場合、~/.sshディレクトリを作成してください。次に、SSH鍵の生成が必要です。Mac OSの場合、以下の`ssh-keygen`コマンドを実行後、対話式プロンプトの指示に従って、ファイル名、任意のパスワードを2回入力して、SSH鍵を生成します。ここでは、生成するSSH鍵が、GitHub用の鍵だとわかるように、ファイル名をid_git_rsaとしておきます。

```
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key(/Users/(username)/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
```
これによって、SSH鍵が生成されます。
- id_git_rsa.pub：公開鍵(こちらの鍵をGitHubに渡します。)
- id_git_rsa：秘密鍵(公開してはいけない鍵)

最後に、GitHubのアカウントで、SettingからSSH keysの設定を開き、生成した公開鍵をコピー&ペーストして登録します。これでローカル(Git)とサーバー(GitHub)間のSSH接続の準備が整いました。

なお、SSH鍵の作成方法は公式でも詳細説明があったため、参考としてリンクを貼っておきます。

▶︎GitHub公式：https://docs.github.com/ja/authentication/connecting-to-github-with-ssh

# 4. Gitの初期設定
SSH接続を試みる前に、ローカル環境でGitの初期設定をします。

### ①SSH鍵の指定
先ほど生成したSSH鍵を、サーバー接続時に使う鍵として指定しておく必要があります。
これを、configファイルの中で指定することにします。configファイル=設定ファイルと覚えておけば問題ないでしょう。もう少し丁寧に言うと、configファイルは、ソフトウェアの動作の設定を定義するファイルで、主に変更する可能性の高い設定・パラメータを記述しておくもののようです。
具体的には、SSH鍵を作成した、~/.sshの配下にconfigという名前のファイルを作成し、以下のように記述をします。
```
＃config
Host github github.com
HostName github.com
IdentityFile ~/.ssh/id_git_rsa
User git
```
3行目で、github.comに接続するときに使うSSH鍵のパスを指定することで、先ほど生成したSSH鍵を使って接続することになります。

### ②GitHubの登録情報との紐付け
ローカルのGitに、GitHubの登録情報を紐付けてあげる必要があります。
以下のコマンドで、HitHubに登録したユーザー名とemailアドレスを紐付けます。
```
% git config --global user.name <user name>
% git config --global user.email <user email>
```
以下のコマンドを打って、登録したユーザー名、emailアドレスが表示されれば、正しく紐付けされたことが確認できます。
```
% git config user.name
% git config user.email
```
# 5. SSH接続確認
接続できるか確認していきます。以下のコマンドでSSH接続。
```
% ssh -T github
Enter passphrase for key '/Users/username/.ssh/id_git_rsa'
```
パスワードの入力が求められるため、鍵を生成した際に設定したパスワードを入力します。
```
Hi <user name>! You've successfully authenticated, but GitHub does not provide shell access.
```
これで無事、SSH接続が認証されたことが確認できました！

余談ですが、SSH接続をするたびに、毎回パスワードを入力する仕様に支障がある場合は、SSH鍵を生成する際にそもそもパスワードを設定しない、もしくは、SSH鍵をssh-agentに追加しておく、という手があるようです。

SSH鍵のssh-agentへの追加方法は以下のリンク先を参照しました。
▶︎ GitHub公式：https://docs.github.com/ja/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent

実際にGitを使って、バージョン管理をする方法については、またどこかでまとめをしたいと思います。

次回は、プログラムを書くためのPython環境を導入していきます！