etc./StackOverFlow

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

청렴결백한 만능 재주꾼 2023. 4. 26. 12:46
반응형

질문자 :Sandeep Raju Prabhakar


나는 꽤 오랫동안 git stash pop 을 사용해 왔습니다. git stash apply 명령에 대해 알게 되었습니다. git stash pop 과 동일하게 작동하는 것 같았습니다.

git stash popgit stash apply 의 차이점은 무엇입니까?



git stash pop 적용한 후 (기본적으로 최상위) stash를 버리는 반면, git stash apply 는 나중에 재사용할 수 있도록 숨김 목록 git stash drop 수 있음).

git stash pop 이후에 충돌이 발생하지 않는 한 발생합니다. 이 경우에는 stash가 제거되지 않고 git stash apply 와 똑같이 작동합니다.

그것을 보는 또 다른 방법: git stash popgit stash apply && git stash drop 입니다.


John Zwinck

git stash pop 의 단점을 설명하는 이 유용한 링크가 있습니다.

예를 들어, 숨김 변경 사항이 처음 숨김을 만든 이후에 수행한 다른 변경 사항과 충돌한다고 가정해 보겠습니다. 팝과 적용 모두 병합 충돌 해결 모드를 유용하게 트리거하여 이러한 충돌을 멋지게 해결할 수 있습니다. 둘 다 팝을 기대하고 있더라도 숨김을 제거하지 않습니다. 많은 사람들이 은닉물이 단순한 스택일 것이라고 기대하기 때문에 나중에 같은 보관함이 없어졌다고 생각했기 때문에 실수로 같은 은닉물을 터뜨리는 경우가 많습니다.

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


briankip

git stash pop 은 상위 stashed 요소를 적용하고 스택에서 제거합니다. git stash apply 도 동일하지만 stash 스택에 그대로 둡니다.


jchapa

행동을 보면 차이점을 더 잘 이해하는 데 도움이 될 수 있습니다.

master 브랜치에서 hello.txt "Hello" 문자열이 포함된 hello.txt 파일이 있다고 가정합니다.

파일을 수정하고 "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 은 스택의 pop 과 같습니다. 실제로 한 번 튀어나온 요소를 제거하는 반면 applypeek 에 가깝습니다 .


Maroun

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

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 영역입니다.


Vikrant Kashyap

오류가 발생하지 않고 사용 가능한 은닉 목록에서 맨 위 은닉 항목에 대해 작업하려는 경우:

git stash pop = git stash apply + git stash drop


Greeso

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() 은 위쪽 요소만 가져올 수 있습니다.


Vikrant Kashyap

빠른 답변:

git stash pop -> 숨김 목록에서 제거

git stash apply -> stash 목록에 보관


Ehsan Mashhadi

출처 : http:www.stackoverflow.com/questions/15286075/difference-between-git-stash-pop-and-git-stash-apply

반응형