git stash pop
꽤 오랫동안 사용 하고 있습니다. 나는 최근에 git stash apply
명령 에 대해 알았습니다 . 그것을 시험해 보았을 때와 같은 것으로 보입니다 git stash pop
.
차이점은 무엇이며 git stash pop
그리고 git stash apply
?
git stash pop
꽤 오랫동안 사용 하고 있습니다. 나는 최근에 git stash apply
명령 에 대해 알았습니다 . 그것을 시험해 보았을 때와 같은 것으로 보입니다 git stash pop
.
차이점은 무엇이며 git stash pop
그리고 git stash apply
?
답변:
git stash pop
적용 후 (기본적으로 최상위) 숨김을 버리고 나중에 재사용 할 수 있도록 git stash apply
숨김 목록 에 남겨 둡니다 (또는 나중에 할 수 git stash drop
있음).
이후 충돌이 발생하지 않는 한 이런 현상이 발생 git stash pop
하면 숨김을 제거하지 않고 그대로 작동합니다 git stash apply
.
그것을 보는 또 다른 방법 git stash pop
은 git stash apply && git stash drop
입니다.
git stash pop
의 결과 와 동일하더라도 충돌 오류가 계속 발생합니다.
John Zwinck이 말했듯이의 차이점을 설명하는 유용한 링크가 있습니다 git stash pop
.
예를 들어, 숨김 변경 사항은 처음 숨김을 작성한 후 작성한 다른 변경 사항과 충돌한다고 가정하십시오. pop과 apply는 병합 충돌 해결 모드를 유용하게 트리거하여 그러한 충돌을 멋지게 해결할 수있게 해줄 것입니다. 그러나 아마도 팝을 기대하더라도 스 태쉬를 제거하지는 않습니다. 많은 사람들이 스 태쉬가 단순한 스택 일 것으로 기대하기 때문에, 종종 그들이 사라 졌다고 생각하기 때문에 실수로 같은 스 태쉬가 갑자기 튀어 나오는 원인이됩니다.
링크 : http://codingkilledthecat.wordpress.com/2012/04/27/git-stash-pop-considered-harmful/
실제로 사용하면 차이를 더 잘 이해하는 데 도움이 될 수 있습니다.
master
지점에서 작업 중이고 hello.txt
"Hello"문자열이 포함 된 파일 이 있다고 가정 합니다.
파일을 수정하고 "world"문자열을 추가해 봅시다. 이제 방금 찾은 사소한 버그를 수정하기 위해 다른 지점으로 이동하려고하므로 stash
변경 해야합니다 .
git stash
다른 지점으로 이동하여 버그를 수정했으며 이제 master
지점에서 계속 작업 할 준비가 되었으므로 다음과 pop
같이 변경하십시오.
git stash pop
이제 숨김 컨텐츠를 검토하려고하면 다음과 같은 결과가 나타납니다.
$ git stash show -p
No stash found.
그러나 git stash apply
대신에 사용 하면 보관 된 콘텐츠를 얻을 수 있지만 보관할 수도 있습니다.
$ git stash show -p
diff --git a/hello.txt b/hello.txt
index e965047..802992c 100644
--- a/hello.txt
+++ b/hello.txt
@@ -1 +1 @@
-Hello
+Hello world
따라서 pop
스택의 팝과 같습니다. 실제로 팝업되면 요소를 제거 apply
하지만 peek 과 같습니다 .
에서는 git
숨김 현재 변경된 파일이 이동 될 수있는 저장 공간이다.
stash
영역은 git
저장소 에서 일부 변경 사항을 가져 오고 git
repo 에서 사용 가능한 일부 상호 파일에서 일부 변경 사항을 감지 하려는 경우에 유용합니다 .
git stash apply //apply the changes without removing stored files from stash area.
git stash pop // apply the changes as well as remove stored files from stash area.
참고 :-
git apply
숨김 영역에서 변경 사항을 적용하고 영역에서 변경 사항을git pop
제거 하는 동안에 만 적용하십시오stash
.
망할 놈의 은닉 Pop vs apply
작업
최상위 숨김 변경 사항을 현재 비 단계적 변경 사항에 적용하고 해당 숨김을 삭제하려면로 이동해야합니다 git stash pop
.
# apply the top stashed changes and delete it from git stash area.
git stash pop
그러나 최상위 비 저장 변경 사항을 삭제하지 않고 현재 비 단계적 변경 사항에 적용하려면로 이동해야합니다 git stash apply
.
참고 :이 경우는 팝이 감소 (top = top-1)만큼 최상위를 변경하지만 최상위 요소 만 가져올 수 있는
Stack
클래스pop()
및peek()
메소드 와 관련 될 수 있습니다peek()
.