git stash로 자유롭게 branch 이동하기(feat. commit)

Jay·2020년 3월 8일
2

처음 git을 공부할 때 commit은 신중하게 하라는 조언을 들었다. 처음 commit 개념을 접했을 때, ctrl + s 과 비슷한 개념이라고 생각했는데, 그 조언을 들은 뒤 부터 commit은 항상 최대한 미루고 싶은 것이 되었다. 하지만 commit 멘트가 중요한 것은 git이 협업하는데 쓰이는 도구이기 때문이다. 이 점을 이해하면 커밋에 대한 두려움을 갖지 않아도 된다! 커밋 메세지는 push 할 때만 필요한게 아니라 커밋 히스토리에 영원히 남는다.

git log

위 명령어를 터미널에 타이핑하면 그동안 나와 팀원이 커밋한 히스토리가 가장 최근 것 부터 쭉 뜨고, 거기에 누가 커밋 했는지, 언제 했는지, 커밋 메세지가 무엇인지 전부 볼 수 있다. 그래서 커밋 메세지를 구체적으로 작성해야 미래의 나와 다른 팀원들이 프로젝트에 문제가 생겼을 때 빨리 확인을 하는 것이 가능해진다. 그러므로 어떤 부분을 어떤 이유에서 어떻게 고쳤는지, 정확한 정보를 간략하게 적는 것이 중요하다.

하지만 갑자기 브랜치를 이동해야 할 때, 하지만 커밋은 아직 해야 할 단계가 아닌 상황이 있다. 혹은 모르고 master브랜치에서 작업을 할 수도 있다. 처음 이런 상황에 맞닥뜨리면 마음속에 천사와 악마가 있는 것처럼, 커밋을 그냥 해! 아니야 그래서는 안돼 라는 무척 혼란한 기분이 든다.
이럴 때 git stash 라는 기능을 사용하면 좋다.

1) 저장하기(stash)

git stash는 위 사진처럼 아직 add하지 않아 unstaged 상태에 있는 파일을 잠깐 상자에 넣어 놨다가 필요할 때 다시 불러오는 기능을 한다.

git stash
git stash save stash제목     #stash 제목 설정 가능

stash할 때 그냥 git stash 해도 되지만, 이렇게 할 경우 자동적으로 git에서 일련번호가 부여된다. 좀 더 편하게 stash를 사용하고 싶다면 임의로 제목을 설정할 수 있다.

잘 stash되었는지 확인할 수 있다.

git stash list

2) 불러오기(unstash)

이제 자유롭게 다른 브랜치로 이동도 가능하고, 브랜치 실수한 것도 수습할 수 있게 되었다.
다시 개발에 착수할 시간이다.

git stash apply                       # 가장 최근의 stash를 불러온다
git stash apply stash제목              # 지정한 stash를 불러온다

위의 명령어로 임시저장해 두었던 개발흔적을 불러올 수 있다.

3) 삭제하기

하지만 앞으로 stash 기능을 계속 사용할건데, stash list가 지저분해졌다. 앞으로 사용하지 않을 stash들이 남아있는게 마음에 들지 않는다.

git pop                       # stash 적용과 동시에 삭제해준다
git stash drop                # 가장 최근의 stash 삭제
git stash drop stash제목       # 지정한 stash 삭제
profile
You're not a computer, you're a tiny stone in a beautiful mosaic

1개의 댓글

comment-user-thumbnail
2021년 9월 13일

좋은 내용 감사합니다

답글 달기