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の間で安全な通信ができるようになります。