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.