我刚刚升级了git。我正在使用git版本1.8.3。
今天早上我试图在堆栈的深处取消一个更改。
我跑git stash pop stash@{1}
并收到此错误。
fatal: ambiguous argument 'stash@1': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
我已经尝试了大约20多种变体以及使用apply
代替pop
但没有成功。改变了什么?其他人遇到过这个吗?
答案 0 :(得分:219)
如前所述,大括号可能需要转义或引用,具体取决于您的操作系统,shell等。
有关可能出错的详细提示,以及如何在各种shell和平台中解决此问题,请参阅“stash@{1} is ambiguous?”。
git stash list
git stash apply stash@{n}
答案 1 :(得分:144)
你需要逃避大括号:
git stash pop stash@\{1\}
答案 2 :(得分:53)
如果您想确保不必须处理语法stash@{x}
的引号,请使用Git 2.11(2016年第4季度)
commit a56c8f5见Aaron M Watson (watsona4
)(2016年10月24日)
(Junio C Hamano -- gitster
--于2016年10月31日commit 9fa1f90合并)
引用stashes
stash
:仅允许索引而不是引用&#34;
stash@{n}
&#34;明确地,使它成为可能 只需引用为&#34;n
&#34;。
大多数用户只根据他们在藏匿栈中的位置来引用存储(我称之为&#34;索引&#34;这里)。典型存储(
stash@{n}
)的语法有点烦人 容易忘记,有时难以正常逃脱 脚本强>因此能够通过藏匿来做事 简单地引用索引是可取的。
所以:
git stash drop 1
git stash pop 1
git stash apply 1
git stash show 1
答案 3 :(得分:47)
在Windows Powershell上运行:
git stash apply "stash@{1}"
答案 4 :(得分:15)
罗伯特指出,引号可能对你有用:
git stash pop stash@"{1}"
答案 5 :(得分:10)
如果以上都不起作用,藏匿处周围的引号可能对您有用:
git stash pop "stash@{0}"
答案 6 :(得分:4)
我已经安装了2.22,并且可以正常工作。
git stash pop --index 1
答案 7 :(得分:1)
2.11及更高版本使用以下命令:
git stash list
git stash apply n
n是隐藏@ {12}
答案 8 :(得分:0)
首先检查列表:-
git stash list
复制要从存储列表中弹出的索引
git stash pop stash@{index_number}
例如:
git stash pop stash@{1}