티스토리 뷰

git

[Git] change branch with unstaged changes

sehyeona 2022. 2. 16. 02:33

가끔 production 브랜치에 merge 한 이후 (새로운 버전을 배포하고 아주 신나는 순간) 갑자기 발생한 에러때문에 급하게 코드를 수정하는 일들이 있다. 급한 마음에 production 브랜치에 그대로 코딩을 하게 되는데, 이런 unstaged 된 코드를 다른 브랜치(특히 dev)에 커밋해야하는 경우가 생긴다. 


만약 prod 브랜치에서 a.txt 파일을 수정하고 staging 하지 않은 상태에서 dev 브랜치로 옮겨간다면 지금 작업한 작업물들이 손실됩니다.

이 경우 다음과 같은 프로세스를 통해서 prod 에서 변경한 코드를 dev에 commit  할 수 있습니다.

  1. 지금까지 한 작업을 어딘가에 저장한다.
  2. prod 에서 변경한 코드를 최신 커밋으로 되돌린다.
  3. dev 브랜치로 이동한다
  4. 1번에서 저장한 작업을 dev 브랜치에 적용한다.
  5. 어딘가에 저장한 작업물을 삭제한다.

git stash 명령어를 이용하여 tracking 되고 있는 파일의 변경사항을 스택에 저장할 수 있습니다.

 

위의 1 ~ 5 번 과정을 git command 를 이용하여 다음과 같이 적용할 수 있습니다.

git stash save "my precious changes"
git checkout dev
git stash apply
git stash drop

 

git statsh apply 와 git stash drop 은 다음 명령어로 한번에 해결할 수 있습니다. 

git stash pop

다음 command 를 이용해 git stash save 이후 저장된 stash 를 확인할 수 있습니다.

git stash list
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함