411

我刚刚升级了 Git。我在 Git 版本 1.8.3 上。

今天早上,我试图在堆栈深处解开更改 1。

我跑了git stash pop stash@{1},得到了这个错误。

致命:模棱两可的参数“stash@1”:未知修订版或路径不在工作树中。使用 '--' 将路径与修订分开,如下所示:'git [...] -- [...]'

我已经尝试了大约 20 多种变体以及使用apply而不是pop没有成功。有什么改变?还有人遇到这种情况吗?

4

9 回答 9

553
git stash apply n

从 git 版本 2.11 开始工作

原始答案,可能有助于调试涉及 shell 转义的旧语法的问题:

如前所述,花括号可能需要转义或引用,具体取决于您的操作系统、shell 等。

请参阅“ stash@{1} 是否有歧义? ”以获取有关可能出现问题的一些详细提示,以及如何在各种 shell 和平台中解决它。

git stash list
git stash apply stash@{n}

git stash 应用版本

于 2013-07-03T17:51:35.310 回答
199

您需要转义大括号:

git stash pop stash@\{1\}
于 2013-07-03T17:51:43.880 回答
125

如果您想确保不必处理语法的引号stash@{x},请使用 Git 2.11(2016 年第四季度)

请参阅Aaron M Watson ( )的提交 a56c8f5(2016 年 10 月 24 日) 。(由Junio C Hamano 合并——提交 9fa1f90中,2016 年 10 月 31 日)watsona4
gitster

stash: 只允许索引引用 stash

代替stash@{n}显式引用“”,可以简单地引用为“ n”。
大多数用户只通过他们在存储堆栈中的位置来引用存储(我在这里称为“索引”)。

典型的 stash ( stash@{n}) 的语法有点烦人且容易忘记,有时很难在脚本中正确转义

因此,通过简单地引用索引来处理存储的能力是可取的。

所以:

git stash drop 1
git stash pop 1
git stash apply 1
git stash show 1
于 2016-11-11T07:52:03.500 回答
52

在 Windows Powershell 我运行这个:

git stash apply "stash@{1}"
于 2015-07-01T22:13:39.310 回答
17

正如罗伯特指出的那样,引号可能对您有用:

git stash pop stash@"{1}"
于 2015-08-18T02:22:57.457 回答
12

如果上述方法均无效,则 stash 本身的引号可能对您有用:

git stash pop "stash@{0}"
于 2017-04-24T15:00:42.137 回答
9

版本 2.11+ 使用以下内容:

git stash list

git stash apply n

n 是数字stash@{12}

于 2019-09-05T05:40:57.517 回答
9

我安装了 2.22 并且这工作..

git stash pop --index 1
于 2019-10-03T23:55:52.530 回答
3

首先检查列表:-

git stash list

复制要从存储列表中弹出的索引

git stash pop stash@{index_number}

例如。:

git stash pop stash@{1}
于 2019-02-05T11:10:05.323 回答