본문 바로가기
컴퓨터 관련

[git] stash 정리.

by _BlankSpace 2017. 4. 14.

 0. 정리에 들어가기 전에.

팀 단위로 개발을 진행하다 보니, 이전에는 아예 사용하지 않았던 버전 관리 도구인 git을 사용하게 되었습니다. 아니, 이제는 꼭 필요한 툴 중 하나가 되었습니다.


그리고, git의 위대함도 매일 깨닫게 되는 것 같습니다. 왜 이러한 버전 관리 도구 또는 자신의 프로그래밍 흔적을 남길 수 있는 도구의 필요함을 이제야 알았을까 하는 아쉬움도 항상 남습니다.


하지만, 이러한 후회할 때라도 빨리 하는 것이 중요할 것입니다.


오늘은 git 중에서 제가 정말 중요하다고 생각하는 stash 기능을 정리하겠습니다.


 1. stash란 무엇인가요. 

stash는 정말 유용한 기능이라고 할 수 있습니다.


간단하게 stash의 기능을 소개하자면, 현재 작업 내용을 사진으로 찍어서 저장해놓는 것이라고 생각하시면 되겠스빈다.


그럼 상황 예를 들어보겠습니다.


보통 git 환경에서 마스터 브랜치에서 작업을 하다가 어떠한 아이디어가 떠올랐습니다.


이때 지금까지 작업했던 내용은 어떻게 할 것인가요. commit해야 할 것인가요. 고민이 될 것입니다.


이런 상황에 stash는 해결 방안이 될 것입니다.


stash는 현 상황을 책갈피처럼 저장해두는 것으로 생각하면 됩니다.


그러므로 시나리오는 다음과 같습니다.


1. 현재의 작업 상황을 stash로 저장합니다.


2. 새로운 브랜치를 가져옵니다.


3. 브랜치에서 작업을 합니다.


4. 작업한 브랜치를 commit하든지 작업한 브랜치 위에 stash 내용을 가져옵니다.


위의 시나리오처럼 stash를 이용하면 작업하는 데 유용하게 사용할 수 있을 것입니다.


물론, 위의 시나리오에서만 사용할 수 있다는 것은 아닐 것입니다.


또 하나의 예로는 QT나 GTK 또는 MFC와 같은 GUI 프로그래밍을 하고 있다고 가정하겠습니다.


어느 날, 이미지 작업을 하고 있었는 데, 상자 안에 여러 가지의 도형이 들어간 이미지를 상, 하, 좌, 우 레이아웃에 넣어서


어느 방향이 더 나은 지를 평가해야 할 경우라고 생각해보겠습니다.


이때, 4가지의 코딩이 조금 씩 달라서 복사 붙여넣기는 힘드므로, 4 가지의 경우를 모두 코딩해야 했습니다.


그럼, 모든 경우를 확인한 후에, 1번째 경우가 가장 나은 평가를 받았다면, 1 번째 경우로 돌아가기 위해서 다시 코딩해야 할까요?


그건 정말 비효율적인 코딩이라고 생각합니다. 이전에 했었던 작업이기 때문입니다.


이럴 때도 git stash를 이용하여 이전에 작업한 내용을 미리 저장하여 필요할 때 불러올 수 있습니다.


git stash의 필요성이나 중요성을 어느정도 이해하셨나 모르겠습니다만, 저는 정말 만족하면서 사용하고 있는 기능입니다.!


stash 커멘드는 다음과 같습니다.


1
2
3
git stash
git stash list
git stash pop
cs


git stash - 현재의 작업 상황이 저장됩니다.


git stash list - 저장한 stash 내용들이 출력됩니다.


git stash pop - 저장한 stash 내용을 가져옵니다.


git stash apply [stash명] - stash를 적용합니다. 또한, 이 방법을 사용하면 stash가 사라지지 않습니다.


git stash save [이름] - stash의 정보를 저장할 수 있습니다.


git stash drop [이름] - 저장된 stash의 정보를 삭제합니다.


제 글이 도움이 되셨거나 공감이 되시는 부분이 있으셨다면, 밑에 있는 공감 버튼 한 번씩 꾸욱 눌러주시면 감사하겠습니다.


공감 버튼은 저에게 큰 도움이 됩니다. 감사합니다.


댓글