stash @ {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내게주는 이름이 모호한 이유는 무엇입니까?



답변

셸이 중괄호를 먹고 있으므로라고 말하는 동안 stash@{1}git은 볼 수 stash@1있으며 의미가 없습니다. 인수를 따옴표로 묶 git stash apply "stash@{1}"거나 ( 또는 git stash apply stash@"{1}"; 따옴표를 사용 하면 작동 함) 중괄호 사이에 쉼표가있을 때만 중괄호를 확장하도록 쉘을 재구성하십시오 (zsh는 어느 쪽이든 구성 할 수 있으며, bash는 쉼표 또는 범위로 중괄호 만 확장하고, 기타 쉘은 하나 또는 다른 방식으로 작동 할 수 있습니다.)


답변

안녕하세요 저도 똑같은 일이 일어났습니다. 가장 쉬운 수정 방법은 다음과 같습니다.

$ git stash apply stash@"{2}"

Windows git shell을 사용하고 있습니다.


답변

Windows에서 Magit을 사용하여 Emacs에서 작업하는 동안이 오류가 발생하는 경우 (예 : 저처럼)
이 빠른 솔루션이 도움이되기를 바랍니다.

(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


답변

zsh 사용자의 경우 :

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


답변

간단한 따옴표 사이에 숨김 ID를 넣으십시오.

git stash apply 'stash@{1}'


답변