メモログ

git stash の便利なオプション

git stash は、コミットしていない変更されたファイルを一時的に stash として保存して、変更がない状態に戻すことができます。仕掛かり中の作業の間に別の緊急の作業が入ってしまったりとか、変更前の状態から違う方法で修正をやり直してみたい場合とか、とりあえず現状を保存しておいて戻すことができるので、大変便利。

最近Code Schoolのサイトでちょこちょこ学習してみてるのですが(有料でやってるのもあり比較的まじめに)、Git Real 2のコースで知った git stash のオプションがわりと便利だなと思った次第。

ひとつは、 —keep-index のオプションで、git add で追加したファイルは stash に入れずに現状維持するオプション。オプションなしの場合は、git add しているファイルも git stash すると stack に保存される。

If the —keep-index option is used, all changes already added to the index are left intact.

ひとつは、 —include-untracked のオプションで、現在のリポジトリに存在しない untracked の状態のファイルも stash に保存してくれる。オプションなしの場合は、untracked なファイルは現状維持となる。

If the —include-untracked option is used, all untracked files are also stashed and then cleaned up with git clean, leaving the working directory in a very clean state. If the —all option is used instead then the ignored files are stashed and cleaned in addition to the untracked files.

たいていの場合、git stash と git pop だけで事足りますが、たとえば問題を修正した後にデバッグ目的で入れた処理とかの変更を一時的になしの状態にして動作確認をしたいとか、何らかのファイルをタスクか何かで出力するときに untracked なファイルが影響するのをなくしたいときなど、そういうときに地味に便利。

というメモ

私について

Yutaka Yamaguchi
東京在住。TypeScript, Node.js, Reactなどフロンエンドが主力。Perlも書く。SwiftやRubyも過去には使ってた。過去のTOEIC 860くらい。