はじめに
ようこそ、Git タイムトラベラーの皆さん!本日は、リポジトリの履歴をこれまでにないほど制御できる 2 つの強力な Git 機能、git reset
と git reflog
について探求します。これらのツールは、Git タイムマシンの高度なコントロールのようなもので、プロジェクトのさまざまな状態間を移動したり、「失われた」作業を回復したりすることができます。
git reset
コマンドは、変更を元に戻したり、ファイルのステージングを解除したり、コミット履歴を書き換えたりするのに役立つ多用途なツールです。しかし、大きな力には大きな責任が伴い、git reset
は初心者には少し手ごわいかもしれません。そこで git reflog
が登場します。これは安全ネットのようなもので、リポジトリの refs (ブランチの先端など) に対して行ったすべての変更を追跡し、最も劇的なリセットからも回復できるようにします。
この実験(Lab)では、以下を扱います。
- Soft Reset (ソフトリセット): ワーキングディレクトリやステージングエリアを変更せずに HEAD を移動する
- Mixed Reset (ミックスリセット): 変更をワーキングディレクトリに残したまま、ステージングを解除する
- Hard Reset (ハードリセット): 変更を完全に破棄する
- Reflog を使用して「破壊的」な操作から回復する
- Time-based Resets (時間ベースのリセット): 特定の時点の状態にリポジトリを移動する
この実験(Lab)の終わりには、これらの強力な Git 機能を安全かつ効果的に使用する方法をしっかりと理解できるようになります。必要に応じていつでも戻ることができることを知っているので、自信を持ってリポジトリの履歴を操作できるようになります。
さあ、git reset
と reflog
をマスターしましょう!