
「GitHubって何?」「バージョン管理って難しそう…」と感じていませんか。
この記事ではGitHubの基本からリポジトリの作成、バージョン管理までを詳しく解説します。
初心者でもわかるよう、実際の操作手順やコマンド例を使って丁寧に説明しますので、安心して一歩を踏み出しましょう。
はじめに:GitHubって何?初心者の第一歩
GitHubとは
GitHubは、コードやプロジェクトを効率的に管理するためのクラウド型のサービスです。
プログラミングやソフトウェア開発においては、複数人が協力してプロジェクトを進めることが一般的ですが、その際に「誰がどの部分を変更したのか」「最新のコードはどれか」などを明確に管理することが求められます。
このようなことを実現できるのがGitHubです。
GitHubはバージョン管理システム「Git」を基盤に構築されています。
Gitはローカル(自分のPCなど)でコードの変更履歴を管理するツールですが、GitHubはそのGitをクラウド化し、チームメンバーや外部のコラボレーターとコードやプロジェクトを共有するためのプラットフォームを提供しています。
例えば、Gitが本棚に収納された本の状態や貸し出し記録を管理する「管理帳簿」だとすると、GitHubはその本棚全体を他の図書館や読者と共有し、共同で管理や利用を行うための「オンライン図書館」のような役割を果たします。
GitHubは単なるコードの保管場所ではありません。
コードをレビューするためのコメント機能や変更提案(プルリクエスト)、さらには自動化されたテストやデプロイ(本番環境への適用)の実行など、開発プロジェクトを効率的に進めるためのさまざまなツールを提供します。
そのため、個人プロジェクトだけでなく、大規模な企業やオープンソースコミュニティでも広く利用されています。
今回は、GitHubの基本的な使い方を学び、ローカルのGitとクラウドのGitHubの連携を体験してみましょう。
GitとGitHubの主な機能
- Gitが提供する機能
- コミット:自分が行った変更を記録して、後から確認できる。
- ブランチ:作業を分岐させて新しい試みを始めることができる。
- マージ:それぞれ分かれていた作業内容を1つにまとめる。
- GitHubならではの機能
- プルリクエスト:チームメンバーに変更内容を確認してもらい、フィードバックを受ける。
- コードレビュー:他の人が記述したコードにコメントを付けて、意見やアドバイスを交換できる。
GitHubは、ただコードを管理するだけでなく、チームで意見を出し合いながらプロジェクトを進めるための強力なツールなのです。
リポジトリとは
リポジトリの役割
リポジトリとは、プロジェクト全体を管理するための作業スペースのことです。イメージとしては、「プロジェクト専用のフォルダ」であり、その中にコード、設定ファイル、画像など、プロジェクトに必要なすべてのファイルが整理されています。それに加えて、リポジトリにはコードの変更履歴や誰がどんな変更を行ったのかといった情報も記録されます。
Gitを使うことで、リポジトリ内で行われたすべての変更が追跡されるため、以前の状態に戻したり、特定の変更内容を確認したりすることが簡単にできます。また、GitHubを活用すれば、このリポジトリをクラウド上に保存し、他のチームメンバーと共有することができます。
たとえば、学校のプロジェクトでリポジトリを使うと、次のようなメリットがあります。
- 全員が同じ最新のファイルにアクセスできる。
- 誰がどの部分を修正したのかが分かる。
- 作業ミスがあった場合でも、簡単に以前の状態に戻せる。
リポジトリの種類
Gitでは、リポジトリが保存される場所によって2つの種類に分けられます。
- ローカルリポジトリ
ローカルリポジトリは、自分のPCに保存されるリポジトリです。Gitを使うと、PC内の指定したフォルダがローカルリポジトリになります。ここでは、以下のような操作が可能です。- 自分の作業内容を履歴として記録(コミット)。
- 他のブランチと変更を比較。
- 作業中のコードを一時的に保存(スタッシュ)。
- リモートリポジトリ
リモートリポジトリは、GitHubのようなクラウドサービス上に保存されるリポジトリです。ローカルリポジトリとは異なり、以下のような特徴があります。- 複数のメンバーと共有可能:誰でも同じリポジトリにアクセスできるように設定できます。
- クラウド上に保存:作業内容が安全に保存されるため、PCのトラブル時でもデータを失いません。
- プルリクエストやレビュー:他のメンバーに変更内容を確認してもらい、フィードバックを受けられます。
たとえば、以下のような操作でローカルとリモートのリポジトリを連携させます。 - プッシュ(push):ローカルリポジトリの変更内容をリモートリポジトリに送る。
- プル(pull):リモートリポジトリの最新データをローカルに取り込む。
- クローン(clone):リモートリポジトリをローカルに複製して作業を開始。
ローカルリポジトリとリモートリポジトリを連携することで、個人の作業とチーム全体の作業をスムーズに進められます。
たとえば、下記のようなフローを通じて、チームでの共同作業が効率化されます。
- 個人でローカルリポジトリにコードを書いてコミット。
- 作業がある程度進んだら、リモートリポジトリにプッシュして他のメンバーと共有。
- 他のメンバーが自分の変更内容を確認し、必要に応じて修正を提案。
リポジトリはプロジェクトの中心となる場所です。個人作業でもチームでの開発でも、その重要性は変わりません。GitとGitHubを上手に使いこなすことで、よりスムーズにプロジェクトを進められるようになります。
実践!リポジトリを作成してみよう
GitHubアカウントの作成
- GitHub公式サイト にアクセスし、アカウントを作成
- メールアドレス、パスワード、ユーザ名を入力
- 指示に従って登録を完了
新しいリポジトリの作成
- GitHubにログインし、「New」ボタンをクリック
- リポジトリ名を入力
- 「Public」または「Private」を選択し、「Create Repository」をクリック
- リポジトリが作成されたことを確認
ローカルのGitと連携をさせる
リポジトリが作成できたら、ローカルでGitを使い、GitHubに連携させる準備をします。
以下の手順では、Gitがインストール済みであることを前提とします。まだインストールしていない場合は、Git公式サイトからインストールしてください。
GitHubとSSH接続をする
PCとGitHubの間で安全にデータをやりとりするため、認証手続きが必要になります。
認証手続きには公開鍵認証というSSHの認証方法を利用します。
公開鍵認証やSSHについて細かな説明は割愛します。
詳細については、公式ドキュメントのSSH を使用した GitHub への接続を参考にしてください。
公開鍵認証方式の流れ
公開鍵認証方式の流れは以下の通りです。
【認証方法】
- クライアント側で、秘密鍵と公開鍵のペアを作成し、公開鍵をサーバ側に配置する
- クライアントからサーバへアクセスを要求する
- サーバは公開鍵を使って暗号化した情報をクライアントへ渡す
- クライアントは届いた暗号を秘密鍵で復号化し、その情報をサーバへ送り返す
- サーバにて情報が一致していることを確認し、認証終了
今回は「サーバ」に該当するのがGitHubになります。
秘密鍵と公開鍵のペアを作成
以下の手順では、macOSまたはWSLが使えるWindowsのターミナルで操作することを前提とします。Windowsをお使いでまだWSLの使い方がわからない場合は、WSL を使用して Windows に Linux をインストールする方法から設定を確認してください。
秘密鍵と公開鍵のペアを作成します。ターミナルで以下のコマンドを実行してください。
”your_email@example.com”には、GitHubに登録したご自身のメールアドレスを当てはめてください。
$ ssh-keygen -t rsa -C “your_email@example.com”
通常、ssh-keygen コマンドを実行すると、自動的に.sshディレクトリが作成されます。
出力例
$ ssh-keygen -t rsa -C “your_email@example.com”
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/user/.ssh/id_rsa):
作成した鍵の保存先を聞かれています。そのままEnterを入力してください。
続いてパスフレーズの入力を求められます。GitHubアカウントのパスワードとは別のものを設定してください。
確認のため、2回入力が必要です。また、セキュリティのため入力しても画面に表示されません。
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
ここまでの作業で、ホームディレクトリにある.sshというディレクトリの中に、秘密鍵と公開鍵のペアが作成されました。
.sshディレクトリは、ユーザのホームディレクトリに存在する隠しディレクトリで、SSH(Secure Shell)関連のファイルを保存するために存在します。ここには、SSHキー(秘密鍵と公開鍵)、SSH設定ファイル、既知のホストファイルなどが格納されます。
.sshディレクトリの確認をするためには、以下のコマンドを実行します。
$ ls -la ~/.ssh
実行すると下記のように id_rsa(秘密鍵)とid_rsa.pub(公開鍵)が表示されます。
-rw——- 1 username group 1679 Jun 14 10:00 id_rsa
-rw-r–r– 1 username group 400 Jun 14 10:00 id_rsa.pub
公開鍵の登録
公開鍵をGitHubに登録します。
公開鍵が保存されているファイルid_rsa.pubの中身を表示させてコピーします。
$ cat ~/.ssh/id_rsa.pub
出力例
$ cat ~/.ssh/id_rsa.pub
ssh-rsa BBFNDKDKNzaC1yc2・(文字が長いので省略)・・・YVjCCDvXOLUfTetp your_email@example.com
上記のうち、ssh-rsaから、自分のメールアドレス末尾までをコピーしてください。
コピーした公開鍵を、GitHubに設定します。
GitHubのヘッダー右上の自分の画像をクリックし、さらに「Settings」をクリックします。
「SSH and GPG keys」をクリックし、さらに左側にある「New SSH Key」をクリックします。
Titleには、自分の端末名など、何を記述してもよいですが、Keyの中には先ほどコピーしたものを貼り付けてください。また、「Key Type」は「Authentication Key」を選んでください。
【注意】
貼り付けた公開鍵が、ssh-rsaから始まり、自分のメールアドレスで終わっていることを確認してください。貼り付けを間違えると、自分のPCとGitHub間の接続ができなくなります。
「Add SSH key」をクリックして登録完了です。
自分のPCとGitHub間の接続確認
接続確認コマンドを実行します。
$ ssh -T git@github.com
すると、以下のようにYes、あるいはNoの入力が求められる場合がありますので、その場合はYesを入力してエンターキーを押してください。
Please type ‘yes’, ‘no’ or the fingerprint:
パスワードの入力が求められるので、秘密鍵と公開鍵のペアを作成した際に設定したパスワードを入力し、エンターキーを押します。
Enter passphrase for key ‘/Users/ユーザ名/.ssh/id_rsa’:
下記のように表示されれば接続成功です。
Hi Username! You’ve successfully authenticated, but GitHub does not provide shell access.
リポジトリからローカルにクローンする手順
以下の手順では、Gitがインストール済みであることを前提とします。まだインストールしていない場合は、Git公式サイトからインストールしてください。
「クローン」とは、リモートリポジトリ(今回の場合はGitHub上のリポジトリ)を自分のパソコン(ローカル環境)にコピーして作業を始めることです。この操作により、リポジトリのすべてのファイルや履歴がローカル環境に取り込まれます。
(1) ターミナルやコマンドプロンプトを開く
MacやLinuxでは「ターミナル」、Windowsでは「GitBash」を開きます。
(2) 作業フォルダを選ぶ
ここでは、workspaceという名前のフォルダを例に解説します。ターミナルで以下のようにして移動します。
$ cd workspace
(3) クローンコマンドを実行
次に、クローン操作を実行します。以下のコマンドをターミナルに入力してEnterを押します。
$ git clone https://github.com/norotime/studying_tech.git
- git clone:クローン操作を行うコマンド
- https://github.com/norotime/studying_tech.git :クローン元のリポジトリURL
- norotime は、本記事の執筆者のGitHubのユーザ名です。あなたのユーザで作成したリポジトリは、あなたのユーザ名を含んだURLになるため、それをお使いください。
- norotime は、本記事の執筆者のGitHubのユーザ名です。あなたのユーザで作成したリポジトリは、あなたのユーザ名を含んだURLになるため、それをお使いください。
(4) クローンが成功したか確認
クローンが成功すると、現在のフォルダに「studying_tech」というフォルダが作成され、その中にリポジトリの内容がコピーされています。Linuxコマンドまたはフォルダからの目視で確認をしましょう。
$ ls
クローンしたリポジトリに移動するには以下のコマンドを入力します。
$ cd studying_tech
(5) リポジトリの初期状態を確認
リポジトリの状態を確認するため、以下のコマンドを実行してみましょう。
$ git status
これにより、リモートリポジトリと連携した状態でローカル環境での作業を開始できます。
注意点
- Gitの設定確認
クローンを行う前に、自分のGitのユーザ情報が設定されているか確認しましょう。以下のコマンドを実行して確認・設定できます。
$ git config –global user.name “あなたの名前”
$ git config –global user.email “あなたのメールアドレス”
- リポジトリに書き込む権限
リポジトリに変更をプッシュする場合は、GitHubのアカウント情報(ユーザ名やトークン)が必要になります。
まとめ:GitHubを使いこなしてスキルを一歩前へ
GitHubは初心者でも使いやすいツールですが、最初は戸惑うこともあるでしょう。
一つずつ手順を進め、リポジトリの作成やバージョン管理の基本を理解すれば、プログラミングの効率が大きく向上します。
- リポジトリはコードを保存・管理する場所
- バージョン管理で過去の状態に戻れる
- コマンド操作を少しずつ練習し、GitHubを使いこなしましょう。
新しい技術は最初が肝心です。GitHubを活用して、あなたのスキルを一歩ずつ高めていきましょう。