2022-05-12
去年冬の話です。
複数人でアプリ開発をしていてそれぞれ違うブランチで機能を追加後、いじった所にダブりが出て衝突したので
相手のコミットで解決を選んでマージ。
ここまでは良いのですが、マージ後のブランチで新しい機能を追加しようとしてあれこれしていたせいか、今いるページが
マージ前のページに戻ってしまいました。
慌ててCtrl + Yするも時すでに遅し。ソースツリーから相手が更新したコードが消え失せてしまいました。
残ったのは右往左往しながら書いた自分のマージ前のクソコードのみ・・・。
なぜこれが起きたかというと、VSCodeは、というか全てのエディタはソースツリーでマージをしても
そのマージ前とマージ後の出来事が連なっている状態になります。なのでこの後すぐに開発にとりかかろうとして
「戻る」をマージ前まで遡った後に保存してしまうと当然その時の作業は自分しかしていないので
相手のマージしてくれたコードは無くなります。
せっかくマージした成果物が無くなりご愁傷様でしたとなってしまう訳です。
モバイルアプリとかの小中規模の開発ならまだ修正が利くのですが、大規模な開発でこれに気づかずに保存してしまうと
そのコード部分を探すだけで手こずってしまい大変めんどうな目にあうので、マージしたら一回エディタを閉じる
若しくはログを残しておく(自分の場合はbacklogにgitを保存していたのでそこで消えた箇所を見つけて修正しました)
なりして事故を防ぐ必要があります。
マージをしてすぐに終わり→そのまま追加コードを書こうとするのではなく、マージをしてアプリが動くか確認・動作を確認後エディタを閉じるまでが
正しいマージ作業ということを胸に刻まれた一日でした。