git stash create で作成したスタッシュを削除するにはどうすればいいですか? 質問する

git stash create で作成したスタッシュを削除するにはどうすればいいですか? 質問する

Git stash は、私が望むことの多くを実行してくれるようですが、変更がない場合にはgit stash; git stash popリポジトリに変更がある場合とは異なる動作をするため、スクリプト化が少し難しいです。

どうやらそれがgit stash createその問題の解決策のようで、1 つを除いてすべてうまくいきます...作成されたスタッシュを削除できません。スタッシュを削除する方法はありますか?

私が何をしているかを100%明確にするために:

スタッシュを作成します:

~/tmp/a(master) $ git stash create 
60629375d0eb12348f9d31933dd348ad0f038435
~/tmp/a(master) $ git st
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   new file:   b
#
~/tmp/a(master) $ git reset --hard
HEAD is now at 555d572 log message

スタッシュを使用する:

~/tmp/a(master) $ git apply 60629375d0eb12348f9d31933dd348ad0f038435
fatal: can't open patch '60629375d0eb12348f9d31933dd348ad0f038435': No such file or directory
~/tmp/a(master) $ git stash apply 60629375d0eb12348f9d31933dd348ad0f038435
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   new file:   b
#

スタッシュを削除します: (ただし、この最後の部分は機能しません)

~/tmp/a(master) $ git stash drop !$
git stash drop 60629375d0eb12348f9d31933dd348ad0f038435
'60629375d0eb12348f9d31933dd348ad0f038435' is not a stash reference

ベストアンサー1

git stash dropはパラメータを取らず、一番上のスタッシュを削除します。または、次のようなスタッシュ参照を取り、どのスタッシュを削除するstash@{n}かをn指定します。 にコミット ID を渡すことはできませんgit stash drop

git stash drop            # drop top hash, stash@{0}
git stash drop stash@{n}  # drop specific stash - see git stash list

スタッシュをドロップすると、スタックの下にあるすべてのスタッシュの指定が変更されます。stash@{n}

スタッシュをドロップする必要があると考える理由がわかりません。スタッシュを使用している場合、stash create"スタッシュ" に対してスタッシュ エントリが作成されないため、ドロップするものが何もないからです。

おすすめ記事