バグを入れてしまったら

サービスを運用していると、バグが発見されることはよく (?) あることだと思います。
ある変更をリリースした直後に、ここが動かなくった!なんてことになったらその変更を元に戻す必要があります。
こういったときに、git でコードを管理しているのであれば、変更を Revert して、バグを修正したのちに再度リリースすることで対処できるので便利です。
Revert とは、ある変更をもとに戻す変更のことです。

以下では、 その手順を書いていきます。

手順

Revert する

  • 最新の master ブランチを取得する
  • Revert するためのブランチを切る
  • バグの含まれてしまった変更を Revert する
  • ブランチをマージする
git checkout master
git pull
git checkout -b revert-{Revert するブランチ}
git log #バグの含まれたブランチをマージしたときのハッシュ値を確認
git revert -m {ハッシュ値}

これで変更を加える前の状態のブランチが出来上がるので、これをマージすればバグがきれいさっぱり無くなります。

バグを修正する

  • 最新の master ブランチを取得する
  • バグを修正するためのブランチを切る
  • バグが含まれている状態に戻す (Revert する前に戻す)
  • バグを修正する
  • ブランチをマージする
git checkout master
git pull
git checkout -b revert-{先ほど Revert したブランチ}
git log #Revert したときのハッシュ値を確認
git revert -m {ハッシュ値}

これでバグが含まれている状態のブランチが出来上がるので、バグを修正してマージします。
Revert を Revert してバグ修正するという流れです。

ミスは必ず起きる

自分でも大丈夫だと思った上に、コードレビューもしっかりしてもらったのにも関わらず、バグが発見されることがあります。
(というか、バグが含まれているのを知っていてみすみすリリースしないですよね。)

バグが発見されたときはめちゃくちゃ焦ります。冷や汗だらだらです。

こういうときに一番重要なことは、迅速に対処することだと思います。いくら焦ってもバグが直るわけでもないので、落ち着いて、冷静に対処することです。

そして、次に重要なことは、どうしてバグを見逃してしまったのかを考えることだと思います。しっかりテストを書いていれば事前に気づけたことかもしれません。どうして見逃したのかを考えて、次に生かすことで、将来のバグを一つでも減らせるはずです。

人間はミスをしてしまう生き物なので、今できることを精一杯やりましょう!