git revertもろもろ
Page content
概要
gitでコミットを取り消したい時、resetかrevertを行う。
ただ、resetだと取り消したことがコミットログに残らない。
なので、特にリモート側を弄る場合、revertを使う方が推奨される。
# 直前のコミット打ち消し
$ hit revert HEAD
# 特定のコミット打ち消し
$ git revert {commit_id}
範囲を指定してrevert
..
で繋げば範囲指定が出来る。
ただし、始点に指定したコミットIDの次のコミットからrevertする。
# commit_id1の次のコミットからcommit_id2までをrevertする
$ git revert {commit_id1}..{commit_id2}
# commit_id1からcommit_id2までをrevertする
$ git revert {commit_id1}^..{commit_id2}
マージコミットのrevert
マージコミットは親ブランチが2つあるため、どちらとの差分をrevertするか指定する。
マージされたメイン側ブランチに生じた差分をrevertする場合、
$ git revert -m 1 {commit_id}
逆にマージした派生側ブランチに生じた差分をrevertする場合、
$ git revert -m 2 {commit_id}
となる。