存储@ {1}是不明确的?
我试图获得有关我的藏匿的信息,但混帐告诉我, stash@{0}
和stash@{1}
是不明确的。 git stash list
工作正常, .git/logs/refs/stash
似乎有适当的内容(不是我是git内部专家)。
% git stash list stash@{0}: On master: two stash@{1}: On master: one % git stash show stash@{1} fatal: ambiguous argument 'stash@1': unknown revision or path not in the working tree. Use '--' to separate paths from revisions
只是简单的git stash show
工作正常。 那么为什么git stash list
的名称让我觉得模糊?
你的shell正在吃掉你的大括号,所以当你说stash@{1}
,git会看到stash@1
,这是没有意义的。 引用参数(使用git stash apply "stash@{1}"
),或者重新configuration你的shell只在它们之间有一个逗号的时候展开大括号(zsh可以用任何一种方式configuration,bash只用逗号或范围来扩展大括号他们,其他贝壳可能performance一个或其他方式)。
嗨,我有同样的事情发生在我身上。 最简单的解决方法是:
$ git stash apply stash@"{2}"
我正在使用一个Windows Gitshell。
如果你在使用Windows上的Magit的Emacs(像我一样)时出现这个错误,
我希望这个快速解决scheme能帮助你:
(if (eq system-type 'windows-nt) (defadvice magit-run-git (before magit-run-git-win-curly-braces (&rest args) activate) "Escape {} on Windows" (setcar (nthcdr 2 args) (replace-regexp-in-string "{\\([0-9]+\\)}" "\\\\{\\1\\\\}" (elt args 2))) ) )
这将在magit-run-git
("stash", "cmd", "stash@{0}")
中的第三个参数中引用{}
对于zsh用户:
$ git stash apply stash@'{'1'}'
简单地在简单的引号之间加上stash id:
git stash apply 'stash@{1}'