[Git] stash & cherrypick

inhyejeong59·2020년 8월 23일
0

Git

목록 보기
1/6

1. stash

A 브랜치에서의 수정사항을 git add하거나 commit하지 않으면 commit id가 없으므로 다른 브탠치로 checkout할 수 없다. 이런 경우 stash를 이용한다.

> git stash [stash name here]
  • 해당 파일을 가져오고 싶은 곳에서 명령어를 수행한다. 예를 들면, A 브랜치에서 stash list의 파일을 가져올 경우에는 A 브랜치를 체크아웃 받은 후 명령어를 수행하면 도니다.
  • stash는 모든 브랜치(로컬)에서 접근이 가능하다. 따라서 stash naming이 중요할 듯 하다.

2. cherrypick

브랜치간에 가져오고 싶은 파일이 있을 경우 cherrypick을 사용한다.

3. 결론

  • stash도 commit id가 있고, 로컬에서는 브랜치에 국한되지 않고 commit id가 있으면 언제든 접근 가능하다. cherrypick도 같은 관점이다.

  • 그래서 깃에서 중요한 건 commit이다 ! 커밋 아이디만 있다면 그래프에서는 사라졌을 지라도 언제든 checkout 가능하다. 따라서 A 브랜치에서 B 브랜치로 checkout하는 것도 사실 commit id를 사용해서 이동하는 것이기 때문에, <commit === A 브랜치> 라고 생각했던 개념은 틀렸다. 브랜치는 commit id가 있는 어디든 갈 수 있다. 이게 뽀인트 !

profile
Frontend Engineer in @KakaoStyle

0개의 댓글