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 Pages | HTML/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を登録します。
git remote add origin <GitHubで作成したリポジトリのURL>GitHubへのプッシュ(送信)
ローカルの main ブランチをGitHubへ送信します。-u オプションをつけることで、次回以降は git push だけで送信できるようになります。
git push -u origin main他の人のリポジトリを扱う(共同開発・コントリビュート)
他者のリポジトリを扱う場合、自分にWrite権限があるかどうかで手順が変わります。
パターンA:Write権限がある場合(チーム開発など)
チームの共有リポジトリなど、直接Pushすることが許可されている場合の手順です。
1. リポジトリのクローン
リモートのリポジトリを自分のローカルPCにダウンロードします。
git clone <対象リポジトリのURL>
cd <クローンしたディレクトリ名>2. 作業用ブランチの作成と切り替え
プロジェクトのルールに従い、作業用のブランチを作成して移動します。
git switch -c <新しいブランチ名>3. 変更のコミット
コードの追加や修正を行った後、変更をステージングしてコミットします。
git add .
git commit -m "変更内容を簡潔に書く"4. 作業ブランチをリモートにプッシュ
自分の作業ブランチをGitHubへ送信します。
git push -u origin <新しいブランチ名>5. Pull Request(PR)の作成
GitHubのブラウザ画面を開き、プッシュしたブランチから main ブランチへ向けてPull Requestを作成し、マージを依頼します。
パターンB:Write権限がない場合
オープンソースプロジェクト(OSS)への貢献など、直接リポジトリに変更をプッシュできない場合の手順です。
1. リポジトリをForkする
GitHub上の対象リポジトリのページ右上の Fork ボタンを押し、自分のGitHubアカウントにリポジトリをコピーします。
2. Forkした自分のリポジトリをクローン
自分自身のアカウントにコピーされたリポジトリのURL を使用してクローンします。
git clone <Forkした自分のリポジトリのURL>
cd <クローンしたディレクトリ名>本家リポジトリの更新を取り込めるように、本家のURLも登録しておくと便利です。
git remote add upstream <本家リポジトリのURL>3. 作業用ブランチの作成と切り替え
変更を加えるためのブランチを作成します。
git switch -c <新しいブランチ名>4. 変更のコミット
コードを修正・追加し、コミットします。
git add .
git commit -m "コミットメッセージ"5. 自分のリモートリポジトリにプッシュ
Forkした自分のGitHubリポジトリに変更を送信します。
git push -u origin <新しいブランチ名>6. 本家へ向けてPull Requestの作成
GitHubの画面で自分のForkしたリポジトリを開くと、「Compare & pull request」というボタンが表示されます。これを使用して、自分のリポジトリの作業ブランチから本家リポジトリの main ブランチへ向けてPull Requestを作成します。
6. Pull Request
チーム開発やOSS開発において最も重要な機能です。「私の書いたこのコードを、元のプロジェクトにマージさせてください」という提案と依頼を行います。
一般的な流れ:
- 新しいブランチを切ってコードを書く。
- GitHubにそのブランチをPushする。
- GitHub上でPull Requestを作成する。
- チームメンバーがコードを見てレビューをする。
- 問題なければ、管理者がmainブランチにマージする。
7. BranchとForkの違い
どちらも元のコードから分岐させる点では同じですが、誰のリポジトリで作業するかが異なります。
| Branch | Fork | |
|---|---|---|
| 場所 | 同じリポジトリ内 | 別のリポジトリ(自分のアカウントに丸ごとコピー) |
| 権限 | 元のリポジトリの編集権限が必要 | 元の編集権限は不要(誰のコードでもコピー可能) |
| 用途 | チーム開発での機能分担、自分の開発の整理 | オープンソース(他人のプロジェクト)への貢献、独立した派生アプリの作成 |
8. GitHub CLI (gh コマンド) について
ブラウザを開かなくても、ターミナルから直接GitHubの操作ができる公式ツールです。
できることの例
ターミナルから直接GitHub上にリポジトリを新規作成する。
gh repo createターミナルから直接プルリクエストを作成する。
gh pr create現在のIssue一覧をターミナルに表示する。
gh issue list導入法
インストール(Windows)
winget install --id GitHub.cli最初にやる設定
gh auth login