チェックポイント:ブランチ戦争を終結させよう
クイズの説明
Step 4で学んだチーム開発の知識を確認します。
- 全8問
- 合格ライン: 80%(7問正解)
- 不合格の場合は復習してから再挑戦してください
問題
Q1. Draft PR の主な用途として正しいものはどれですか?
- A) レビュー不要であることを示す
- B) 作業中の段階で進捗を共有し、早期にフィードバックを得る
- C) 自動テストをスキップするために使う
- D) マージ後に自動的にブランチを削除する
正解: B
Draft PR は作業がまだ完了していない段階でPRを作成し、 実装方針について早期にフィードバックを得たり、進捗を共有するために使います。 レビュー準備ができたら "Ready for review" に変更します。
</details>Q2. CODEOWNERS ファイルの役割として正しいものはどれですか?
- A) コードの著作権情報を記録する
- B) ファイルやディレクトリの責任者を定義し、PRに自動でレビュアーを割り当てる
- C) コミットの承認者を制限する
- D) デプロイ可能なユーザーを制限する
正解: B
.github/CODEOWNERS ファイルは、特定のファイルやディレクトリパターンに対して
責任者(チームまたは個人)を定義します。
該当ファイルが変更されたPRに、自動的にレビュアーとして追加されます。
Q3. レビューコメントの接頭辞 [nit] の意味として正しいものはどれですか?
- A) 修正必須の指摘
- B) セキュリティに関する重要な指摘
- C) 些細な指摘で、対応は任意
- D) 質問
正解: C
コメント接頭 辞の意味:
[must]: 修正必須[should]: 修正推奨[nit]: 些細な指摘(nitpick)、対応は任意[question]: 質問[praise]: 褒め
Q4. ブランチ保護ルールの "Require status checks" が有効な場合、何が必要ですか?
- A) 全てのレビュアーが承認すること
- B) CIテスト(自動テスト)が合格すること
- C) ブランチが最新であること
- D) コミット数が一定以上であること
正解: B
"Require status checks to pass before merging" は、 GitHub Actions などのCI/CDパイプラインで実行されるテストやビルドが 全て合格しないとマージできないようにする設定で す。
</details>Q5. git bisect の動作として正しいものはどれですか?
- A) 全てのコミットを順番にテストする
- B) 二分探索でバグが混入したコミットを効率的に特定する
- C) コミットを2つのブランチに分割する
- D) ファイルの差分を2つの方法で表示する
正解: B
git bisect は二分探索アルゴリズムを使い、
「正常なコミット」と「バグのあるコミット」の間を効率的に絞り込んで、
バグが混入した最初のコミットを特定します。
例えば100コミットの範囲でも、約7回のテストで原因コミットを見つけられます。
</details>Q6. git reflog で確認できるものは何ですか?
- A) リモートリポジトリの履歴
- B) ファイルの変更内容
- C) HEADの移動履歴(ローカルの操作履歴)
- D) マージコンフリクトの履歴
正解: C
git reflog はHEADの移動履歴を記録しています。
commit, checkout, reset, merge, rebase など、
HEADが移動した全ての操作が記録されます。
間違えて reset --hard した場合や、削除したブランチの復元に使えます。
Q7. PRの説明文に Closes #123 と書くと何が起きますか?
- A) Issue #123 にコメントが追加される
- B) PRがマージされた時に Issue #123 が自動的にクローズされる
- C) Issue #123 の担当者がレビュアーに追加される
- D) Issue #123 のラベルがPRに複製される
正解: B
GitHub では、PRの説明文に Closes #123(または Fixes #123, Resolves #123)と
書くと、そのPRがマージされた時に自動的に Issue #123 がクローズされます。
これにより、Issue とPR の関連付けが明確になり、タスク管理が効率化されます。
</details>Q8. git worktree の利点として正しいものはどれですか?
- A) リモートリポジトリを複製する
- B) 1つのリポジトリで複数のブランチを同時にチェックアウトできる
- C) ブランチを自動的にマージする
- D) コミットを別のリポジトリに転送する
正解: B
git worktree は、同一リポジトリの複数のブランチを
別々のディレクトリに同時にチェックアウトできる機能です。
ブランチを切り替える(checkout)必要がないため、 作業中の状態を失わずに別ブランチで作業できます。
</details>結果
7問以上正解の場合
合格です。おめでとうございます。
Step 4「ブランチ戦争を終結させよう」を完了しました。 次は Step 5「CSSグリッドで世界を構築しよう」に進みましょう。
6問以下の場合
もう少し復習しましょう。
| 問題 | 復習セクション |
|---|---|
| Q1 | step4_1 Pull Request |
| Q2, Q3, Q4 | step4_2, step4_3 レビュー/ワークフロー |
| Q5, Q6, Q8 | step4_4 高度なGit操作 |
| Q7 | step4_3 チーム開発ワークフロー |
Step 4 完了
お疲れさまでした。
学んだこと
- Pull Request の作成と運用
- コードレビューの作法とコメント規約
- ブランチ保護、CODEOWNERS、CI/CD連携
- git bisect, git reflog, git blame, git worktree
次のステップ
Step 5: CSSグリッドで世界を構築しよう(6時間)
CSS Grid、アニメーション、Sass/SCSS を学びます。
推定所要時間: 30分