Menu
Coddy logo textTech

ブランチをリセットする

CoddyのTerminalジャーニー「バージョン管理」セクションの一部 — レッスン 44/58。

git reset は、現在のブランチポインタを別のコミットに移動させます。最も一般的な使い方は、まだ共有していない最近のコミットを取り消すことです。

git reset --hard HEAD~1

これにより、main が1つ前のコミットに戻り、それに合わせてワーキングディレクトリが上書きされます。スキップしたコミットは、ブランチから到達できなくなります(気が変わったときのために Git はしばらく保持しますが、いずれ消えるものと考えてください)。

リセットには3つの種類があります:

  • --soft: ブランチポインタを移動します。ステージングされた変更は保持されます
  • --mixed (デフォルト): ポインタを移動します。ステージングを解除しますが、ワーキングディレクトリのファイルは保持されます
  • --hard: ポインタを移動します。ワーキングディレクトリのファイルの変更もすべて破棄します

--hard は最も破壊的な形式です。ローカルでのミスをクリーンアップするのに最適ですが、他の人がすでにプルしたコミットに対しては決して使用しないでください。

challenge icon

チャレンジ

中級

フォルダには doc.md が含まれています。リポジトリを初期化し、順番に3つのコミットを作成してください:

  1. メッセージ Add docdoc.md を追加します。
  2. doc.mdsecond を追記し、メッセージ Second draft でコミットします。
  3. doc.mdthird を追記し、メッセージ Third draft でコミットします。

HEAD~2 を使用して、ブランチを最初のコミットまでハードリセットしてください。doc.md の内容を表示してください。

チートシート

git reset は、現在のブランチポインタを別のコミットに移動させます。3つの種類があります:

  • --soft: ポインタを移動し、ステージングされた変更を保持します
  • --mixed (デフォルト): ポインタを移動し、ステージングを解除しますが、ワーキングディレクトリのファイルは保持します
  • --hard: ポインタを移動し、ワーキングディレクトリの変更を破棄します
git reset --hard HEAD~1  # 最後のコミットを取り消し、変更を破棄する
git reset --hard HEAD~2  # 最後の2つのコミットを取り消す

警告: 他の人がすでにプルしたコミットに対して --hard を使用しないでください。

自分で試してみよう

ターミナル
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

バージョン管理のすべてのレッスン