異世界Git その1 〜「なにもしてないのに壊れました」〜
水の匂いがする。
ということは、そろそろ雨が降る。
僕は、そう思った。
夏も終わりに差し掛かり、最近天気がせわしない。
バケツを引っくり返したような雨が5分だけ降って、
急にやんで青空が見えて、
2時間後にまたバケツをひっくり返す、
という情緒不安定な天気が2週間ほど続いていた。
天気予報もあまり当てにならない。
この間なんて、ずぶ濡れになった上司が廊下で思いっきり滑ってこけて、そのまま2, 3メートル等速直線運動をしてしまい、先輩に笑われていた。
僕はオフィスから窓を見た。
もう夕方も超えたのに夕焼けの気配は一切なくて、ただ乳白色の雲があった。とても背が高くて、上の方は潰れて見えた。雲の底は濃い灰色のようになっている。きっとあの下では雨が降っているのだろう。
オフィスの中を見る。
外よりも中の方が明るかった。こんな日は、窓が少し鏡のようになっていて、オフィスの中を映し出す。
僕はちょっと嬉しくなる。
窓には僕の顔が映っていた。
ーーそして、その3つ横の席に、先輩の顔が映っていた。
その先輩とは担当しているプロジェクトが違うし、横並びになった席の3つ向こうに座っているから、普段は横顔しか見えない。
けれど、今日みたいな雨の日は窓が鏡になって先輩の顔を正面から見ることができる。
それをいいことに、雨の日、僕は先輩の顔ばかり見つめていた。
僕は、仕事をするフリをはじめた。
IDEを視界の隅に入れる。
視界の真ん中には、窓に映った先輩がいる。
IDEに、コードではなく日本語をそっと打ち込む。
「8/4
嗚呼、先輩の長い髪の毛先がキーボードをかすめている。どんな匂いがするんだ。なんのシャンプーを使っているんだ。
嗚呼、また先輩の細くて白い指先がキーボードに軽く触れて音を立てる。
どんなタッチで触れられているんだ。今日は一体何を打ち込んでいるんだ。
僕はキーボードになって、
先輩のタッチを全身で感じたい。
僕はトラックパッドになって、
先輩の指で撫で回されたい。
僕はディスプレイになって、
毎日先輩の目で見つめられたい」
ーー先輩日記。
もう、始めて半年くらいになるだろうか。
「おー、進捗どうよ」
背後から上司の声がした。
上司に見られる前に、慣れた手つきで画面を切り替える。
仕事自体はもう2時間も前に終わっている。ぬかりはなかった。
「出来ているので一旦PRあげますね」
「さっすが、速いなあ」
git add .
git commit -m"xxx"
素早くコミットをし、
git push origin xxx
pushをして、そのままPRをつくる。
「お〜。後で見とくな」
そう言って、上司は去っていった。
もう半年もやっているのだ。
こんなことは日常茶飯事、誤魔化すのも慣れたものである。
慣れた、ものである。
ーー不意に、心がざわついた。
さっき僕は、何をpushした...?
先程あげたPRを恐る恐る見る。
ーー画面には「先輩日記」が見事にpushされてしまっていた。
まずい。
じっとりと、手に嫌な汗が流れ始める。
大丈夫だ。まだ誰も見ていない。
PRをcloseしてしまおう。僕はcloseボタンを押した。
「Ooops!」
遷移先の画面にはあの黒いタコのようなキャラクターがいて、
谷底に向かって落下していた。
...こんな時に限ってGitHubが落ちている。
まずい。心臓が早鐘のようになり始める。
一旦落ちつこう。
先輩日記のファイルだけ、消してしまおうか。
いや駄目だ。commit履歴に残ってしまう。
レビューする時に見つかったら終わりだ。
いったんさっきのcommitをresetして、それをそのままforce push。
commitをなかったことにしよう。
そうしよう。
僕は震える手先を隠しながら、コマンドを入力した。
git reset --hard HEAD^
> You cannot go back.
「...?」
一瞬、なにが起きたかわからなかった。
gitで見たことないエラーがCLIに表示される。
なにかの間違いかもしれない。
再度入力する。
git reset --hard HEAD^
> You cannot go back.
息が浅くなる。
今度は祈りながら、再度、入力する。
git reset --hard HEAD^
> You cannot go back.
なんでだよ。一体何が起こってるんだ。
足が小刻みに震えだす。
頭の中が真っ白に塗りつぶされそうになる、そのとき、
肩を叩かれた。
「ーーーッ!」
「おい、どうした。顔色悪いぞ」
上司だった。
「なんか突然GitHubが落ちたみたいだな。ホラ」
上司の画面にはtwitter。
twitterにはGitHubが落ちた時特有の、エンジニアの阿鼻叫喚が流れているた。
確かにGitHubが落ちている。しかしーー
「すみません、なんかgitが動かないんですけど」
新人が上司に話しかけてきた。
「ちゃんと調べたか?」
「なにもしてないのに壊れたんですよ」
「そんなわけねーだろー、なにかしたんだよなにかを」
ぶつくさ言いながら、上司が新人の画面をいじり始める。
「あれ、、、おかしいなあ。checkoutが動かねえ」
「おかしいですよね」
「ほんとになにもしてないのかぁ?」
「なにもしてませんって」
「コンフリクトも無いのにcheckoutもできねえなんて、聞いたことねえぞ。ああ〜、もう、これ仕事になんないわ」
上司は大きく伸びをした。
周りのエンジニアたちも徐々に気づき始めたらしい。
何人のエンジニアが、あらゆるGitコマンドを叩き出す。
resetしてみるーー駄目
checkoutして過去のcommit履歴を見ようとしてみるーー駄目
一文字消してcommitしようとしてみるーーこれも駄目。致命的だ。
削除せず、追記してcommitするーー出来る
これじゃあまるでーー
「これじゃあ、後戻りできねえな」
上司はそう言ってあははと笑った。
そんなバカな、といって周りのエンジニアも笑った。
僕だけ笑えなかった。
GitHubが落ちるのはまだわかる。
ローカルのGitの機能の一部が使えないなんて、聞いたことがなかった。
無かったことにできないなんて、あんまりだった。
あのPRを、今すぐ無かったことにしたかった。
みんなが笑っている中、視界の端っこでCLIを見ていた。
そこには、まだあの文字が光っていた。
> You cannot go back.
2話へ続く
この記事が気に入ったらサポートをしてみませんか?