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隐藏列表

git存储drop 1

其他回答

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

你可以使用

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

你应该使用

git stash save

而不是

git stash create

因为这会创建一个stash(它是一个常规的提交对象)并返回其对象名称,而不会将其存储在ref命名空间中的任何位置。因此,无法使用隐藏应用程序访问。

使用git-stash-save“somecomment”,当您有想要复制/移动到另一个分支的未标记更改时使用

当您希望保存的(隐藏的)更改反映在当前分支上时,请使用git stash apply stash@{0}(假设您保存的存储索引为0)

您可以始终使用git存储列表来检查所有存储索引

并使用git stash drop stash@{0}(假设您保存的存储索引为0并且您想删除它)删除特定的存储。

如果你100%确定你只有一个储藏室,或者你想删除所有储藏室(制作一个数字储藏室列表,确保107%),你可以这样做:

git stash clear

..并忘记它们(它会删除所有隐藏的内容)。

注:添加了这个答案,供那些最终在这里寻找清除它们的方法的人(如我)使用。

Git存储清除将清除整个存储,

cmd:git存储清除

如果您想删除带有存储索引的特定存储,可以使用drop。

cmd:git stash drop 4

(4是存储id或存储索引)

来自git文档:http://git-scm.com/docs/git-stash

drop[-q|--quiet][]

从隐藏列表中删除单个隐藏状态。如果没有给出,则会删除最新的。即stash@{0},否则必须是stash@{}格式的有效stash日志引用。

例子:

git stash drop stash@{5}

这将删除隐藏条目5。要查看所有存储列表:

git stash list