CHAPTER 5 · 1 lesson · 13問
変更の取り消しと reset
working tree の変更破棄、stage の解除、直前 commit の修正、reset と revert による commit 取り消し。
0 / 13 問クリア
ここまでは「commit する」ことばかりやってきたね。でも、Git の本当の価値は安全に過去へ戻れることにあるよ。
戻れると分かっていれば、恐れずに新しいコードを書ける。消してみる、書き換えてみる、全部やり直してみる — どれをやっても、commit した過去の時点には必ず帰れるからだよ。
この章のコツは1つだけ。先に「どの領域の変更を取り消したいのか」を決めること。対象領域が決まれば、使うコマンドは自動的に決まるよ。
- working tree(local の未 stage 変更)を破棄したい →
git restore - stage(git add した変更)を下ろしたい →
git restore --staged - 直前の commit メッセージや内容を直したい →
git commit --amend - commit 履歴を取り消したい →
git resetまたはgit revert
いちばんの山場は、最後の2つの使い分けだよ。基準はこれだけ。
まだ remote へ push していない → reset。もう push して公開した → revert。
push したあとに過去の commit を reset で消してしまうと、他のメンバーの履歴と食い違って事故の原因になる。revert は「打ち消す commit」を新しく追加するので、誰の履歴も壊さない — それだけの違いだよ。
git reset --hard は、未 commit の変更を完全に破棄するコマンドだよ。commit していない作業内容は消えてしまうので、安全な演習環境でしっかり練習しておこう。
この章のレッスン
restore / reset / revert
- 05変更の取り消し(restore / reset / revert)restore・amend・reset・revert の4つのコマンドを使い、working tree・stage・repository の各領域に応じた適切な取り消し操作を身につけよう。問題へ