■もくじ
→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
フォルダのあるところ)を開く - パスの窓に、
cmd
と入れてEnterを押し、コマンドプロンプトを開く。(これで、コマンドプロンプトでcd そのフォルダ
としたのと同じになる) - TortoiseGitでログを表示し、打ち消したいCommitのコミット番号を見る。
- 開いた黒窓に
git revert <コミット番号>
と入力し、Enterする
これで、revertが実行される。
実行された後にTortoiseGitでログを見ると、「revert <打ち消したコミットのコミットコメント>」と表示され、打ち消した内容がコミットされている。
これで打ち消しコミット完了。
余談
エクスプローラのアドレスバーで「cmd」と打ってEnterすると、コマンドプロンプトを開いてそのフォルダにcd
したのと同じになる、というのも実は今回知った。
■参照
TortoiseGitのrevertについて
http://kaepapa.hateblo.jp/entry/2013/04/17/131152
git push の取り消し方法
http://www-creators.com/archives/2020