▲ 【Day 45】究極の巻き戻しツール(git reset 3兄弟:soft, mixed, hard) 👨🏫 皆さんこんにちは! 本講座の専任講師です。 前回(Day 44)は、提出前のコミット履歴をピカピカに整頓する git rebase -i と autosquash による自動合体術を学びました。 そして本日の【Day 45】から、いよいよ 「第9部:トラブルシューティング&完全復旧術」 が開幕します! その第1弾として、Gitの持つ最も強力で、かつ最も誤解されやすいコマンド 【究極の巻き戻しツール(git reset 3兄弟:soft, mixed, hard)】 を徹底解説します! 30年選手のベテランエンジニアから、開発現場の切実な悩みが届いています: 「コミットした後に『あ、まだ単体テスト通ってないのにコミットしちゃった』とか『appsettings.Development.json に接続文字列のパスワードを書いたままコミットしてしまった』という事故がよくある。 SVNのRevertは単に作業中の未コミット変更を破棄するだけだったが、Gitの reset はコミット自体を取り消せると聞いた。 でも --soft, --mixed, --hard の3つがあって、どれを使うとせっかく書いたC#コードが消えてしまうのか、どれなら安全なのかが怖くて手が出せない! それぞれの違いと、現場で安全に使うための判断基準を教えてほしい!」 その恐怖心、非常によく分かります!「reset」という単語の響きが「全消去」を連想させるため、多くのエンジニアが構えてしまいます。 しかし、Gitの 「3つの領域(作業ツリー・ステージ・リポジトリ)」 の仕組みさえ知ってしまえば、resetは決して恐ろしい破壊コマンドではありません。 ...