Code&Data Insights

[Git] git stash 관련 에러 & 해결 방법 본문

Web Development/Git

[Git] git stash 관련 에러 & 해결 방법

paka_corn 2024. 6. 27. 18:33

git stash 관련 

==> stash pop: 하고 나면 파일들 삭제

==> stash apply: 다음을 위해서 파일 꺼내고 나서도 삭제하지 않음 

 

 merge conflict 나면, git stash pop을 해도 git stast apply로 알아서 적용되서 저장됨..! 

 

그럼 평소에 git stash list를 하는게 좋은가? ㄴㄴ 어차피 없어져도 살릴 방법이 있음 

그냥 stash pop하기!! 

 

 

내가 stash 잘 가져왔는지 보려면? 

git stash list

 git stash show

 

 

혹시 몰라서 reset --hard할때 불안하다면 txt 파일로 저장해두기

==> git diff > a.txt

==> git stash apply

 

 

문제상황 

- 내가 했던 작업 상황들 git stash 해놓고 원격에서 이미 최신상황을 받아왔는데, stash pop하니 merge conflict 엄청 생기고, 다 해결하니 여러 문제 발생..ㅋㅎ 그리고 stash pop했을때, 다른 파일들이 없어져있는 문제 ] 

 

해결 방법

최신 원격 커밋으로 맞춤 

git reset head^

git pull upstream master

git push origin head -f ( Or, git push origin head -f --no-verify )

git stash apply ( 예전 파일들 받아옴 ) 

 

 

Q) 어떻게 이전 원격 커밋으로 돌아갔는데도 stash apply(list)가 가능하냐? 

- 이전에 stash pop을 했지만, merge conflict가 나서 그게 다 저장이 되있어서 꺼내오는게 가능했던것..! 

 

 

 

untracked file 포함한 git stash 

git stash --include-untracked

git stash list

를 사용해주면

 

stash@{0}: WIP on list2: f----c test 1,2 add edit2
stash@{1}: On main:코멘트

이런 식의 stash를 발견할 수 있는데

위 명령어를 사용했으면 WIP on...

이런 이름으로 stash가 생성된다

 

이후

git stash apply stash@{0}

로 신규 파일이 들어있는

stash를 적용

 

merge / rebase시 자동 머지되는 내용 활용하면 안되고 새로 import-type해야함 ! 

Comments