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
"スタッシュ" に対してスタッシュ エントリが作成されないため、ドロップするものが何もないからです。