Git stash似乎做了很多我想做的事情,除了编写脚本有点困难,因为如果你没有更改,那么Git stash;gitstashpop将做一些不同于在存储库中进行更改的事情。

看来git stash create是这个问题的答案,而且一切都有效,除了一件事……我无法摆脱创建的stash。有什么办法把这些东西扔掉吗?

为了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

当前回答

git stash drop不带任何参数(它会删除顶部的stash)或stash引用,它看起来像:stash@{n},n指定要删除的stash。您不能将提交id传递给git stash drop。

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

删除一个存储将更改堆栈中所有存储的存储@{n}名称。

我不知道为什么你认为需要丢弃一个存储,因为如果你正在使用存储,那么创建一个存储条目并不是为你的“存储”创建的,所以没有任何东西可以丢弃。

其他回答

它也有效

git stash drop <index>

like

git stash drop 5

对于希望从UI本身操作存储的VS代码用户,请使用以下方法:

确保已安装GitLens扩展。转到“源代码管理”选项卡。检查STASHES部分。你会找到你所有的藏物(和git藏物清单一样)你会找到直接的按钮来分别应用Stash、与HEAD比较和删除Stash。

要删除特定的存储,请单击“删除存储”按钮并确认删除(删除)它。

处理藏匿物品的最佳方法是,首先检查藏匿物品清单

git stash list

然后确定并确认是否有您的顾虑,然后继续

git stash drop

它会一个接一个地删除隐藏的内容(从顶部开始)

git stash drop <index>

它将删除特定索引(即5)上的存储

但如果你确定列表中没有需要的东西,那就去

git stash clear

它会把它们全部去掉。

git隐藏列表

git存储drop 1

文件在这里(中文),请点击。

你可以使用

git隐藏列表git stash drop stash@{0}