我刚刚升级了 Git。我在 Git 版本 1.8.3 上。
今天早上,我试图在堆栈深处解开更改 1。
我跑了git stash pop stash@{1}
,得到了这个错误。
致命:模棱两可的参数“stash@1”:未知修订版或路径不在工作树中。使用 '--' 将路径与修订分开,如下所示:'git [...] -- [...]'
我已经尝试了大约 20 多种变体以及使用apply
而不是pop
没有成功。有什么改变?还有人遇到这种情况吗?
git stash apply n
从 git 版本 2.11 开始工作
原始答案,可能有助于调试涉及 shell 转义的旧语法的问题:
如前所述,花括号可能需要转义或引用,具体取决于您的操作系统、shell 等。
请参阅“ stash@{1} 是否有歧义? ”以获取有关可能出现问题的一些详细提示,以及如何在各种 shell 和平台中解决它。
git stash list
git stash apply stash@{n}
您需要转义大括号:
git stash pop stash@\{1\}
如果您想确保不必处理语法的引号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
在 Windows Powershell 我运行这个:
git stash apply "stash@{1}"
正如罗伯特指出的那样,引号可能对您有用:
git stash pop stash@"{1}"
如果上述方法均无效,则 stash 本身的引号可能对您有用:
git stash pop "stash@{0}"
版本 2.11+ 使用以下内容:
git stash list
git stash apply n
n 是数字stash@{12}
我安装了 2.22 并且这工作..
git stash pop --index 1
首先检查列表:-
git stash list
复制要从存储列表中弹出的索引
git stash pop stash@{index_number}
例如。:
git stash pop stash@{1}