revert
既存のコミットを取り消すコマンド.
特定のコミットのみを選択して取り消すので他のコミットに影響を与えない.
revert自身もコミットしてくれる点が特徴的。「既存コミットを取り消しました」というコミットを生成してくれる。
そのため、リモートにpushしたコミットに対しても有効である。
git-logで取り消したいコミットのハッシュを取得して,以下のようにコマンドを入力する.
$git revert <取り消したいコミットのハッシュ>
オプション無しだとviでメッセージ入力を求められるが,--no-editを加えることでメッセージ編集なしで行える.
$git revert --no-edit <取り消したいコミットのハッシュ>
reset
指定したコミット以降のコミットをすべて取り消す.ローカル内の黒歴史コミットをすべてなかったことにできる.
revertと違い,reset自身はコミットされないため注意が必要.
中々強力なコマンドなので、複数人でリポジトリ共有している場合などは慎重に扱ったほうがいい。というか、revertのほうが無難。