문제 1. "Please, commit your changes or stash them before you can merge."
해당 문제는 로컬 저장소와 원격 저장소의 충돌에 의해 생기는 에러입니다.
이 상황에서 commit 또는 stash를 하라고 주문하는데, 커밋하기에는 애매한 상황이 생각보다 많습니다.
그래서 변경사항을 임시 저장하고 pull 후, 임시 저장했던 파일을 병합하는 방식으로 해결해보겠습니다.
// 변경 사항 임시 저장 후 git pull
git stash
git pull
// 임시 저장 인덱스 merge
git stash list
git stash apply stash@\{0\}
git stash apply --index
* tip: git stash apply 까지 작성하고 tap 버튼을 클릭해서 자동완성을 이용할 수 있습니다.
문제 2. "Please move or remove them before you merge."
해당 문제는 워킹 디렉터리에 Untracked 파일로 인해서 pull을 할 수 없는 상황입니다.
git stash로 문제가 해결이 되지 않습니다.
이때는 먼저 Untracked 파일들을 Tracked 상태로 변경 후 pull을 할 수 있습니다.
// Untracked -> Tracked 변경 후, stash, pull
git add *
git stash
git pull
필자의 경우, 특정 파일 하나만 overwritten 되어 해당 파일만 add 후 pull 했습니다.
git status를 이용해서 항상 워킹 디렉터리 내의 모든 파일 상태를 확인하는 것이 좋은 것 같습니다.
※ 참고 출처