Git サーバー

[Git]git revertをすべき時、そして作業の流れ

※本サイトはPR表記を含みます。

 

git revertをすべき時

git revertってコマンドを知っていますか?git revertはコミット作業を打ち消すコマンドです。

でも、フツーに開発していると、特に一人開発の時は別にリバートせんでも、「作業上書きしてコミットしたらそれでよくね?」っていう感じでゴリ押しで進めることも可能です。そうなるとgit revertをする場面がない。(何を隠そうわたくしもそうだった)

 

それか、コミットを取り消すなら、 git reset HEAD^ とかでよくね?ってなりがちかも。

 

では、どんな時にgit revertは有効なのでしょうか?それは「すでにプルリクを出している時」です。

一旦GitHubなどのリポジトリにプルリクを出していると、追加コミットのやり方では、無駄にコミットが増えてしまいます。(コミット汚染)

また、むやみにgit resetをしてしまうと、整合性が取れなくなってしまいます。

 

そんな時、レビュワーが見ても一目瞭然で「作業を元に戻した、何を元に戻した」ということを理解できるgit revert

あ、このコミットは不要だったんだな。なぜ不要だったのかな?とか、まあコードを読む際の一つの情報になりますね。

 

git revertの作業流れ

前置きが長くなりましたが、そんなgit revert作業の流れです。

step
1
git logする

まずはローカルで対象のディレクトリに移動した後、git logします。

git revertをするためには対象のコミットハッシュを知る必要があります。

なので、最初はgit logで履歴を確認しましょう。

ちなみに履歴から抜ける(シェル操作の元に戻る)ときはq(quitの略)を押すと画面を元にもどれます。

 

step
2
対象コミットハッシュをコピペ

↑の黄色い文字のcommitという後の長い文字列がgit revertで対象とするコミット番号になります。
ちなみに、teratermなどsshクライアントのコピペの仕方ってわかりますか?

今回revert対象にしたいコミットの文字列ってコピペする必要があります。その時にパッとコピペができれば作業効率が良いです。

teratermだと、マウスで範囲をドラッグで選択して(選択した時には自動でコピってる)、そして、コマンド操作の箇所で右クリックでペーストしています。

(macのターミナルとかはググって。。)

 

step
3
いざgit revertを実行

これで、コミットしたい対象を特定したら、後はgit revertしましょう。

普通の操作画面に(qして)戻ったら

 command
git revert 対象コミット番号

とコマンドを打ちます。

その後、「作業を取り消した」というコミットが必要になります。

特にコミットを変える必要がなければ、:wqwrite(記録)してquitしてください。

Macのターミナルの場合、自動でINSERTモードになってるかもなので、その場合、ESCキーでエスケープしてから:wqしましょう。

 

step
4
git logでrevertできているか確認

では、最後にgit logでキチンとrevertできているか確認しますgit logは確認用に癖つけてください。
「Revert うんたら」ってのが追加されると思います。(それかrevertの際、コミット編集した内容が確認できるはず)

 

これで対象の作業が元に戻りました。

GitHubなどにプッシュした時にRevertした分(もとにもどした)分も含めて整合性が保てるようになります!お疲れさまでした~!

-Git, サーバー
-