자식 숨김 적용 버전


513

나는 두 가지가있다 : master | 디자인

디자인 작업에서 은닉하고 마스터로 전환하여 약간의 조정을 수행했습니다. 디자인으로 다시 전환 stash apply하고 디자인 브랜치에서 내 모든 변경 사항을 잃어 버리기 위해서만 노력했습니다.

나는 이것을 지우거나 제거하지 않았기 때문에 모든 작업이 숨어 있기를 바라고 있습니다.

숨김 목록을 작성하면 4 가지 결과가 나타납니다.

stash@{0}: WIP on design: f2c0c72... Adjust Password Recover Email
stash@{1}: WIP on design: f2c0c72... Adjust Password Recover Email
stash@{2}: WIP on design: eb65635... Email Adjust
stash@{3}: WIP on design: eb65635... Email Adjust

시도 git stash apply f2c0c72하면 오류가 발생합니다.

fatal: Needed a single revision
f2c0c72: no valid stashed state found

특정 숨김을 어떻게 적용 할 수 있습니까?


26
당신이 지금 가지고 주 (Q4 2016, 힘내 2.11) 구문 git stash apply 0(대신 git stash apply stash@{0}). 여기에 내 답변을 참조 하십시오 .
VonC

답변:


837

숨김의 키는 실제로 stash@{n}왼쪽 의 항목입니다. 그래서 시도하십시오 :

git stash apply stash@{0}

(일부 쉘 "stash@{0}"에서는 zsh, fish 및 powershell과 같이 인용해야합니다 ).

버전 2.11부터는 매우 쉽습니다 stash@{n}. 대신을 사용하는 대신 N 스택 번호를 사용할 수 있습니다 . 이제는 다음을 사용하는 대신

git stash apply "stash@{n}"

다음을 입력 할 수 있습니다.

git stash apply n

숨김 목록을 얻으려면 다음을 수행하십시오.

git stash list

실제로 stash@{0}git의 수정 버전으로 전환 할 수는 있지만 git stash apply ...DTRT를 사용하여 현재 위치에 적용하는 방법을 알아야합니다.


90
일부 쉘에서는 stash @ {n}을 인용해야합니다.
Senjai

7
다른 팁 : 예 gitk stash@{0}를 들어 특정 숨김에서 변경 한 내용을 표시 할 수 있습니다 .
antinome 2016 년

11
zsh을 사용자가 두 배로 필요 인용 예git stash apply "stash@{0}"
mynameistechno

7
stash@{n}입력하기 가장 어색한 명령입니다. 고유 한 별명 또는 함수를 작성하는 것 외에이를 수행하는 단축키가 있습니까?
Dylanthepiguy

2
git stash apply n평화로운
빅터

241

숨김을 적용하고 숨김 목록에서 제거하려면 다음을 실행하십시오.

git stash pop stash@{n}

숨김을 적용하고 숨김 캐시에 보관하려면 다음을 실행하십시오.

git stash apply stash@{n}

8
두 옵션을 구분 해 주셔서 감사합니다. 방금 이것을 시도했지만 지점 a에서 지점 b로 숨김을 팝하면 숨김은 여전히 ​​숨김 캐시에 남아있는 것으로 보입니다. 나는 당신이 여전히 미래에 지점에 팝을 적용 / 적용 할 수있는 옵션을 가질 것이라고 생각합니다. 이해가 되길 바랍니다. 능숙한!
longda

42
PowerShell의 경우 :git stash pop "stash@{n}"
ankitjaininfo

1
따옴표 / 작은 따옴표로 묶은 중괄호 만 있으면 PowerShell이 ​​행복합니다.git stash apply stash@"{n}"
m1kael

PowerShell도 수락합니다 git stash apply stash@`{n`}(중괄호 앞의 백틱에 유의하십시오).
이안 켐

52

버전 2.11부터는 매우 쉽습니다 "stash@{n}". 라고 말하는 대신 N 스택 번호를 사용할 수 있습니다 . 이제는 다음을 사용하는 대신

git stash apply "stash@{n}"

다음을 입력 할 수 있습니다.

git stash apply n

예를 들어 목록에서 :

stash@{0}: WIP on design: f2c0c72... Adjust Password Recover Email
stash@{1}: WIP on design: f2c0c72... Adjust Password Recover Email
stash@{2}: WIP on design: eb65635... Email Adjust
stash@{3}: WIP on design: eb65635... Email Adjust

적용하려면 stash@{1}다음을 입력하십시오.

git stash apply 1

그렇지 않으면 1.7.5.1 이후 디렉토리에 일부 변경 사항이 있어도이를 사용할 수 있지만, 오류가 발생하면 숨김이 작업 디렉토리 변경 사항을 겹쳐 쓰지 않아야합니다.

error: Your local changes to the following files would be overwritten by merge:
        file
Please commit your changes or stash them before you merge.

1.7.5.1 이전 버전에서는 작업 디렉토리가 변경되면 작동을 거부했습니다.


힘내 릴리스 노트 :

숨김의 기본 위치에서 단일 요소의 이름을 지정할 때 사용자는 항상 "stash @ {$ N}"이라고 말해야합니다 (예 : refs / stash의 reflog). "git stash"명령은 "git stash apply stash @ {4}"의 속기로서 "git stash apply 4"를 받아들이는 방법을 배웠습니다.

git stash apply "는 변경 사항이 기록 된 변경 사항과 겹쳐지지 않은 경우에도 작업 트리에 변경 사항이있는 경우 작업 거부를 나타내는 데 사용됩니다.


41

Windows 시스템과 PowerShell에있는 경우 다음과 같은 인수를 인용해야합니다.

git stash apply "stash@{0}"

... 또는 변경 사항을 적용하고 숨김에서 제거하려면 다음을 수행하십시오.

git stash pop "stash@{0}"

그렇지 않으면 따옴표없이이 오류가 발생할 수 있습니다.

치명적 : 모호한 인수 'stash @': 작업 트리에없는 알 수없는 개정 또는 경로.


Mac OSX 10.11에서도 피쉬 쉘을 사용할 때 이렇게해야합니다.
lps

8
git stash list

적용 할 숨김을 선택하고 숫자 만 사용하십시오.

git stash apply 1

2
Git Stash list 

목록에 모든 숨김 항목이 표시됩니다 (예 : stash @ {0} :, stash @ {1} :, .., stash @ {n}).

그런 다음 stash @ {n}을 나타내는 숫자 n을 선택하십시오.

git stash apply n 

for eg: git stash apply 1 will apply that particular stashed changes to the current branch
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.