LoginSignup
0
0

Git スタッシュで作業を保存しておく

Last updated at Posted at 2023-05-18

スタッシュはいつ使うの?

作業が途中でコミットしたくないけど、別のブランチに移って作業したい...そんなときに、ワークツリーの内容を一時的に保存しておくのがスタッシュ

使い方

# 作業を一時保存する
$ git stash

注意として、新規ファイルを作成してまだステージしていない場合は、そのファイルはGitの管理下にないので、一時保存されない。ステージしてからスタッシュするようにしよう。

# 一時保存した作業一覧を確認する
$ git stash list
# 最新の作業を復元する
$ git stash apply
# ステージの状況も含めて、最新の作業を復元する
$ git stash apply --index

# 特定の作業を復元する
$ git stash apply <スタッシュ名>

スタッシュ名はstash@{1}などの文字列である。

# 最新の作業を削除する
$ git stash drop

# 特定の作業を削除する
$ git stash drop <スタッシュ名>

# 全作業を削除する
$ git stash clear

試してみよう

$ git checkout master
# ブランチを切っておく
$ git branch hotfix
# ファイルに変更を加える
$ echo hoge > hoge.txt
$ git add hoge.txt
# ファイルをスタッシュする
$ git stash
Saved working directory and index state WIP on master: 6f77a05 create hoge.txt
# 一覧を確認する
$ git stash list
stash@{0}: WIP on master: 6f77a05 create hoge.txt
# ブランチを切り替えて戻ってくる
$ git checkout hotfix
Switched to branch 'hotfix'
$ git checkout master
Switched to branch 'master'

ここでlsコマンドを実行して、hoge.txtがないことを確認しておこう。

続き

$ git stash apply
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        new file:   hoge.txt

再度lsコマンドを実行して、hoge.txtが復元されたことを確認しよう。

ここまできたら、保存した作業はいらないので削除しておこう。

$ git stash clear
# 作業一覧を確認(何も表示されなければ成功)
$ git stash list
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0