Gitを初めて使う人が、「コマンドを暗記する」のではなく、今どこにいて何を動かしているかを理解しながら、Issue → Branch → Commit → Pull Request → Review → Merge を一周するための日本語教材です。
Issue(何をするか)
↓
Branch(作業を分ける)
↓
Worktree(編集する)
↓ git add
Staging(次のcommitに入れる変更を選ぶ)
↓ git commit
Local repository(履歴として記録する)
↓ git push
GitHub / Pull Request(共有・レビュー)
↓ Merge
main(確認済みの変更を統合)
| 名前 | 役割 | 代表例 |
|---|---|---|
| Git | 変更履歴・branch・commit・remoteとの同期を扱う仕組み | git status, git add, git commit, git fetch, git merge |
| GitHub | Gitの履歴を共有し、Issue・PR・Review・Actionsなどで協働するサービス | GitHub Web UI |
gh |
GitHubをターミナルから操作する公式CLI | gh issue, gh pr, gh repo, gh run |
ghはGitを置き換えるものではありません。例えば、編集した変更をstagingしてcommitするのはGitの仕事です。一方、IssueやPRを作る、PRの状態を見る、GitHub上でmergeする、といった操作はWeb UIでもghでもできます。
一部は同じ結果へ別の入口があります。
| やりたいこと | Git / Web UI | gh |
|---|---|---|
| GitHub repoをclone | git clone <URL> |
gh repo clone OWNER/REPO |
| Issueを作る | GitHubのIssues画面 | gh issue create |
| Issueを見る | GitHubのIssue画面 | gh issue view <番号> |
| PRを作る | GitHubのPull requests画面 | gh pr create |
| PRの状態を見る | GitHubのPR画面 | gh pr status, gh pr checks |
| PRをmerge | GitHubのMergeボタン | gh pr merge --merge |
この教材ではGit・Web UI・ghの対応を示します。最初は使いやすい入口で一周し、別の入口でも同じ対象を扱えることを確認してください。両方でIssueやPRを重複作成する必要はありません。AIに操作を任せて進めても構いません。
- Gitを初めて使う人
- 個人開発からチーム開発へ進む人
- GitHubを使う授業・卒業制作・開発チームへ参加する人
- AIにGit操作を任せる場合でも、状態と差分を自分で確認できるようになりたい人
前提は、ファイル操作とターミナルの基本だけです。
| 章 | テーマ | ゴール |
|---|---|---|
| 0 | 環境準備・GitHub認証 | Gitとghを使える環境を作る |
| 1 | なぜGit/GitHubを使うか | Git / GitHub / ghの役割を説明できる |
| 2 | Gitの地図 | Worktree / Staging / Commit / Branch / HEADを説明できる |
| 3 | IssueとBranch | IssueをWeb/ghで扱い、作業ブランチを作れる |
| 4 | 普段の開発フロー | IssueからMergeまで進められる |
| 5 | fetch・merge・conflict | リモートとの差と競合を安全に扱える |
| 6 | 復旧 | 状況に応じてrestore / reset / revertを選べる |
| 7 | PRハンズオン | Web UIとghの両方でGitHub上の状態を確認できる |
| 8 | conflict / revert演習 | 意図的な失敗から自力で戻せる |
| 9 | 発展 | Fork / upstream / squash / rebaseを区別できる |
| 10 | AIと進める開発 | 依頼の範囲を決め、差分・検証結果から採否を判断できる |
- 操作を体験して学ぶ:第0〜8章を順に進め、第9・10章で応用する。
- AIと一緒に学ぶ:第0〜2章で準備と状態の意味を押さえ、第10章の依頼例で第7章を進める。Issue・レビュー・復旧で迷ったら第3〜6章へ戻る。
どちらも到達点は「目的・変更範囲・確認結果・戻し方を説明できること」です。コマンドの手入力回数は評価しません。
迷ったら クイックガイド を開いてください。
基本編は、自分専用の練習リポジトリで行う前提です。教材管理者がこのリポジトリをTemplate Repositoryとして設定している場合は、GitHubの Use this template から自分のリポジトリを作成してください。
Templateが使えない環境では、授業担当者が用意した練習リポジトリを使用してください。Forkは基本編では使わず、第9章で扱います。
Important
公開リポジトリのプロフィール演習では、本名である必要はありません。学籍番号、個人メールアドレス、電話番号、住所などの個人情報は書かないでください。
- 作業前と迷ったときは
git status mainへ直接作業しない- 1つのIssueに対して1つの作業ブランチ
- commit前に
git diff --staged - GitHub上の操作は、Web UIと
ghのどちらでも同じ対象を操作していることを意識する - 基本編のPRは Create a merge commit で統合する
- 共有済みのcommitを取り消すときは、原則
git revert reset --hardと force push は、意味が分からない状態では実行しない
AIには編集・Git操作・PR作成まで任せられます。人間は目的と完了条件を決め、実際の差分と検証結果を見て採用を判断します。細かい操作ごとの確認は、最初に合意した作業範囲に応じて省けます。
git statusがcleanでも、AIが作ったcommitが正しいとは限りません。 未commitの編集と、commit済みの変更は確認方法が違います。
| 確認したいもの | 確認方法 |
|---|---|
| 現在のbranch・未追跡ファイル | git status / git branch --show-current |
| 未stagingの変更 / staging済みの変更 | git diff / git diff --staged |
| mainとの分岐後のcommit済み変更 | git fetch originの後、作業branchでgit diff origin/main...HEAD |
| GitHubへ提出した変更 | PRのFiles changed または gh pr diff |
| 実行した検証と未確認事項 | PR本文の具体的な結果、CIログ、必要な動作確認 |
新規ファイルの中身は、未追跡の間は通常のgit diffに出ません。ファイルを開くか、対象をgit addしてgit diff --stagedで確認します。
依頼例、確認手順、AIと人間が同時に作業する場合の注意は 第10章:AIと進める開発 にまとめています。
- GitHub: Gitのセットアップと認証
https://docs.github.com/en/get-started/git-basics/set-up-git - GitHub: GitHub CLI / Git Credential Manager
https://docs.github.com/en/get-started/git-basics/caching-your-github-credentials-in-git - GitHub CLI manual
https://cli.github.com/manual/ - GitHub: Template Repository
https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-template-repository - Git:
git pull
https://git-scm.com/docs/git-pull - Git:
git revert
https://git-scm.com/docs/git-revert - Git:
git reset
https://git-scm.com/docs/git-reset
教材リポジトリ自身の推奨設定は REPOSITORY_SETTINGS.md にまとめています。