тайник @ {1} неоднозначен? - PullRequest
112 голосов
/ 24 июня 2011

Я пытаюсь получить информацию о своем тайнике, но git говорит мне, что 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 дает мне, считаются неоднозначными?

Ответы [ 5 ]

210 голосов
/ 24 июня 2011

Ваша оболочка пожирает ваши фигурные скобки, поэтому, когда вы говорите stash@{1}, git видит stash@1, и в этом нет никакого смысла.Заключите аргумент в кавычки (используйте git stash apply "stash@{1}") или измените конфигурацию вашей оболочки, чтобы расширять только фигурные скобки, если между ними есть запятая (zsh можно настроить в любом случае, bash только расширяет фигурные скобки с запятой или диапазоном между ними, другие оболочки могут вести себя какили другим способом).

23 голосов
/ 14 августа 2015

Привет, со мной случилось то же самое.Самый простой способ исправить это было:

$ git stash apply stash@"{2}"

Я использую оболочку Windows Git.

1 голос
/ 08 марта 2017

Просто поместите идентификатор тайника между простыми кавычками:

git stash apply 'stash@{1}'
1 голос
/ 25 августа 2015

Для пользователей zsh:

$ git stash apply stash@'{'1'}'
1 голос
/ 03 января 2013

Если у вас есть эта ошибка при работе в Emacs с Magit на Windows (как и у меня)
Надеюсь, это быстрое решение поможет вам:

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

Это будет цитировать {} в третьемпараметр в ("stash", "cmd", "stash@{0}"), который запускается magit-run-git

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...