git pull 에러(please commit your changes or stash them before you merge)

윤학·2023년 3월 10일
0

Git

목록 보기
2/3
post-thumbnail

상황

동일 파일에 대해 최신의 소스코드를 내 소스코드와 동기화를 시키려 pull을 할 때 내 local에 해당 파일이 수정되어 있기 때문에 발생한다.

git status 명령어로 확인해보면 자세하게 볼 수 있다.

해결법은 안내에 나와있듯이 수정사항을 커밋하거나 잠시 임시 공간에 stash하는 방법이 있는데 여기선 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}이 인수로 주어진다.

참조

Bitbucket 공식문서

profile
해결한 문제는 그때 기록하자

0개의 댓글