0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

12/18)Gitで変更を取り消すとき、revert と reset はどう使い分けるべきか?

Last updated at Posted at 2025-12-17

はじめに

アドベントカレンダー 12/18 = 18記事目です!

Git を使ってコードを書いていると、間違えてコミットしてしまった、
あるいは「この変更はやっぱりなかったことにしたい」と思う瞬間がありました

Git では、そんなときに役立つコマンドが複数あって ― 特に git revertgit reset

両方とも「変更を取り消す」という目的に見えますが、やっていることとリスクが違う事を知りました

この違いをきちんと理解しておかないと、あとで「コミット履歴がぐちゃぐちゃ」「チームで混乱」「データが消えた!」なんて事態になりかねません 😨
この記事では、git revertgit reset の違いを、「ざっくり」「具体的」に説明します。


✅ ざっくり違い

コマンド 何をするのか 安全性 よく使う場面
git revert 過去の変更を打ち消す “新しいコミット” を作る ✅ 安全 (履歴が残る) 「共有リポジトリ/チームで使ってるとき」「過去コミットを取り消したいとき」
git reset コミットや変更を “なかったことにする” (履歴を書き換える) ⚠️ 危険 (履歴が消える可能性) 「自分のローカルだけ」「まだ誰にも共有してない」「履歴整理したいとき」


例:3つコミットした後の操作

git commit -m "1: 初期ファイル作成"
git commit -m "2: ヘッダー追加"
git commit -m "3: フッター追加"

現在のログ ( git log --oneline ) はこんな感じ:

c3f8b13 3: フッター追加
b7a3c22 2: ヘッダー追加
a1d2f11 1: 初期ファイル作成

git revert の例(履歴を保ちつつ取り消す)

git revert b7a3c22
  • 「ヘッダー追加」の変更を打ち消す新しいコミットが追加される
  • ログはこうなる:
e4f9a55 Revert "2: ヘッダー追加"
c3f8b13 3: フッター追加
b7a3c22 2: ヘッダー追加
a1d2f11 1: 初期ファイル作成
  • 👍 安全。履歴はそのまま。チーム開発でも安心

⚠️ git reset の例(履歴を巻き戻す/削除する)

git reset --hard b7a3c22
  • 「3: フッター追加」のコミットがなかったことになる。ファイル内容もコミット時点に戻る
  • ログはこうなる:
b7a3c22 2: ヘッダー追加
a1d2f11 1: 初期ファイル作成
  • ❗ コミットと変更が完全に消える — ローカル専用 or 完全にやり直したいとき用。共有リポジトリには向かない。 ([Atlassian][3])


さいごに

Git を使ってコードを書いてると、間違いや「あ、やっぱり戻したい」がどうしても起きるもの。
そんなとき、git revertgit reset のどちらを使うのか

  • チームで共有してる・すでに他人にも見えているコード → git revert で “取り消しコミット” を追加して安全に戻す
  • 自分のローカルだけで試している・一からやり直したい → git reset で履歴ごと巻き戻す
    最近はターミナルでコマンドを入力して処理する頻度が極端に減っているからこそ、改めて確認したい事項でした。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?