Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

stash@{1} is ambiguous?

Tags:

git

Your shell is eating your curly brackets, so while you say stash@{1}, git sees stash@1 and that makes no sense to it. Quote the argument (use git stash apply "stash@{1}" or git stash apply stash@"{1}"; quoting either way will work) or reconfigure your shell to only expand curly brackets when there is a comma between them (zsh can be configured either way, bash only expands curly brackets with comma or range between them, other shells may behave one or other way).


Hi there I had the same thing happen to me. Easiest way of fix it was:

$ git stash apply stash@"{2}"

I'm using a windows git shell.


If you have this error while working in Emacs with Magit on Windows (like me)
I hope this quick solution will help you:

(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)))
    )
  )

This will quote {} in a 3rd parameter in ("stash", "cmd", "stash@{0}") which is run by magit-run-git


For zsh users:

$ git stash apply stash@'{'1'}'