如何删除使用git stash create创建的存储?

如何删除使用git stash create创建的存储?,git,Git,Git-stash似乎做了很多我想做的事情,除了脚本编写有点困难,因为如果没有任何更改,那么Git-stash;git stash pop会做一些与存储库中发生更改不同的事情 看来,git stash create就是这个问题的答案,一切都正常,除了一件事……我无法摆脱创建的隐藏。有没有办法把这些藏品处理掉 要100%清楚我在做什么: 创建隐藏: ~/tmp/a(master) $ git stash create 60629375d0eb12348f9d31933dd348ad0f03843

Git-stash似乎做了很多我想做的事情,除了脚本编写有点困难,因为如果没有任何更改,那么
Git-stash;git stash pop
会做一些与存储库中发生更改不同的事情


看来,
git stash create
就是这个问题的答案,一切都正常,除了一件事……我无法摆脱创建的隐藏。有没有办法把这些藏品处理掉

要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
#

git stash-drop
不接受任何参数(该参数会删除最上面的stash)或一个类似于:
stash@{n}
which
n
指定要删除的stash的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
删除一个隐藏将更改堆栈下所有隐藏的
stash@{n}
名称


我不知道你为什么认为需要删除一个隐藏,因为如果你使用的是
stash-create
没有为你的“隐藏”创建一个隐藏条目,所以没有任何东西可以删除。

要删除用
git-stash
创建的普通隐藏,你需要
git-stash-drop
git-stash-drop-stash{n}
。有关详细信息,请参见下文。


您不需要删除使用
git stash create
创建的隐藏。从文档中:

创建一个隐藏项(这是一个常规提交对象)并返回其对象名,而不将其存储在ref命名空间中的任何位置。这对脚本非常有用。它可能不是您想要使用的命令;请参阅上面的“保存”

由于没有任何内容引用stash提交,因此它最终将被垃圾回收


使用
git stash
git stash save
创建的存储保存到
refs/stash
,可以使用
git stash drop
删除。与所有Git对象一样,实际的隐藏内容不会从您的计算机中删除,直到
gc
在这些对象过期后删除它们(默认值为2周后)

较旧的存储保存在
refs/stash
(try
cat.git/logs/refs/stash
)中,可以使用
git stash drop stash{n}
删除,其中
n
是您应该使用的
git stash list
显示的数字

git stash save
而不是

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

Use
git stash save“some comment”
在您有要复制/移动到另一个分支的未老化更改时使用

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

您可以始终使用
git隐藏列表
检查所有隐藏索引


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

如果您100%确定只有一个存储或您想删除所有存储(将
git stash list
设置为107%确定),您可以执行以下操作:

git stash clear
..忘记它们(它会删除所有隐藏的内容)

注意:为那些最终在这里寻找清除所有问题的方法(如我)的人添加了此答案。

来自git doc:

下降[-q |--安静][]

从隐藏列表中删除单个隐藏状态。如果给定“否”,则删除最新的一个。i、 e.
stash@{0}
,否则必须是格式为stash@{}的有效stash日志引用

例如:

git stash drop stash@{5}
这将删除隐藏条目5。要查看所有存储列表,请执行以下操作:

git stash list
它也起作用

git stash drop <index>
文件在这里(中文)

你可以用

吉特藏品清单

git隐藏投递隐藏{0}


Git stash clear将清除全部隐藏

cmd:git隐藏清除

如果要删除具有隐藏索引的特定隐藏,可以使用drop

cmd:git隐藏下降4


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

仅删除一个存储
git存储下降

删除所有隐藏
git stash clear

显示您的藏品
git藏品显示


要删除特定的存储
git stash indexnumber
例如
git stash drop 4

那么,条目是使用“stash”创建的……从逻辑上讲,人们会认为它将使用“stash”删除。查看git stash的手册页。stash create不创建条目,只创建该存储的提交对象,因此在存储日志中没有要删除的条目。示例:create create stash(这是一个常规提交对象)并返回其对象名,而不将其存储在ref命名空间中的任何位置。警告:您可能不应该删除多个,如1、2、3、,实际上,你会放弃原来的数字1、3和5。删除1、2和3的正确方法是按照3、2、1或1、1、1的顺序执行。此外,它的索引为0,0位于堆栈的顶部。当按下“隐藏更改”按钮时,Git Extensions会发出一个未知命令,无论它做什么,都会在退出和重新启动应用程序期间持续存在。没有明显的方法可以使用GUI消除隐藏,但是从命令行“git stash list”显示WIP隐藏,而“git stash clear”可以消除它。它没有回答名义上的问题。因此,像我这样的人,他们通过谷歌搜索名义问题的答案来回答这个问题,并不特别关心实际的细节,而是投票给真正回答这个问题的人。一些人还恶意地否决了被接受的答案,因为这对他们没有帮助。我个人刚刚对帮助我的答案投了赞成票。因此:1)谷歌“git delete stash”2)根据问题标题的前半部分点击So链接3)投反对票正确
git stash drop <index>
git stash drop 5
git stash           // create stash,
git stash push -m "message" // create stash with msg,
git stash apply         // to apply stash,
git stash apply indexno // to apply  specific stash, 
git stash list          //list stash,
git stash drop indexno      //to delete stash,
git stash pop indexno,
git stash pop = stash drop + stash apply
git stash clear         //clear all your local stashed code