QUIZ 30分

チェックポイント:ブランチ戦争を終結させよう

クイズの説明

Step 4で学んだチーム開発の知識を確認します。

  • 全8問
  • 合格ライン: 80%(7問正解)
  • 不合格の場合は復習してから再挑戦してください

問題

Q1. Draft PR の主な用途として正しいものはどれですか?

  • A) レビュー不要であることを示す
  • B) 作業中の段階で進捗を共有し、早期にフィードバックを得る
  • C) 自動テストをスキップするために使う
  • D) マージ後に自動的にブランチを削除する
<details> <summary>答えを見る</summary>

正解: B

Draft PR は作業がまだ完了していない段階でPRを作成し、 実装方針について早期にフィードバックを得たり、進捗を共有するために使います。 レビュー準備ができたら "Ready for review" に変更します。

</details>

Q2. CODEOWNERS ファイルの役割として正しいものはどれですか?

  • A) コードの著作権情報を記録する
  • B) ファイルやディレクトリの責任者を定義し、PRに自動でレビュアーを割り当てる
  • C) コミットの承認者を制限する
  • D) デプロイ可能なユーザーを制限する
<details> <summary>答えを見る</summary>

正解: B

.github/CODEOWNERS ファイルは、特定のファイルやディレクトリパターンに対して 責任者(チームまたは個人)を定義します。 該当ファイルが変更されたPRに、自動的にレビュアーとして追加されます。

</details>

Q3. レビューコメントの接頭辞 [nit] の意味として正しいものはどれですか?

  • A) 修正必須の指摘
  • B) セキュリティに関する重要な指摘
  • C) 些細な指摘で、対応は任意
  • D) 質問
<details> <summary>答えを見る</summary>

正解: C

コメント接頭辞の意味:

  • [must]: 修正必須
  • [should]: 修正推奨
  • [nit]: 些細な指摘(nitpick)、対応は任意
  • [question]: 質問
  • [praise]: 褒め
</details>

Q4. ブランチ保護ルールの "Require status checks" が有効な場合、何が必要ですか?

  • A) 全てのレビュアーが承認すること
  • B) CIテスト(自動テスト)が合格すること
  • C) ブランチが最新であること
  • D) コミット数が一定以上であること
<details> <summary>答えを見る</summary>

正解: B

"Require status checks to pass before merging" は、 GitHub Actions などのCI/CDパイプラインで実行されるテストやビルドが 全て合格しないとマージできないようにする設定です。

</details>

Q5. git bisect の動作として正しいものはどれですか?

  • A) 全てのコミットを順番にテストする
  • B) 二分探索でバグが混入したコミットを効率的に特定する
  • C) コミットを2つのブランチに分割する
  • D) ファイルの差分を2つの方法で表示する
<details> <summary>答えを見る</summary>

正解: B

git bisect は二分探索アルゴリズムを使い、 「正常なコミット」と「バグのあるコミット」の間を効率的に絞り込んで、 バグが混入した最初のコミットを特定します。

例えば100コミットの範囲でも、約7回のテストで原因コミットを見つけられます。

</details>

Q6. git reflog で確認できるものは何ですか?

  • A) リモートリポジトリの履歴
  • B) ファイルの変更内容
  • C) HEADの移動履歴(ローカルの操作履歴)
  • D) マージコンフリクトの履歴
<details> <summary>答えを見る</summary>

正解: C

git reflog はHEADの移動履歴を記録しています。 commit, checkout, reset, merge, rebase など、 HEADが移動した全ての操作が記録されます。

間違えて reset --hard した場合や、削除したブランチの復元に使えます。

</details>

Q7. PRの説明文に Closes #123 と書くと何が起きますか?

  • A) Issue #123 にコメントが追加される
  • B) PRがマージされた時に Issue #123 が自動的にクローズされる
  • C) Issue #123 の担当者がレビュアーに追加される
  • D) Issue #123 のラベルがPRに複製される
<details> <summary>答えを見る</summary>

正解: B

GitHub では、PRの説明文に Closes #123(または Fixes #123, Resolves #123)と 書くと、そのPRがマージされた時に自動的に Issue #123 がクローズされます。

これにより、Issue とPR の関連付けが明確になり、タスク管理が効率化されます。

</details>

Q8. git worktree の利点として正しいものはどれですか?

  • A) リモートリポジトリを複製する
  • B) 1つのリポジトリで複数のブランチを同時にチェックアウトできる
  • C) ブランチを自動的にマージする
  • D) コミットを別のリポジトリに転送する
<details> <summary>答えを見る</summary>

正解: B

git worktree は、同一リポジトリの複数のブランチを 別々のディレクトリに同時にチェックアウトできる機能です。

ブランチを切り替える(checkout)必要がないため、 作業中の状態を失わずに別ブランチで作業できます。

</details>

結果

7問以上正解の場合

合格です。おめでとうございます。

Step 4「ブランチ戦争を終結させよう」を完了しました。 次は Step 5「CSSグリッドで世界を構築しよう」に進みましょう。

6問以下の場合

もう少し復習しましょう。

問題復習セクション
Q1step4_1 Pull Request
Q2, Q3, Q4step4_2, step4_3 レビュー/ワークフロー
Q5, Q6, Q8step4_4 高度なGit操作
Q7step4_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分