충돌을 해결하기 위한 git stash 명령어

​ ​

git을 사용하다보면 여러 변경내역이 생기게 됩니다. 예를 들면 내 로컬에서 변경된 내역을 아직 commit을 하지 않은 상태로 pull을 하게 되면, 충돌이 발생하게 되어 초보자에게는 난감한 상황이 됩니다. 이런 경우에 git stash 명령어를 사용하시면 편리합니다.

git stash 명령어는 unstaged 상태인 변경사항을 일시적으로 백업하고 워킹디렉토리를 깨끗한 상태로 유지합니다. 즉, 일종의 책갈피 역할을 한다고 보시면 됩니다.

​ ​

1. git stash

$ git stash
Saved working directory and index state \
  "WIP on master: 049d078 added the index file"
HEAD is now at 049d078 added the index file
(To restore them type "git stash apply")

git stash 명령어를 실행하면 작업 중인 파일을 새로운 Stash에 저장합니다.

​ ​

2. git stash list

$ git stash list
stash@{0}: WIP on master: 049d078 added the index file
stash@{1}: WIP on master: c264051 Revert "added file_size"
stash@{2}: WIP on master: 21d80a5 added number to log

git stash list 명령어를 통해 저장된 책갈피들의 리스트를 볼 수 있습니다.

​ ​

3. git stash apply

$ git stash apply
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#
#      modified:   index.html
#      modified:   lib/simplegit.rb
#

git stash apply 명령어를 사용하면 저장된 stash를 적용할 수 있습니다.

​ ​

4. git stash drop

$ git stash drop stash@{0}
Dropped stash@{0} (364e91f3f268f0900bc3ee613f9f733e82aaed43)

apply 명령어로 stash를 적용한다고 해서 스택에서 사라지는게 아닙니다. git stash drop 명령어를 통해 스택에서 삭제할 수 있습니다.

​ ​