こんにちは、ラルフです。

表題の通りmixiさん主催の git challenge に出場してきました。

「ブログを書くまでが遠足」だそうなので、どんな感じだったかを振り返りながら書いてみようと思います。


まず、出題の形式ですが、チームごとに用意されたリポジトリをクローンもしくはリポジトリをzipでダウンロードして、問題で求められている正しい形にcommitやらなんやらしてpushする感じです。

pushすると勝手にチェックしてくれてクリアであればスコアボードが点灯します。

問題としては、★1が5題、★2が8題、★3が2題、★5が1題、★6が1題の計17問です。

★が多くなるほど難しくなります。

チームとしての作戦は、奇数番目、偶数番目の問題で各々★3までとにかくすすめる作戦を取りました。

相方がgitのより基本的な部分(blobとかtreeとかそこらへん)に詳しかったので、そのような問題が出てきたら解いてもらうことにしました。

(2人チームですが、相方はその場で発表されます。前に一度会ったことのある方(@iteq) だったので、完全初対面ではありませんでした。)


問題の詳しいことはかけないので、簡単にまとめてみようと思います。

★1: 小手調べといった感じで、コマンドさえ知っていれば特に問題なく進めます

★2: あまり使わないコマンドを併用したりブランチ間を渡り歩いたり、普段は考えない視点で問題を考えることが必要でした

★3: ひたすらコンフリクトと戦っていました

★6: 時間さえあれば・・・!

★5は相方に任せました。


今回の競技の中で、ほぼ必須と言っても過言ではなかったのが、SourceTreeです。

どのようなブランチに切られてマージされて、といったことが視覚的にわかるのが非常に強いです。

(前回の大会ではSourceTreeオンリーで優勝したらしいです)

(もちろんtigでも代用可能です)

今日打ったコマンドは全部で136個でした(git checkoutはほぼ全部SourceTreeでやったので、換算するともっと多い)

個人的MVPコマンドは、git reflog でした。

問題を解決する手段に使うもよし、ミスった操作をしてどこまでか戻りたい時に調べるために使うもよし、便利なやつです


今回のgit challengeで得られた教訓は

- Force Push ダメ ゼッタイ(可能ならbranch protectをかける)

- 問題文はしっかりと最後まで読む

- まずはコマンド打ってみる

といった感じです


結果は★3まで全問正解で優勝でした。

はじめ2時間くらいは単独1位だったのですが、最後の2問が強敵すぎてあえなく時間切れでした。

とはいえ、gitとここまで格闘するのは楽しかったですし、いろいろな人と会えたので良かったです。

同じGチームの相方、参加者の皆さん、そしてmixiさん、ありがとうございました 🙏


ナイスな相方の記事はこちらです

http://blog.itkq.jp/post/git-challenge/