Tortoise Gitでのrevertの罠

スポンサーリンク

Tortoise Git を使っているとき、ローカルでいじった変更を巻き戻して変更前の状態に戻したいなーってときは、revertを使うと元に戻ってくれます。 このrevert、裏ではgit revertコマンドが実行されているのかなと思っていましたが、実は違うんです。

そもそも、git revertはすでにリモートにpushされたコミットを取り消すためのコマンドです。
ローカル上のまだコミットしていない変更に対しては干渉しません。

このあたりの話は昔Qiitaに書いたことがあります↓

qiita.com

ではTortoise Git でのrevertは何のコマンドに相当するのか。
答えはgit checkout HEAD -f -- ファイル名です。

「revertじゃなくてcheckoutじゃねえか!!どういうことだよ!!」と思い、怒りのままにググってみたところ、、、
どうやら、SVNsvn revertというコマンドがあるそうでして、TortoiseでもSVN感覚で操作できるようにTortoiseが配慮しているそうです。
整理すると、

  • git revert :リモートのコミットを取り消す
  • Tortoise Git におけるrevert / svn revert:ローカルの変更内容を変更前の状態に巻き戻す

ということです。

雑感

私はSVNを触ったことがないので、このTortoiseの配慮ははっきり言って迷惑ですね(笑)
しかし、世のベテランエンジニアの方々はやはりSVNに慣れている方が多いと思うので、多数派に合わせるのが筋なのでしょうか。

にほんブログ村 IT技術ブログへ
にほんブログ村