1. 상황
IntelliJ로 코드를 수정하는 것과, 같은 remote repository의 README를 웹으로 수정하는 것을 동시에 수행하면서, IntelliJ에서 작성한 local 내용을 push할 때 충돌이 발생하였습니다. README의 변경이 있으니 remote repository의 최신 상태를 git pull로 local에 업데이트 한 후, 변경 사항을 push해야했습니다. 그런데 git pull을 하는 과정에서 아래와 같은 문제가 발생하였습니다.
2. 문제
에러 내용은 다음과 같습니다.
error: Your local changes to the following files would be overwritten by merge:
src/main/resources/data.sql
data.sql은 private한 정보가 insert되는 내용이라 local에서만 활용하고 github에 올리지 않았는데... add를 잘못한 것인지, Default Changelist에 포함되서인지 명확한 원인은 확인하지 못했습니다. 대신 이를 해결할 방법을 찾았습니다.
3. git stash
git stash는 마무리하지 않은 작업의 상태를 임시로 저장하는 명령입니다. 작업 도중 다른 작업이 필요한데 commit하기 싫을 때 활용할 수 있습니다. git stash 후 git pull과 git push를 성공적으로 마칠 수 있었습니다.
4. git stash apply
저장했던 상태를 다시 가져올 수 있는 명령어입니다. 아직 git에 대해 자세히 모르기도 하고, data.sql이 발목을 잡았던 이유도 모르지만 merge하면서 변경사항이 삭제되는 사태 등을 예방할 수 있을 것 같습니다.
https://gmlwjd9405.github.io/2018/05/18/git-stash.html