stash @ {1}가 모호합니까?


122

나는 나의 은닉에 대한 정보를 얻으려고하지만, 자식은 나에게 말하고 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내게주는 이름이 모호한 이유는 무엇입니까?


1
제 경우에는 어떻게 든 stash오류를 일으킨 라는 분기로 끝났습니다 .
Zaz 2014-08-07

그리고 제 경우에는라는 이름의 원격 stash이있어서 오류가 발생했습니다!
Robert Muil

답변:


231

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


1
@sehe : 언커먼이 현재 사용하고있는 것. 인용 된 오류 메시지는 매우 명확하게 나타냅니다 (아니요, bash 일 수없는 것 같습니다).
Jan Hudec 2011-06-24

83
Windows에서 PowerShell도 대괄호를 사용합니다. 백틱으로 탈출 할 수 있습니다(git stash drop stash@`{1`})
Xavier Poinas

8
물고기와 함께 일어난 일 덕분에 무슨 일이 일어나고 있는지 확신하지 못했습니다.
Elijah Lynn

3
@Sergey는 PowerShell에 stash @`{0`} (역 따옴표) 또는 'stash @ {0}'(작은 따옴표)를 사용합니다.
Hans

4
오 마이, 1 년이 지난 후 문제가 생겼기 때문에이 문제에 다시 돌아 왔습니다. 내가 이것을 얼마나 드물게 사용하는지 보여줍니다. 그런 다음 나는 확실히 위에 댓글을 남겼 음을 확인하기 위해 Fish에서 발생한다고 말합니다. 너무 웃기다.
Elijah Lynn

23

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

$ git stash apply stash@"{2}"

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


2
또한git stash apply "stash@{2}"
rsenna

1
powershell 작업
rsenna

동일한 git stash apply "stash @ {2}"가 저에게 효과적이었습니다. 세 번째 숨김을 git stash하려고 할 때 "unknown option : -encodedCommand"메시지가 표시되었습니다. 터미널로 powershell 통합이있는 Visual Studio 코드를 사용하고있었습니다.
라잔 차우

1

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



1

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

git stash apply 'stash@{1}'

3
이것은 질문에 어떻게 대답합니까? 숨김 목록에 # 3 색인이 없습니다. 이것이 심각한 대답이라면이 명령이 문제를 해결하는 이유를 설명해주십시오
Brad

명확성을 위해 내 대답을 편집했습니다. 주요 아이디어는 간단한 따옴표 사이에 숨김 ID를 넣는 것입니다. 'apply'또는 'drop'하위 명령에 적용됩니다. 숨김 ID 번호는 실제로 문제가되지 않습니다
아드리아누

이 코드 스 니펫은 질문을 해결할 수 있지만 설명을 포함하면 게시물의 품질을 향상시키는 데 큰 도움이됩니다. 앞으로 독자를 위해 질문에 답하고 있으며, 해당 사용자는 코드 제안 이유를 모를 수 있습니다.
DimaSan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.