コミット前の作業を一時的に退避させるgit stashの使い方

コミット前の作業を一時的に退避させるgit stashの使い方

コミットをする前に作業を、一時的に避けておきたいときがありませんか?

例えば、作業ブランチを切らずに作業してしまった場合や、作業中に急ぎの別の作業が入った場合、作業中にブランチを切り替えたい場合など、今やっている作業を一時的に避けておきたいときに便利なのが、git stashというコマンドです。

作業を退避させるには

git stash

git stashというコマンドをターミナルで打つと、作業ツリーから作業していた内容が一旦、見えなくなります。試しに、git statusを打つと、差分はないと言われます。

On branch feature/lesson26-2
nothing to commit, working tree clean

stashした内容を確認するには、git stash listを使います。するとこのようなリストが表示されます。上に表示されているものほど新しい履歴となります。

stash@{0}: WIP on lesson26-2: 1a9d310 refactor: Remove class. # 一番新しい退避した作業内容
stash@{1}: WIP on lesson26-2: 1a9d310 refactor: Remove class.

退避した作業を戻す

下記のどちらかのコマンドで、退避した内容を、現在いるブランチに戻すことができます。

git stash applyは退避した作業の履歴が残ったままになります。git stash popは退避した作業の履歴が消えます。そのままだと、一番新しい作業履歴を戻してくれますが、どの履歴を戻すのかは、stash@{1}などで、指定することも可能です。

git stash apply //退避の一覧から該当の作業を削除しない
git stash pop //退避の一覧から該当の作業を削除する

//戻す作業を指定するとき
git stash apply stash@{1}
git stash pop stash@{1}

git stashの注意点

git stashは、新しく追加したファイルについては、退避の対象に含まれませんので、ご注意ください。まだ追跡されていない新規のファイルを退避させたいときは、下記のコマンドにします。

git stash -u

以上、簡単に 作業を一時的に退避させるgit stashの使い方と注意点をご説明させて頂きました。

まい

フロントエンドエンジニア目指して、勉強中です。

Gitカテゴリの最新記事