Twitterでふぁぼったものをひたすら試します

git challengeに参加して3位だった

あの、出だしからちょっと失礼なこと言います。

CODE FESTIVAL行きたかった。

でもって訂正します。

git challenge面白かった。

いや、ね、予選落ちしたんだよ。ひでぇ話だよな。でもその代わりこのイベントに参加してgitの知識がついたのでこの悔しさがチャラになったよ。

本戦に出た奴より炎上gitの消火能力が高くなった。やったぜ。

本題

alpha.mixi.co.jp

炎上したリポジトリを渡されるので、歴史改変等を行い正常な状態に直すというゲーム。採点はCircle CIくん。全部で18題。多分。

2人1組になって行い、我がF欄工業大学チームは3位を獲得。お疲れ様でした。

悔しいのは2位と1点差だったこと。
以前のアレで覚えたちぇりーぴっくを使う問題を解けていれば2位だった……!役に立ってねえし。
まあ仕方ない、次使うときは悔しさで思い出すはず。

全体的に言っても接戦だった。みんなが解ける問題が無事解けて、でも解けない問題は解けなかったので3位だった、というところか。

問題としては、

  • rebase でコミット文改変
  • cherry-pick で必要なコミットだけ救出
  • rev-list とシェルを組み合わせて一括修正
  • reflog で消したブランチの復活
  • filter-branch でファイルの完全削除
  • pull --rebase で正しくマージ
  • 等々

と、基本から複合問題まで様々。実際の現場で起きたことも問題になっていr……いや、あまり深く考えると炎上で身を焼かれるのでやめよう。

シェルについては人力でできなくもなかったけど、他のを解く時間がなくなるので、わからないなりにちょっと書いたり書かなかったり。シェル芸(笑)とか言ってる場合じゃない。
あと、submoduleの問題集合は文章題の意味がよくわかんなかった*1ので、「submodule含むプロジェクトはまずそいつを持ってこないとな!」っていって新しくしたら一気に全部PASSになってよくわからないまま終わった。自分でも何言ってるかわかんねえ。

とにかく、今までGoogle先生で場当たり的に調べてたものを再確認したり新しいテクニックを学んだりできてよかった。

他、どうでもいいこと

  • ふざけたリポジトリを置いといたら発見され問題となった。いや、見つけられることを目的として置いた訳じゃないんだ。私はただ生魚と焼肉が食いたかっただけなんだ。ごめんなさいなんでもないんです許してくださいごちそうさまでした
  • ステッカーコレクションが増えた(重要)
  • 千歳飴をいただいたので、今度振袖着るときに活用するつもり。しねえよ。
  • このイベントは記念すべき第1回だったらしい。またやるのかなぁ。解いてるこっちはいいけど、問題考えるのが大変そうだ。
  • コンフリクトといえば、.xcodeprojの関係でiOSマンは必須科目。IDEで扱いやすくしてるのに結局生のコードを読む羽目になるというオチ……
  • 女子率はついに0%へ

以上、みなさんお疲れ様でしたありがとうございました〜

*1:普段140字SNSと論文しか読まないと日本語能力が落ちるので各位気をつけてください