💰

Stashはゴミ箱じゃない。試行錯誤の「遠回り」を技術資産に変える、新人なりのGit生存戦略

に公開

はじめに:「昨日の自分、何に苦労してたんだっけ?」

エンジニアの皆さん、特に私と同じように、日々「試行錯誤」の真っ最中の方。こんな経験はありませんか?

  • 「数日前に苦労して書いたコード。なぜこの実装をボツにしたのか、理由を思い出せない」
  • 「1日中コードと格闘したのに、結局元に戻してしまった。自分は今日1日、何も進歩していないのではないか…という虚無感」
  • 「試行錯誤のプロセスを脳内だけで完結させてしまい、せっかくの学びがその場で消えてしまう」

脳内や自分なりのメモでこうしたプロセスを管理されている方もいらっしゃるかと思います。ですが、まだ余裕のない私は、「せめて泥臭い試行錯誤の形跡だけでも、確実な知見として残しておきたい」と考えました。

そこで、「自分の歩みを技術資産に変える」ために、Gitのstashを使って、日々の『回り道』をストックする運用を始めました。

本記事では、履歴を汚さずに自分の成長の足跡を貯め込む、新人なりのGit活用法を紹介します。

なぜ「知見」は残らないのか?

通常、私たちがコミットするのは「完成した(または動く)コード」だけのことが多いのかなと思います。 試行錯誤の過程で生まれた「ボツ案」は、以下のような末路を辿ります。

  • git restoreで消し去られる(知見の完全消滅)
  • 適当にgit stashされ、そのまま忘れ去られる(知見の埋没)

git logに残るのは、磨き上げられた「正解」だけ。ですが、新人にとっての本当の学びは、その裏側にある「なぜそのアプローチはダメだったのか」「どんな壁にぶつかったのか」という思考の履歴にこそ詰まっているのではないか、と感じています。

提案:「ボツ案はStashへ」

Stashを単なる一時避難所ではなく、自分専用の「知見の貯蔵庫」として活用してみることにしました。

1. 期待通りにいかなかった時(ボツ案・保留)

コードを元に戻す前に、自分へのメモとしてstashします。

git stash push -m "目的: 複雑な条件分岐のリファクタリング | 仮説: Strategyパターンで共通化 | 結果: 逆にクラスが増えすぎて可読性が低下、一旦戻す"
  • 目的: 何を解決しようとしたか
  • 仮説: どうすれば良くなると思ったか
  • 結果: なぜ「ボツ」にしたのか

2. うまくいった時(採用案)

最終的にうまくいったコードは、チームのルールに従ってcommitします。

コミットメッセージはチーム開発の共有資産なので、プロジェクトの規約(「fix: 〜」や「feat: 〜」など)を守ることが最優先です。
しかし、手元のstashに試行錯誤の記録が残っていれば、コミットメッセージを書く際や、プルリクエストの概要を書くときに「なぜこの実装を選んだのか」を言語化する強力な助けになります。(GitHub Copilotを使えばある程度楽ができる部分でもあります...)

3.振り返り

溜めていったstashは、あとから振り返ることで価値が出ます。
本来はgit stash listで一覧できますが、私はコマンドよりも VSCode の拡張機能「Git Graph」 を使って確認しています。
Git Graph だと Stash が GUIで視覚的に並ぶので、

  • どんな試行錯誤を保存したか
  • どれがどの失敗(または検証)だったか
  • いつの自分が何に悩んでいたか

が一目で分かり、日常的に振り返りやすいです。

この運用の何が嬉しいのか?

① 「遠回り」が「検証実績」に見えるようになる

3時間ハマってコードを元に戻した時、これまでは「進捗ゼロ」だと落ち込んでいました。しかしこの運用なら、「このアプローチがなぜ不適切かを自分の手で検証した」という記録が手元に残ります。これだけで、一日の仕事に納得感が出ます。

② チームへの相談・説明の「保険」になる

レビューで「なんでこの実装にしなかったの?」と聞かれた際、「手元のStashに『〇〇で破綻した』という記録があるので確認しますね」と一呼吸置けるのは、精神的な支えになります。

③ チームのルールを邪魔しない

この運用のメインはあくまでstashです。チームの共有履歴(git log)を汚すことなく、自分のローカル環境だけで自由に「思考のゴミ」を「知見」に変えておくことができます。

次やりたいこと:AIを使って「思考のログ」を自動で備忘録に変える

ここまで読んで、「毎回そんな長文を打つのは、開発のリズムが崩れて大変そう」と感じた方もいらっしゃるかもしれません。正直、私もそう思います。

だからこそ、今度はGitHub CopilotなどのAIを「自分の努力を言語化する秘書」として活用する方法に挑戦していきます。

現在の差分(diff)から適切なstashメッセージをAIに考えてもらう「入力の省力化」はもちろん、1日の終わりにstashcommitの履歴をAIが読み取り、「今日どんな壁にぶつかり、何を得たか」をプライベートな備忘録(日報)として自動集計する仕組みを構築します。

「AIと一緒に、日々の試行錯誤を価値ある資産に変えていく」そんな方法を深堀していきます!

ヘッドウォータース

Discussion