동일 파일에 대해 최신의 소스코드를 내 소스코드와 동기화를 시키려 pull을 할 때 내 local에 해당 파일이 수정되어 있기 때문에 발생한다.
git status
명령어로 확인해보면 자세하게 볼 수 있다.
해결법은 안내에 나와있듯이 수정사항을 커밋하거나 잠시 임시 공간에 stash하는 방법이 있는데 여기선 stash를 이용하여 해결했다.
그럼 시작!
git stash
는 복사본에 대한 변경 사항을 일시적으로 보류해서 다른 작업을 수행한 다음에 다시 돌아와서 다시 적용할 수 있는 명령어이다.
기본적으로 git stash
만 실행하면 Untracked 파일과 .gitignore에 있는 파일을 제외하곤 전부 숨겨진다.
하지만 -u옵션으로 Untracked 상태인 파일들과 -a옵션으로 .gitignore에 있는 파일도 전부 숨길 수 있다.
난 숨기고 싶은 파일을 push를 이용했는데 파일을 여러개 나열하면 여러 파일들을 숨길 수 있으며 git stash list
명령어를 통해 조회가 가능하다.
git stash push <파일명>
git에서 stash가 어떻게 작동하는지 궁금하다면 여기에 설명이아주 잘 되어있다.
이제 pull을 해서 최신의 코드를 받아보자
마지막으로 아까 숨긴 파일의 내용을 적용하고 싶으면 git stash pop
명령어를 사용하면 되고, 더 이상 숨긴 파일이 필요가 없다면 git stash drop
명령어를 사용하여 숨김 목록에서 제거할 수 있는데 인수로 식별자를 따로 주지 않는다면 stash@{0}이 인수로 주어진다.