Skip to content

GitHub

1. GitHub とは?

  • Git のリモートリポジトリを提供するWebサービスです。
  • オンライン上でコードを共有・公開・一元管理でき、世界中の開発者が利用しています。

GitHubはGitそのものではありません。 Gitで管理しているリポジトリをインターネット上で共有する場所です。

  • Git: ローカル(自分のPC)での履歴管理ツール
  • GitHub: 公開・共有・チーム開発のためのオンラインプラットフォーム

2. よく出てくる用語解説

用語意味・役割
Push / Pull自分のPCで書いたコードをGitHubに送り(Push)、最新版を取り込む(Pull)。
Pull Request (PR)自分が修正したコードを「本体(mainなど)に取り込んでください」と依頼する機能。コードレビューの場になる。
Issuesバグ報告、機能要望、タスクなどを掲示板形式で管理する機能。ToDoリストとしても使える。
GitHub ActionsコードをPushした瞬間に、自動でテストを行ったり、サーバーへデプロイしたりする自動化機能。
GitHub PagesHTML/CSS/JSファイルを置くだけで、無料でWebサイトとして世界に公開できる機能。

3. リポジトリ作成

1. アカウント登録

GitHub公式サイト (https://github.com) からアカウントを作成します。

2. リポジトリの公開設定

GitHub上で新しくリポジトリを作る際、公開範囲を選べます。

  • Public(パブリック): 世界中の誰でもコードを見ることができる(OSSやポートフォリオに最適)。
  • Private(プライベート): 自分と、自分が許可したユーザーだけが見ることができる(非公開プロジェクト用)。

4. 認証方法:HTTPS と SSH

GitHubのリポジトリと通信する(Push/Pullなど)には、認証が必要です。

HTTPS通信(基本)

セキュリティの観点から現在はパスワードの代わりにパーソナルアクセストークンを発行して入力する必要があります。トークンの有効期限切れの際にはユーザー名とパーソナルアクセストークンの入力を再度求められます。

SSH通信(推奨)

公開鍵認証という仕組みを使います。最初の一回設定してしまえば勝手に認証が通る状態になります。

  • メリット: 一度PCに秘密鍵、GitHubに公開鍵をセットしてしまえば、毎回パスワードやトークンを入力する手間が省け、かつ安全に通信できます。
  • 設定の流れ: ターミナルで ssh-keygen コマンドを使って鍵のペアを作成し、生成された公開鍵の中身をGitHubの「Settings」>「SSH and GPG keys」に登録します。

WindowsでGitとSSHキーを使ってGitHubを安全に使う方法

5. GitHubを使ったGit連携

ローカルで作成したリポジトリをGitHubにアップロードする

ローカルPCで作成したプロジェクトを、新しくGitHubで管理し始める場合の手順です。

前提条件

  • GitHub上で空のリポジトリを作成し、そのURL(例: https://github.com/user/repo.git)を取得していること。
  • ローカルディレクトリで git init と最初のコミット(git commit)が完了していること。

リモートリポジトリ(GitHub)の登録

ローカルのGitに対して、「origin」という名前でGitHubのURLを登録します。

bash
git remote add origin <GitHubで作成したリポジトリのURL>

GitHubへのプッシュ(送信)

ローカルの main ブランチをGitHubへ送信します。-u オプションをつけることで、次回以降は git push だけで送信できるようになります。

bash
git push -u origin main

他の人のリポジトリを扱う(共同開発・コントリビュート)

他者のリポジトリを扱う場合、自分にWrite権限があるかどうかで手順が変わります。

パターンA:Write権限がある場合(チーム開発など)

チームの共有リポジトリなど、直接Pushすることが許可されている場合の手順です。

1. リポジトリのクローン

リモートのリポジトリを自分のローカルPCにダウンロードします。

bash
git clone <対象リポジトリのURL>
cd <クローンしたディレクトリ>

2. 作業用ブランチの作成と切り替え

プロジェクトのルールに従い、作業用のブランチを作成して移動します。

bash
git switch -c <新しいブランチ>

3. 変更のコミット

コードの追加や修正を行った後、変更をステージングしてコミットします。

bash
git add .
git commit -m "変更内容を簡潔に書く"

4. 作業ブランチをリモートにプッシュ

自分の作業ブランチをGitHubへ送信します。

bash
git push -u origin <新しいブランチ>

5. Pull Request(PR)の作成

GitHubのブラウザ画面を開き、プッシュしたブランチから main ブランチへ向けてPull Requestを作成し、マージを依頼します。


パターンB:Write権限がない場合

オープンソースプロジェクト(OSS)への貢献など、直接リポジトリに変更をプッシュできない場合の手順です。

1. リポジトリをForkする

GitHub上の対象リポジトリのページ右上の Fork ボタンを押し、自分のGitHubアカウントにリポジトリをコピーします。

2. Forkした自分のリポジトリをクローン

自分自身のアカウントにコピーされたリポジトリのURL を使用してクローンします。

bash
git clone <Forkした自分のリポジトリのURL>
cd <クローンしたディレクトリ>

本家リポジトリの更新を取り込めるように、本家のURLも登録しておくと便利です。

bash
git remote add upstream <本家リポジトリのURL>

3. 作業用ブランチの作成と切り替え

変更を加えるためのブランチを作成します。

bash
git switch -c <新しいブランチ>

4. 変更のコミット

コードを修正・追加し、コミットします。

bash
git add .
git commit -m "コミットメッセージ"

5. 自分のリモートリポジトリにプッシュ

Forkした自分のGitHubリポジトリに変更を送信します。

bash
git push -u origin <新しいブランチ>

6. 本家へ向けてPull Requestの作成

GitHubの画面で自分のForkしたリポジトリを開くと、「Compare & pull request」というボタンが表示されます。これを使用して、自分のリポジトリの作業ブランチから本家リポジトリの main ブランチへ向けてPull Requestを作成します。

6. Pull Request

チーム開発やOSS開発において最も重要な機能です。「私の書いたこのコードを、元のプロジェクトにマージさせてください」という提案と依頼を行います。

一般的な流れ:

  1. 新しいブランチを切ってコードを書く。
  2. GitHubにそのブランチをPushする。
  3. GitHub上でPull Requestを作成する。
  4. チームメンバーがコードを見てレビューをする。
  5. 問題なければ、管理者がmainブランチにマージする。

7. BranchとForkの違い

どちらも元のコードから分岐させる点では同じですが、誰のリポジトリで作業するかが異なります。

BranchFork
場所同じリポジトリ内別のリポジトリ(自分のアカウントに丸ごとコピー)
権限元のリポジトリの編集権限が必要元の編集権限は不要(誰のコードでもコピー可能)
用途チーム開発での機能分担、自分の開発の整理オープンソース(他人のプロジェクト)への貢献、独立した派生アプリの作成

8. GitHub CLI (gh コマンド) について

ブラウザを開かなくても、ターミナルから直接GitHubの操作ができる公式ツールです。

できることの例

ターミナルから直接GitHub上にリポジトリを新規作成する。

bash
gh repo create

ターミナルから直接プルリクエストを作成する。

bash
gh pr create

現在のIssue一覧をターミナルに表示する。

bash
gh issue list

導入法

インストール(Windows)

bash
winget install --id GitHub.cli

最初にやる設定

bash
gh auth login