2
5

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 3 years have passed since last update.

[git]git revert(あるコミットの内容を打ち消すコミットをする)

Posted at

■もくじ
https://qiita.com/tera1707/items/4fda73d86eded283ec4f

■やりたいこと

gitで、間違えてコミットしてしまった内容を元に戻したい。
その際に、間違えてコミットしたこと、それを元に戻したことをログ上に残しておきたい。

で、調べたところ、gitにはgit revertという便利なコマンドがあるようなのだが、自分が使っているTortoise GitというgitのGUIツールではそんなコマンドがなさそうに見える。
(というか、TortoiseGit上にもrevertという表示はあるが、なんかそれとはちがうことしてそう?な感じがする)

TortoiseGit上で、本来のgit revertをしたい。

■やったこと

色々調べたところ、TortoiseGitではgitコマンドでいうところのgit revertはできない様子。
TortoiseGitのrevertは、gitコマンドでいうところのgit checkoutと同じらしい。(参照)
→ローカルで変更して、コミットする前の変更(作業ツリー上だけの変更)をなかったことにする、という意味で使っていた。
私はこれがrevertだと思っていた。

本来のgit revertはそうではなく**「打ち消しコミット」**をするもののようで、まさにそれが今回やりたいことだった。
(ココ の 「git revert で取り消しコミットを作成する」)

Windows上に作ったリポジトリでのgit revertのやり方

コマンドプロンプトを開いて、リポジトリのフォルダまで行ってrevertのコマンドを入れればよい。
具体的には、下記のようにした。

  • エクスプローラで、リポジトリのフォルダ(=.gitフォルダのあるところ)を開く
  • image.png
  • パスの窓に、cmdと入れてEnterを押し、コマンドプロンプトを開く。(これで、コマンドプロンプトでcd そのフォルダとしたのと同じになる)
  • TortoiseGitでログを表示し、打ち消したいCommitのコミット番号を見る。
  • image.png
  • 開いた黒窓にgit revert <コミット番号>と入力し、Enterする
  • image.png

これで、revertが実行される。
実行された後にTortoiseGitでログを見ると、「revert <打ち消したコミットのコミットコメント>」と表示され、打ち消した内容がコミットされている。
image.png

これで打ち消しコミット完了。

余談

エクスプローラのアドレスバーで「cmd」と打ってEnterすると、コマンドプロンプトを開いてそのフォルダにcdしたのと同じになる、というのも実は今回知った。

■参照

TortoiseGitのrevertについて
http://kaepapa.hateblo.jp/entry/2013/04/17/131152

git push の取り消し方法
http://www-creators.com/archives/2020

2
5
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
2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?