【Git】git revertの使い方

git revert:過去のコミットの打消しコミットを新たに作る

過去のコミットに対して打消しコミットを作成し、変更を相殺させることでコミットを取り消すコマンドです。

コミットを追加して過去のコミットを取り消しているので、「コミットを修正した」という履歴が残ります。

似たような機能をもつコマンドとして、git resetがありますが、こちらはコミット自体が削除され履歴が残りません。なので、チーム開発の場合はメンバーに周知するためにもgit revertを使う方が良いように思います。

git revertの使い方とコマンド

基本的な使い方

今回は動きを確認するために以下4つのコミットを行ったテスト環境を作成しました。

"first commit"、"second commit"、"third commit"、"fourth commit"

f:id:hnm-n-1029:20200818184619p:plain

...4つも要りませんでしたが....笑

直近の"fourth commit"を取り消したいと思います。

①git revertコマンドの実行
//直近のコミットの取り消しコミットを作成
$ git revert HEAD

または

//指定したcommitの取り消しコミットを作成
$ git revert <commit ID>

※commit IDは$git logで調べることができます。
今回の場合は「$ git revert 45d58793184737346be9d3ced64331113483ca98」となります。

②コミットメッセージをvimで編集する

vimコマンド「:wq」(保存して終了)を入力して終了します。
これで取り消しコミットが作成されます。

f:id:hnm-n-1029:20200818185130p:plain

確認してみると....

取り消し履歴が作成されているのが確認できます。

f:id:hnm-n-1029:20200818190026p:plain

Pushを取り消す

GitHubにpushしてしまったコミットを取り消すには、上記で行った「コミットの取り消し」後に、以下のコマンドを実行します。

//ローカルとリモートを同期する
$ git push origin

するとGithub上で、取り消しコミットが追加されます。


今回は以上になります!


↓↓私の師匠、もりけんさんの武骨日記。問題集、要チェック

kenjimorita.jp