隠されたコード変更を暴け

Beginner

はじめに

Git Diff 捜査官へようこそ!あなたのチームは極秘プロジェクトを進めていましたが、誰かが許可なくコードを書き換えてしまったようです。あなたの任務は、git diff のスキルを駆使してこれらの変更を暴き、影響を受けたファイルを特定することです。このチャレンジでは、リポジトリの異なる状態を比較し、具体的な修正箇所を正確に突き止める能力が試されます。

極秘プロジェクトのリポジトリを調査せよ

開始する前に、~/project/secret-project に Git リポジトリが用意されていることを確認してください。このリポジトリには、元のコードと謎の変更が含まれています。ワークスペースはすでに初期化されており、すぐに調査を開始できる状態です。

タスク

  1. 極秘プロジェクトのリポジトリ ~/project/secret-project に移動してください。
  2. Git diff コマンドを使用して、変更されたものの、まだステージング(staged)されていないファイルを特定してください。
  3. コミットに向けてステージングされているファイルを確認してください。
  4. encryption.js というファイルに追加された特定の行を見つけ出してください。

要件

  • すべての操作は ~/project/secret-project ディレクトリ内で行う必要があります。
  • 以下の情報を特定してください:
    • 未ステージング(unstaged)の変更があるファイル名
    • ステージング済み(staged)の変更があるファイル名
    • encryption.js に追加された正確な行の内容
  • 調査結果を ~/investigation_report.txt ファイルに記入してください。テンプレートが用意されています。デスクトップ上のテキストエディタを使用して、ファイルを編集できます。

チャレンジを正常に完了すると、~/investigation_report.txt は以下のようになります:

Unstaged files:
xxx.js
xxx.js

Staged files:
xxx.js
xxx.js

Added line in encryption.js:
const ……

xxx.js は実際のファイル名に、const …… は実際に追加された行に置き換えてください。空行を含め、レポートのフォーマットは変更しないでください。

まとめ

このチャレンジでは、git diff を使った調査スキルを実践しました。git diff コマンドのさまざまなオプションを使い分け、Git リポジトリの各状態における変更内容を検証する方法を学びました。このスキルは、コミット前に変更内容を把握したり、プロジェクトの現在の状態を理解したり、デバッグを行ったりする際に非常に重要です。

git diff は、コードの変更をレビューし、プロジェクトの整合性を保つための強力なツールです。これらのスキルをマスターしたあなたは、コードベースに隠されたどんな謎の変更も見逃さない、真の Git 捜査官への道を歩んでいます!