dev 브랜치에서 pull받을 게 있어서 가져오려고 개인 브랜치에서 git checkout dev를 시도했는데 error 메시지가 났다.현재 브랜치에서 작업하고 있던 내용이 두 파일에 변경 사항으로 남아 있어서 dev브랜치로의 전환이 불가능한 상황이다.

 

이럴 때 자주 사용하는 방법이 바로 git stash이다.

 

1. 변경 내용을 임시 저장하기

- 작업하던 브랜치에서 작업 내용을 커밋하지 않고도 변경 내용이 임시로 저장된다.

git stash

 

이런 경고 메시지가 나타났지만 크게 문제는 없어 보인다.

파일 줄바꿈 방식이 변경될 가능성을 경고하는 건데 일반적인 window환경에서 나타난다.

" Saved working directory and index state WIP on songi "라는 메시지를 보니 git stash가 정상적으로 실행되었다.

 

2. 다른 브랜치로 전환

- 이제 dev 브랜치로 안전하게 이동이 가능하다.

git checkout dev

 

3. 전환한 브랜치에서 최신 상태로 업데이트

- dev브랜치에서 원래 하려던 pull을 무사히 실행했다.

git pull origin dev

 

4. 작업하던 브랜치로 복귀

- dev에서 pull을 받았으니 원래 브랜치로 복귀했다.

git checkout songi

 

5. 임시 저장한 변경 내용 다시 가져오기

-  커밋을 따로 하지 않고 git stash로 임시 저장을 했었기에 그 내용을 다시 가져와야 한다.

- 여기까지 했으면 dev에서 pull받고 내 브랜치는 원래 상태로 되돌려졌다.

git stash apply

 

 


 

위 내용은 dev 내용에 있는 파일 확인을 하지 못해서 pull만 받았을 때의 내용이다.

하지만 dev에 있던 파일 굳이 확인이 필요 없이 merge만 하려 했는데 현재 브랜치의 로컬 변경 사항 때문에 병합이 중단되었다면 아래와 같이 하면 된다.

이 때는 브랜치 전환이 굳이 필요 없다.

1. 현재 변경 사항을 stash에 저장하기

git stash

 

2. 병합하기

- dev브랜치에 pull받은 내용을 songi 브랜치로 병합

git merge dev

 

3. 변경사항 다시 가져오기

git stash apply

 

 


 

만약 현재 작업 내용을 커밋할 계획이었다면 먼저 커밋을 하고 하면 되고, 작업 내용이 필요 없는 상황이라면 아래와 같이 로컬 변경 사항을 폐기후 진행하면 된다.

git restore 작업한파일명

 

 

 

+ Recent posts