본문 바로가기
Git

Git(29) git stash 란

by 새발개발JA 2021. 9. 8.
반응형

요즘 git 을 중점적으로 사용하다 보니 git 에 대한 포스팅이 많다. 그만큼 지식과 대처능력도 쌓여가리라 믿는다 :)

오늘은 git stash 에 대해 중점적으로 알아보자. 

 


Git(29) git stash 란

- git stash 사용하기

git stash 는 내가 작업하던 코드만 싹 긁어서 임시 공간에 저장해준다. (클립보드 같은 느낌이랄까)

 

내 브랜치는 { 마스터 + 그 뒤로 작업한 코드 } 상태이다.

작업한 코드만 싹 잘라내기(git stash)하고, 임시공간에 따로 저장해놓는다. 

내 브랜치는 { 마스터 } 만 남는다. 어딘가에  { 그 뒤로 작업한 코드 } 가 따로 임시 저장된다.

 

 

커밋 이 후에 작업을 했다.

const ItemDetail = (): ReactElement => {
  
  return (
    <div className="item-wrap">
      <Header />
      
      // 여기부터 -----------------------
      <div className="item-area">
         <div>방금 만든 영역입니다.</div>
         <div>작업 중 입니다.</div>
         <div>우리 힘냅시다.</div>
      </div>
      // 여기까지 -----------------------
     
      <Footer />
    </div>
  );
};

 

 

터미널에서 git stash 라는 명령어를 쳐보자. 

$ git stash

 

방금 만든 영역이 사라졌다. 하지만 영원히 삭제된 것은 아니니 걱정말자 (어딘가에 임시저장이 되었다.)

const ItemDetail = (): ReactElement => {
  
  return (
    <div className="item-wrap">
      <Header />
     
      <Footer />
    </div>
  );
};

 

- git stash Pop 다시 불러오기

 

git stash pop 하면 { 마스터 } + { 그 뒤로 작업한 코드 } 에서 

{ 마스터  + 그 뒤로 작업한 코드 } 로 stash하여 임시공간에 저장되었던 코드가 원래대로 붙게 된다.

$ git stash pop
const ItemDetail = (): ReactElement => {
  
  return (
    <div className="item-wrap">
      <Header />
      
      // 여기부터 -----------------------
      <div className="item-area">
         <div>방금 만든 영역입니다.</div>
         <div>작업 중 입니다.</div>
         <div>우리 힘냅시다.</div>
      </div>
      // 여기까지 -----------------------
     
      <Footer />
    </div>
  );
};

 

- git stash 관련 명령어 

 

git stash save "testStash"
→ 현재 작업을 testStash 라는 이름으로 저장해두고 branch를 head로 돌린다.(git reset –hard)

 

git stash list
 저장되어 있는 stash들 보기

 

git stash apply

 git stash apply stash@{0} 

→ 이런식으로 git stash list 에서 원하는 스테쉬만 참고하여서 사용한다.
 git stash pop 과 비슷한 명령어지만 stash list에서 삭제하지 않는다는 점이 다르다.

 

git stash drop
 필요 없는 stash를 삭제

 

git stash clear
 전체 stash list를 삭제

 

 

 

새발자가 어떻게 실무에 git stash 를 사용했는지 궁금하다면 ? ↓↓↓

 

Git(27) git rebase 로 커밋관리하기

예전에는 팀원이 적었기 때문에 작업 후에는 내 브랜치에서 → 마스터브랜치로 바로 git merge 하였다. 편하긴 하지만 커밋 이력을 보면 깔끔하지는 못했다. 요즘은 git rebase 으로 커밋이력을 관리

devbirdfeet.tistory.com

 

 

ref : https://wit.nts-corp.com/2014/03/25/1153

 

 

반응형

댓글