
git에서 이전에 경험해 보지 못한 거종거양의 오류들을 만나는 신나는 경험을 하고 있다 🐱💻error: Your local changes to the following files would be overwritten by checkout:
오픈소스에는 약 30명의 사람들이 각 파트로 나눠진 개별 branch를 통해 작업하고 있다. 그러다 보니 branch를 이동하며 작업해야 할 때가 있는데 main brnach에서 header branch로 이동 하던 중 발생한 오류다.
다른 브랜치로 이동하기 전 작업하고 있던 브랜치에서 변경사항이 있는데, 커밋 즉 저장하지 않을 때 발생하는 오류
stash : 워킹 디렉토리에서 수정한 파일들만 저장한다. 아직 끝내지 않은 수정사항을 브랜치가 달라져도 스택에 잠시 저장했다가 나중에 다시 적용할 수 있다
본인이 오류 이전에 하려고 했던 명령어 실행
작업이 끝났다면 원래 임시저장한 브랜치로 복귀
stash pop : 스택 내 저장된 작업을 복원
stash drop : 스택 내 저장된 작업을 삭제
stash drop stash@{0} - 특정 stash id 삭제 (git stash list 치면 나오는 id)
git stash && git checkout [변경할 branch 이름] && git stash pop
git stash && git pull origin [branch 이름] && git stash pop
checkout 과 switch 똑같은 기능인데 왜 이름이 다르죠?
checkout: Switch branches or restore working tree filesswitch: Switch branches
switch는 위 설명처럼 브랜치를 변경하는 부분만 담당한다. Git 2.23 에서 도입되었다.checkout에 기능이 너무 많기 때문에 대체되었다고 한다.- 브랜치를 만들면서 이동하고 싶다면 :
$ git switch -c <브랜치명>