여러 명이서 같은 git Repositorie에서 작업을 한다.
내가 git에 최종적으로 push를 하고 다음 작업을 하려고 branch를 생성했다.
내가 작업하는 중간에 동료가 git push를 해서 나는 최신 소스코드 한 단계 아래에 있다.
이때 git pull을 하면 충돌이 날 것이다.
git stash를 해서 잠깐 다른데 저장을 한 다음에 pull을 받고 다시 branch를 생성한 후 다시 저장한 것을 불러오면 된다.
🤔 git stash 란?
- 새로운 stash를 스택에 만들어하던 작업을 임시 저장
터미널에서 git stash -h 로 사용법(도움말)을 볼 수 있다. (-h는 help의 약자이다.)
git stash -h : git stash를 어떻게 쓰는지 설명해 주는 help 명령어
git stash list
git stash show
git stash drop
git stash pop
git stash apply
git stash branch <branchname>
git stash
git stash save
git stash clear
git stash create
git stash store
✏️ git stash list
현재 저장소에 임시 저장된 전체 목록을 확인할 수 있다.
stash@{0}은 임시 변경사항의 임시 이름이다.
✏️ git stash (git stash save)
git stash는 git stash save의 축약형이다.
git stash : 현재 작업 파일 stash에 저장
git stash save NAME : 특정 이름으로 stash 저장
-m을 붙이지 않으면 현재 상태를 의미하는 메시지가 자동으로 붙여진다.
다시 git stash list를 해서 보면
예전에 지우지 않은 것까지 두 개가 있다.
stash@{1}에 있는 것은 -m을 사용해서 메시지를 지정해 줬다.
stash@{0}은 메시지를 지정하지 않아서 자동으로 메시지가 붙여졌다.
만약 stash@{1}처럼 메시지를 지정하고 싶으면 -m과 같이 써주면 된다.
> git stash -m '영문화 임시저장'
✏️ git stash show
임시 변경사항의 내용을 확인할 때 사용한다.
확인하고 싶은 임시 변경사항의 이름을 git stash show 뒤에 적어주면 된다.
> git stash show stash@{0}
✏️ git stash pop
apply와 drop 명령어의 조합이다.
즉, 꺼내오는 동시에 삭제한다.
git stash pop을 인자 없이 실행하면 인덱스가 stash@{0}인 변경사항(가장 최근에 stash 된 내용)에 대해 두 가지 작업을 수행한다.
1. git stash@{0}을 꺼내온다. (apply)
2. git stash@{0}을 삭제한다. (drop)
git stash pop == git stash apply + git stash drop
✏️ git stash apply
git stash 한 것을 다시 불러오려 할 때 사용한다.
git stash apply를 하면 꺼내오긴 하는데 스택에 변경사항은 남아있다.
git stash apply : 가장 최근 stash 가져오기
git stash apply stash@{n} : n번 stash 가져오기
✏️ git stash drop
git stash drop을 실행하면 stash@{0}이 삭제되고, stash@{1}이 stash{0}으로 변경된다.
git stash drop : 가장 최근 stash 지우기 (stash@{0}이 가장 최근 stash -> 순서 : stash@{0}, stash@{1}, stash@{2}, etc.)
git stash drop stash@{n} : n번 stash 지우기
✏️ git stash clear
모든 임시 변경사항(stash)을 삭제
stash 모두 지우기
모든 임시 변경사항을 한 번에 삭제할 수 있어서 git stash list를 해도 아무것도 출력되지 않는다.
✏️ git stash branch
임시저장된 변경사항을 반영한 브랜치 새로 만들기
새로운 브랜치를 만들고 stash 된 내용을 pop 한다.
pop으로 동작하기 때문에 임시 저장된 내용을 꺼낸(apply) 다음 삭제(drop)한다.
> git stash branch new-branch
이렇게 git stash에 대해 알아보았다!
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/028.gif)
'Programming > Git' 카테고리의 다른 글
GitHub 2단계 인증(OTP) 활성화하기 (0) | 2022.12.07 |
---|---|
연동할 git 계정의 이름과 이메일 설정 방법 (0) | 2022.01.25 |
[GitHub] Repository 삭제하는 방법 (0) | 2021.05.13 |
GitHub와 Eclipse 연동하는 방법 (0) | 2021.05.11 |
댓글