your programing

git stash pop과 git stash 적용의 차이점

lovepro 2020. 9. 28. 09:46
반응형

git stash pop과 git stash 적용의 차이점


나는 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 popgit stash apply && git stash drop입니다.


John Zwinck이 말했듯이 차이점과 Git 숨김 팝의 단점을 설명하는 유용한 링크가 있습니다.

예를 들어, 숨김 변경 사항이 처음 숨김을 만든 이후에 변경 한 다른 변경 사항과 충돌한다고 가정 해 보겠습니다. pop과 apply는 모두 병합 충돌 해결 모드를 트리거하여 이러한 충돌을 멋지게 해결할 수 있도록합니다. 그리고 어느 쪽도 팝업을 예상하고 있더라도 숨김을 제거하지 않습니다. 많은 사람들이 스 태쉬가 단순한 스택 일 것으로 기대하기 때문에, 종종 사라 졌다고 생각했기 때문에 나중에 우연히 동일한 스 태쉬를 터뜨리게됩니다.

링크 http://codingkilledthecat.wordpress.com/2012/04/27/git-stash-pop-considered-harmful/


git stash pop맨 위에 숨겨진 요소를 적용하고 스택에서 제거합니다. git stash apply동일하지만 숨김 스택에 남겨 둡니다.


그것을 실제로 보는 것은 그 차이를 더 잘 이해하는 데 도움이 될 수 있습니다.

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더처럼 슬쩍 .


Git 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.

참고 :이 경우를 Stack클래스 pop()peek()메서드 와 연결할 수 있습니다 . 여기서 pop은 감소 (top = top-1)만큼 상단을 변경하지만 peek()상단 요소 만 가져올 수 있습니다.


in git stash 는 현재 변경된 파일을 이동할 수있는 저장 영역입니다.

stasharea는 git저장소 에서 일부 변경 사항을 가져 오고 저장소에서 사용할 수있는 일부 상호 파일의 일부 변경 사항을 감지 할 때 유용합니다 git.

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.

참고 URL : https://stackoverflow.com/questions/15286075/difference-between-git-stash-pop-and-git-stash-apply

반응형