March 2024
Intermediate to advanced
576 pages
9h
Japanese
日常の開発サイクルに、バグフィックスを依頼されたり、同僚や上司から何かを頼まれたりといった割り込みが絶えず発生し、自分がしようとしている本来の仕事が停滞し、散漫になっていると感じることはないだろうか。そのような場合は一時退避(stash)が役に立つ。
この章では、現在の作業内容を一時退避させる方法と一時退避したコンテキストの表示方法を学ぶ。続いて、Gitリポジトリのローカルコミットを記録する参照ログ(reflog)について学ぶ。これらの機能は、ほかの仕事のために現在の作業内容を一時退避しなければならないときに役立つ。
一時退避(stash)は、進めている仕事の作業内容をキャプチャ、保存し、落ち着いた時間に仕事に戻れるようにするためのメカニズムである。確かに、従来のブランチとコミットのメカニズムでも同様のことはできるが、一時退避なら、インデックスと作業ディレクトリの内容全体を1個の単純なコマンドですばやくキャプチャでき、リポジトリをクリーンに保ち、煩雑にならず、開発の方向性を変えるときにも対応できる。別の1個のコマンドでインデックスと作業ディレクトリを復元できるので、中断したところからすぐに仕事を再開できる。
いくつかのサンプルユースケースを使って一時退避の仕組みを探ってみよう。
いくつかのファイルを書き換え、その一部はインデックスにステージングするなど、いい感じでGitリポジトリを操作していたところ、割り込みが入ったとしよう。たとえば、致命的なバグが見つかり、すぐに直してくれと言われたり、チームリーダーが急にほかのすべての仕事よりもある新機能の開発を優先させ、今の仕事を中断してすぐにそちらに取りかかれと言い出したりといった状況である。 ...