3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Git】git revertとgit resetの違い

Last updated at Posted at 2021-12-15

はじめに

 本記事は、プログラミングの学習を始めて1ヶ月の初学者が、学習を進めていて疑問に思った点について調べた結果を備忘録も兼ねてまとめたものです。
 そのため、記事の内容に誤りが含まれている可能性があります。ご容赦ください。
 間違いを見つけた方は、お手数ですが、ご指摘いただけますと幸いです。

今回の疑問点

 今回の疑問点は、

  git revertgit resetの違いについて
 
 です。 

疑問点についての解説

結論

git revert:指定したコミットの内容を打ち消すコミットを作成

git reset:指定したコミットを削除

git revert

git revertは指定したコミットの内容を打ち消すコミットを作成します。そのため、指定したコミットがログから消えることはありません。また、git revertを実行した後には、pushをする必要があります。


 git revert [打ち消したいコミットコード]  #指定したコミットを削除

 git revert -m [1か2] [打ち消したいコミットコード] --no-edit #指定したマージコミットを削除

 
git log

commit a9857cfa0d63caef134k7ea07061370ffd0fe3dc
Merge: xxxxxxx  yyyyyyy
Author: xxxxxxxxxxxxxxxxxxxxxxxxxx
Date:   xxxxxxxxxxxxxxxxxxxx
 
    xxxxxxxxxxxxxxxxxxxxxxxx
 
    xxxxxxxxxxxxxxxxxx

打ち消したいコミットとはgit logで出力された上記のcommitの横に記載されているコードです。左から7桁分入力することで指定できます。GithubのNetwork graphからも確認することができます。
また、git revert -m [1か2] [打ち消したいコミットコード][1か2]には、git logで出力された上記のmergeの右に記載されている2つのコードのうちどちらを残すのか指定します。右側が1、左側が2です。
最後の--no-editを記述しない場合、コマンド実行後にエディタが開き、コミットメッセージの入力を求められます。

git reset

git resetは、指定したコミットを削除します。ログも消えます。


git reset [削除したいコミットコード]  # 現在のブランチを指定したコミットに戻す
 
git reset [option] [削除したいコミットコード]  # オプションを指定 [--soft | --hard] [HEAD | HEAD^]
 

上記処理後、普通にpushができない場合には、git push -fを実行しましょう。

[option]について→https://www.r-staffing.co.jp/engineer/entry/20191129_1

まとめ

最後にポイントをまとめます。

  • git revert:指定したコミットの内容を打ち消すコミットを作成。ログは消えない。実行した後にはpushする必要がある
  • git reset:指定したコミットを削除。ログも消える。
3
2
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
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?