現在Laravelの教材を鋭意制作中です!完成まで今しばらくお待ちください

#5 GitHubについて【Blog】

GitHubってよく聞くけど実際何なのか、最初はイメージがつきにくいですよね。

ここではLaravelを学ぶ前提で、GitHubの基本をわかりやすく整理していきます。

GitとGitHubの違い

まず理解しておきたいのはGitとGitHubの関係です。

Gitはバージョン管理システムで、ファイルの変更履歴を記録する仕組みですが、GitHubはそのGitをインターネット上で使いやすくするサービスです。

たとえばローカルでGitを使ってファイルを管理している場合、履歴は自分のパソコンにしか残りません。

しかし、GitHubを使うとその履歴をクラウドに保存でき、他の人と共有したり共同作業が可能になります。

リポジトリとは何か

GitHubを使う上で必ず出てくる言葉がリポジトリです。

リポジトリとはプロジェクトを保存する場所のことで、Laravelのプロジェクトを作ったら、その一式をリポジトリにまとめて管理します。

ファイルやフォルダの状態を記録し、過去の状態に戻したり、他の人と共有したりするための単位になります。

前章にて、自分のパソコンに保存されるローカルリポジトリと、GitHubのようなサービス上に保存されるリモートリポジトリの2種類がある、と解説しましたが、さらにリモートリポジトリは2種類に分けることができます。

パブリックリポジトリとプライベートリポジトリ

GitHub上のリモートリポジトリにはさらに分かれて二種類あります。

誰でも見られるパブリックリポジトリと、自分やチームだけが見られるプライベートリポジトリです。

学習用であればパブリックでも問題ありませんが、業務や個人情報を含む場合はプライベートにする必要があります。

SSHキーとは何か

SSHキーはGitHubと自分のPCを安全に接続するための「鍵」です。パスワードを毎回入力する代わりに、公開鍵と秘密鍵のペアを使って認証します。

なぜSSHキーが必要なのか

HTTPSでも接続できますが、その場合は毎回ユーザー名やパスワードを入力する必要があります。SSHキーを使えば一度設定するだけで安全に接続でき、作業効率が上がります。

SSHキーの仕組み

SSHキーは「公開鍵」と「秘密鍵」の2つで成り立っています。公開鍵はGitHubに登録し、秘密鍵は自分のPCに保存します。この2つがペアになっていることで、本人確認が自動で行われます。

SSHキーの作成例

実際にSSHキーを作成するには以下のコマンドを使います。

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

このコードはRSA方式で4096ビットの鍵を生成する例です。-CオプションにはGitHubに登録しているメールアドレスを指定します。

公開鍵と秘密鍵の保存場所

生成された鍵は通常、~/.ssh/フォルダに保存されます。id_rsaが秘密鍵、id_rsa.pubが公開鍵です。秘密鍵は絶対に他人に渡してはいけません。

GitHubに公開鍵を登録する流れ

公開鍵の内容をコピーしてGitHubの設定画面に登録します。これにより、自分のPCとGitHubの間で安全な通信ができるようになります。