未来エンジニア養成所Blog

プログラミングを皆に楽しんでもらうための情報をお届けします。

【Git&GitHub】避難した作業を削除する(git stash dropコマンド)

title


避難した作業を削除しよう

今回は一時避難した作業を削除する方法について解説します。


一時避難した作業を削除するコマンドは

$ git stash drop

になります。

「git stash drop」とすることで、最新の一時避難した作業を削除することができます。


もし特定の作業を削除したい場合は

$ git stash dorp [スタッシュ名]

と入力します。


例えば

$ git stash drop stash@{1}

と入力します。


もし、たくさんstashした作業があって、一個一個作業していくのは面倒なので、全部の避難した作業を削除したいという場合は

$ git stash clear

というコマンドを使います。


それではイメージで確認していきましょう。

stash


今の状況として、避難した作業が2つあるとします。

この状況で「git stash drop」コマンドを使うと一番最新の避難した作業がされます。

drop1回目


そしてもう一度「git stash dorp」コマンドを使うと次に避難した作業が削除されます。

drop2回目


このように「git stash dorp」コマンドを使うことで、避難した作業(stashした作業)を削除することができます。


実際にやってみよう

それではターミナルで確認していきましょう。


まず、避難した作業が今どれくらいあるのか確認します。

$ git stash list
stash@{0}: WIP on main: 55c46b4 third.htmlを追加

すると、1つ避難した作業があることがわかります。


それではこちらの避難した作業を削除していきます。

$ git stash drop
Dropped refs/stash@{0} (e3bbe0f33d83a419421ad8621fc2d7b7f104940d)

するとdropしたよ(削除したよ)と表示されます。


では、本当に削除されたのか確認してみましょう。

$ git stash list

すると何も表示されません。


このように「git stash dorp」コマンドを使うことで削除することができました。


今回の内容としてはここまでなのですが、最後にワークツリーの状況をお掃除しておきましょう。


今変更している作業があるので、そちらの変更内容を確認してみます。

$ git status
On branch main
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
    modified:   home.html

no changes added to commit (use "git add" and/or "git commit -a")

すると「home.html」が変更されていることがわかります。


では、この変更を取り消しておきましょう。

$ git checkout home.html
Updated 1 path from the index

これで変更が無かったことにできました。


一応「git status」コマンドで確認しておきましょう。

$ git status
On branch main
nothing to commit, working tree clean

すると、何も変更がないよと表示されました。


これでお掃除完了です。


ここまでで「git stash」の一通りの内容を押さえてきました。

「git stash」コマンドは今作業中で急遽別の作業をしないといけない時(特にバグフィックスとか)に使うととても便利なので、是非使って見てください。


参考図書



独学で挫折しそうになったら、オンラインプログラミングスクール
未来エンジニア養成所Logo