Git Stash Pop 폐기


133

나는 git stash pop을했고 지금은 많은 갈등이있다. 전에 모든 최근 코드를 커밋 git stash pop했으므로 마지막 커밋으로 돌아가서 모든 충돌을 제거하고 git stash pop삽입 된 코드가 있습니까?


계속해서 터진 작품을 저장 하시겠습니까, 다시는보고 싶지 않습니까?
jscs

1
아니요. 팝 작업을 원하지 않습니다. 나는 4 개월 전에 숨어 있었는데 거기에 무엇이 있는지 확실하지 않습니까?
jdog

2
보관하기 전에 커밋되지 않은 항목에 관심이 있습니까?
앤드류 마샬

4 개월 전이나 오늘? 한 시간 전에했던 것을 원합니다.
jdog

5
충돌 할 때 git stashgit은 목록에서 숨김을 삭제하지 않습니다. 따라서 git reset --hard HEAD터진 작품을 파괴하지 않습니다.
jwadsack

답변:


189

이것은 이미 stackoverflow에서 요청 및 답변되었지만 ( Git 리포지토리를 이전 커밋으로 되 돌리는 방법? 참조 ) 간단한 대답은 다음과 같습니다.

git reset --hard HEAD

문제를 해결해야합니다. 이렇게하면 커밋되지 않은 모든 변경 사항이 리포지토리에서 제거됩니다.

충돌이있는 경우 숨김이 유지됩니다. 로부터 숨김 문서 :

상태를 적용하면 충돌로 실패 할 수 있습니다. 이 경우 숨김 목록에서 제거되지 않습니다. git stash drop수동으로 충돌을 해결하고 나중에 수동으로 호출 해야합니다.


1
로컬 리포지토리를 마지막 커밋으로 되돌립니다. 마지막 커밋 이후 모든 커밋을 문제없이 푸시 할 수 있어야합니다. 그래도 문제가 해결되지 않으면 결과를 이전 질문에 다시 게시하십시오. 행운을 빕니다.
MichaelMilom

28
그러나 이것은 당신의 숨결을 잃을 것입니다
K. Weber

19
@ K.Weber git stash pop충돌이 발생하면 숨김이 숨김 목록에서 삭제되지 않습니다.
Daiwei

1
누가 '실제로 당신은 당신의 은닉을 잃지 않을 것'을지지하는지 잘 모르겠습니다. 방금 잃었습니다
Anthony

4
커밋되지 않은 변경 사항 잃게 것이기 때문에 해결책이 많지 않습니다 .
Ivan P

4

특정 파일에서 재설정을 호출 할 수도 있습니다.

git reset HEAD <filename>...

그래도 파일을 하드 리셋 할 수는 없습니다. 그러나 나중에 결제로 변경 사항을 되돌릴 수 있습니다.

git checkout -- <filename>...

MichaelMilom의 답변에서 Luke가 지적한 것처럼 당신은 숨겨 질 것입니다.

커밋되지 않은 로컬 변경 내용을 잃고 싶지 않을 때 유용합니다.


0

팝된 숨김 상태에서 작업을 다시보고 싶지 않은 경우 하드 리셋만큼 간단합니다.

git reset --hard HEAD

이것은 git에게 작업 디렉토리에 커밋되지 않은 변경 사항이 있다는 사실을 무시하고 작업 디렉토리, 준비 영역 및 지정한 커밋으로 설정합니다 (이 경우 기존 HEAD는 모든 작업을 포함합니다) 방금 커밋했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.