Programing

git stash create로 생성 된 숨김을 삭제하는 방법은 무엇입니까?

lottogame 2020. 2. 13. 00:28
반응형

git stash create로 생성 된 숨김을 삭제하는 방법은 무엇입니까?


Git stash는 변경 사항이 없으면 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를) 원합니다 . 자세한 내용은 아래를 참조하십시오.git stash dropgit stash drop stash@{n}


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

일반 커밋 객체 인 숨김 항목을 만들고 ref 네임 스페이스의 아무 곳에 나 저장하지 않고 객체 이름을 반환합니다. 스크립트에 유용합니다. 사용하려는 명령이 아닐 수도 있습니다. 위의 "저장"을 참조하십시오.

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


감춰 함께 만들어 git stashgit 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.


git stash drop매개 변수를 사용하지 않습니다-상단 숨김을 삭제하거나 다음과 같은 숨김 참조 stash@{n}n지정합니다. 에 커밋 ID를 전달할 수 없습니다 git stash drop.

git stash drop            # drop top hash, stash@{0}
git stash drop stash@{n}  # drop specific stash - see git stash list

숨김을 삭제 하면 스택 아래로 모든 숨김 지정 변경 됩니다 stash@{n}.

stash create숨김 항목을 사용 하는 경우 "스 태쉬"에 대해 작성되지 않아서 삭제할 항목이 없기 때문에 왜 숨김을 삭제해야하는지 잘 모르겠습니다 .


보관함이 하나만 있다고 100 % 확신 하거나 모든 보관함을 삭제하려는 경우 (a git stash list를 107 % 확신 시키려면) 다음을 수행 할 수 있습니다.

git stash clear

.. 그리고 잊어 버립니다 (모든 숨김을 삭제합니다).

참고 : 여기에 결국 모두를 지우는 방법을 찾고있는 사람들을 위해이 대답을 추가했습니다 (나처럼).


자식 문서에서 : http://git-scm.com/docs/git-stash

드롭 [-q | --quiet] []

숨김 목록에서 단일 숨김 상태를 제거하십시오. 제공되지 않으면 최신 항목을 제거합니다. stash@{0}, 그렇지 않으면 stash @ {} 형식의 유효한 숨김 로그 참조 여야합니다.

예:

git stash drop stash@{5}

그러면 숨김 항목 5가 삭제됩니다. 모든 숨김 목록을 보려면 다음을 수행하십시오.

git stash list

당신은 사용해야합니다

git stash save

그리고 아닙니다

git stash create

이것은 ref 네임 스페이스의 어디에도 저장 하지 않고 스 태시 (일반 커밋 객체)를 만들고 객체 이름을 반환 하기 때문 입니다. 따라서 숨김 적용으로 액세스 할 수 없습니다.

git stash save "some comment"다른 분기로 복제 / 이동하려는 단계적 변경 사항이있는 경우 사용

git stash apply stash@{0}저장된 (저장된) 변경 사항을 현재 브랜치에 반영하려는 경우 사용 (저장된 숨김 인덱스가 0이라고 가정)

항상 git stash list모든 인덱스를 확인 하는 사용할 수 있습니다

git stash drop stash@{0}특정 숨김을 삭제 하려면 (저장된 숨김 인덱스가 0이고 삭제하려는 경우)를 사용하십시오.


또한 작동합니다

git stash drop <index>

처럼

git stash drop 5

문서가 여기에 있습니다 (중국어) .

당신이 사용할 수있는

자식 숨김 목록

자식 숨김 드롭 숨김 @ {0}

여기에 이미지 설명을 입력하십시오

참고 URL : https://stackoverflow.com/questions/5737002/how-to-delete-a-stash-created-with-git-stash-create



반응형