개발관련/Git

git stash create로 만든 stash을 삭제하는 방법

Rateye 2021. 11. 15. 11:00
728x90
반응형
질문 : git stash create로 만든 숨김을 삭제하는 방법은 무엇입니까?

git stash; git stash pop 같이 스크립트하기가 조금 어렵다는 점을 제외하면 내가 원하는 많은 작업을 수행하는 것 같습니다. git stash; git stash pop 은 저장소에 변경 사항이있는 경우와 다른 작업을 수행합니다.

git stash create 가 그 문제에 대한 답인 것처럼 보이며 한 가지를 제외하고는 모든 것이 작동합니다. 생성 된 숨김을 제거 할 수 없습니다. 은신처를 제거 할 방법이 있습니까?

내가하는 일을 100 % 명확하게하려면 :

숨김 만들기 :

~/tmp/a(master) $ git stash create 
60629375d0eb12348f9d31933dd348ad0f038435
~/tmp/a(master) $ git st
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   new file:   b
#
~/tmp/a(master) $ git reset --hard
HEAD is now at 555d572 log message

숨김 사용 :

~/tmp/a(master) $ git apply 60629375d0eb12348f9d31933dd348ad0f038435
fatal: can't open patch '60629375d0eb12348f9d31933dd348ad0f038435': No such file or directory
~/tmp/a(master) $ git stash apply 60629375d0eb12348f9d31933dd348ad0f038435
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   new file:   b
#

숨김 삭제 : (이 마지막 비트가 작동하지 않는다는 점 제외)

~/tmp/a(master) $ git stash drop !$
git stash drop 60629375d0eb12348f9d31933dd348ad0f038435
'60629375d0eb12348f9d31933dd348ad0f038435' is not a stash reference
답변

git stash stash로 생성 된 일반 숨김을 삭제하려면 git stash drop 또는 git stash drop stash@{n} 합니다. 자세한 내용은 아래를 참조하십시오.

git stash create 만든 숨김을 삭제할 필요가 없습니다. 문서에서 :

stash 항목 (일반 커밋 객체)을 생성하고 ref 네임 스페이스에 저장하지 않고 객체 이름을 반환합니다. 이것은 스크립트에 유용합니다. 사용하려는 명령이 아닐 수 있습니다. 위의 "저장"을 참조하십시오.

숨김 커밋을 참조하는 것이 없으므로 결국 가비지 수집됩니다.

git stash 또는 git stash save 로 생성 된 숨김 refs/stash git stash drop 으로 삭제할 수 있습니다. 모든 Git 개체와 마찬가지로 실제 숨김 콘텐츠는 gc 개체를 정리할 때까지 컴퓨터에서 삭제되지 않습니다 (기본값은 2 주 후).

이전 보관함은 refs/stash reflog cat .git/logs/refs/stash 시도)에 git stash drop stash@{n} 으로 삭제할 수 있습니다. 여기서 n git stash list 표시된 번호입니다.

출처 : https://stackoverflow.com/questions/5737002/how-to-delete-a-stash-created-with-git-stash-create
728x90
반응형