如何在1.8.3中存储stream行特定的存储?

我刚刚升级了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 ,没有成功。 什么改变了? 其他人遇到这个?

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

有关可能出错的一些详细提示,以及如何在各种shell和平台中解决这个问题,请参阅“ stash @ {1}不明确?

 git stash list git stash apply stash@{n} 

git存储应用版本

你需要摆脱大括号:

 git stash pop stash@\{1\} 

在Windows Powershell我运行这个:

 git stash apply "stash@{1}" 

如果你想确保不必处理语法stash@{x}引号,可以使用Git 2.11(Q4 2016)

见Aaron M Watson( watsona4 )的 提交a56c8f5 (2016年10月24日) 。
(由Junio C gitstergitster -在9fa1f90 ,2016年10月31日提交 )

stash :只允许索引参考索引

不要明确引用“ stash@{n} ”,而只需引用“ n ”即可。
大多数用户只能通过他们在存储堆栈中的位置来引用存储(我在这里称之为“索引”)。

典型存储( stash@{n} )的语法有点烦人,容易遗忘, 有时很难在脚本中正确地转义
正因为如此,通过简单引用索引来做事情的能力是可取的。

所以:

 stash drop 1 git stash pop 1 git stash apply 1 git stash show 1 

正如罗伯特所指出的那样,引号可能会为你带来诀窍:

 git stash pop stash@"{1}" 

如果以上所有工作都没有,那么存储本身的引号可能适合你:

 git stash pop "stash@{0}"