나는 꽤 오랫동안 git stash pop
을 사용해 왔습니다. git stash apply
명령에 대해 알게 되었습니다. git stash pop
과 동일하게 작동하는 것 같았습니다.
git stash pop
과 git stash apply
의 차이점은 무엇입니까?
질문자 :Sandeep Raju Prabhakar
나는 꽤 오랫동안 git stash pop
을 사용해 왔습니다. git stash apply
명령에 대해 알게 되었습니다. git stash pop
과 동일하게 작동하는 것 같았습니다.
git stash pop
과 git stash apply
의 차이점은 무엇입니까?
git stash pop
은 적용한 후 (기본적으로 최상위) stash를 버리는 반면, git stash apply
는 나중에 재사용할 수 있도록 숨김 목록 git stash drop
수 있음).
git stash pop
이후에 충돌이 발생하지 않는 한 발생합니다. 이 경우에는 stash가 제거되지 않고 git stash apply
와 똑같이 작동합니다.
그것을 보는 또 다른 방법: git stash pop
은 git stash apply && git stash drop
입니다.
git stash pop
의 단점을 설명하는 이 유용한 링크가 있습니다.
예를 들어, 숨김 변경 사항이 처음 숨김을 만든 이후에 수행한 다른 변경 사항과 충돌한다고 가정해 보겠습니다. 팝과 적용 모두 병합 충돌 해결 모드를 유용하게 트리거하여 이러한 충돌을 멋지게 해결할 수 있습니다. 둘 다 팝을 기대하고 있더라도 숨김을 제거하지 않습니다. 많은 사람들이 은닉물이 단순한 스택일 것이라고 기대하기 때문에 나중에 같은 보관함이 없어졌다고 생각했기 때문에 실수로 같은 은닉물을 터뜨리는 경우가 많습니다.
링크: http://codingkilledthecat.wordpress.com/2012/04/27/git-stash-pop-considered-harmful/
git stash pop
은 상위 stashed 요소를 적용하고 스택에서 제거합니다. git stash apply
도 동일하지만 stash 스택에 그대로 둡니다.
행동을 보면 차이점을 더 잘 이해하는 데 도움이 될 수 있습니다.
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 과 같습니다. 실제로 한 번 튀어나온 요소를 제거하는 반면 apply
는 peek 에 가깝습니다 .
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
영역입니다.
오류가 발생하지 않고 사용 가능한 은닉 목록에서 맨 위 은닉 항목에 대해 작업하려는 경우:
git stash pop
= git stash apply
+ git stash drop
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()
은 위쪽 요소만 가져올 수 있습니다.
빠른 답변:
git stash pop
-> 숨김 목록에서 제거
git stash apply
-> stash 목록에 보관
출처 : http:www.stackoverflow.com/questions/15286075/difference-between-git-stash-pop-and-git-stash-apply
Linux에서 grep을 사용하여 파일 이름만 표시하려면 어떻게 해야 합니까? (0) | 2023.04.26 |
---|---|
Node.js를 시작하는 방법 (0) | 2023.04.26 |
Markdown에서 이미지 크기 변경 (0) | 2023.04.26 |
활동에 원래 추가된 창이 누출되었습니다. (0) | 2023.04.26 |
누군가 파이썬에서 __all__을 설명할 수 있습니까? (0) | 2023.04.26 |