Git revertとresetの違いと使い方を初心者向けに解説

Gitのrevertとresetの違いや使い方を初心者にもわかりやすく解説。履歴を安全に戻す方法や、状況に応じた正しい選び方を丁寧に紹介します。

revertとresetの目的は「履歴を戻すこと」

Gitでは、誤った変更を元に戻したい場面がよくあります。そのときに使うのが

revert
reset
。どちらも「履歴を戻す」コマンドですが、その挙動は大きく異なります。


基本的な違いのまとめ

項目git revertgit reset
目的過去のコミットの取り消しを新たな履歴として記録指定したコミット以降の履歴を削除・巻き戻す
履歴の扱い履歴は残る(安全)履歴が書き換わる(注意が必要)
チーム作業安全に使用可能原則ローカル専用(共有ブランチでは非推奨)

git revertの使い方

コマンド構文

git revert [コミットID]

例:1つ前のコミットを取り消す

git revert HEAD

この操作は、取り消し用の新しいコミットを作成します。

特徴

  • 履歴はそのまま残る
  • 安全に操作できるので、チーム開発でも使いやすい

git resetの使い方と種類

基本コマンド

git reset [--soft | --mixed | --hard] [コミットID]

各オプションの違い

オプションステージ作業ディレクトリ説明
--soft戻さない戻さないコミットだけを取り消し、変更は残す
--mixed(デフォルト)戻す戻さないステージは戻すが、作業ファイルはそのまま
--hard戻す戻すすべての変更を完全に取り消す(注意!)

例:最新のコミットを完全に取り消す

git reset --hard HEAD~1

どちらを使うべき?状況別の使い分け

状況推奨コマンド
チームと共有済みの履歴を取り消したいgit revert
ローカルで試験的な変更を取り消したいgit reset --soft / --hard
履歴をきれいに整えたいgit reset --soft

注意点とベストプラクティス

  • reset --hard
    は取り消しが効かないため慎重に!
  • チーム開発では
    revert
    を優先して使用
  • 操作前に
    git log
    で履歴確認、必要なら
    git stash
    で退避

まとめ:revertとresetを正しく使い分けよう

Gitでの履歴の操作は非常に強力ですが、慎重さが求められます。

revert
reset
の違いを理解し、状況に応じた使い分けをマスターすることで、より柔軟かつ安全な開発が実現します。

編集部

編集部