일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- IntelliJ
- gradle
- java
- JavaScript
- 리액트
- 리눅스
- MongoDB
- jenkins maven
- Jenkins
- REACT
- jenkins github 연동
- Spring Boot
- subnetmask
- nginx
- spring
- CI/CD
- jenkins 설치
- error
- grpc
- Linux
- docker network
- jpa
- Docker
- grafana
- vue.js
- jenkins install
- jenkins jdk
- Jenkins Pipeline
- jenkins github
- MySQL
- Today
- Total
뭐든 즐기면서 ;)
Git stash 명령어 본문
※ git stash : branch에서 작업하던 내용을 stack에 잠시 저장해 두는 것입니다.
A branch에서 작업하던 내용을 stash 명령어를 이용하여 stack에 넣어둔 후, B branch를 checkout하여 작업하고, 다시 A branch로 돌아와 작업을 이어서 진행할 때 유용합니다.
- 사용방법 (현재 수정 또는 추가한 파일이 있다는 가정하에 진행합니다.)
// 기본
> git stash
// 추적중이지 않은 파일까지 모두 저장.(추측으로는 staged되어 있는 파일까지 포함한단 뜻인 것 같음)
> git stash -u
* 추적중이지 않은 파일이 뜻하는 것은 아래 이미지와 함께 설명드리겠습니다. (글쓴이의 추측입니다.)

위 이미지를 보면 branch를 바꾸려 할 때 config-local.xml 파일이 수정되었으니 커밋 또는 stash영역에 넣은 후 진행하라고 뜨는데, 이 파일은 ignore하도록 설정을 해둔 상태로 git status를 했을 때 수정목록에 뜨지 않습니다(추적이 되지 않는 상태). 이때 git stash -u를 하면 해당 파일까지 stash영역에 넣을 수 있습니다.
그냥 git stash를 했을 경우 위에 이미지에 보이는 것처럼 change된 것이 없다고 뜹니다.
- git stash 관련 명령어
// stash 상태의 목록 보기
> git stash list
// stash를 꺼내와 적용할 수 있습니다.
> git stash apply
// stash할 때의 상태 그대로, staged상태까지 그대로 적용됩니다.
$ git stash apply --index
// 스택에서 제거(가장 최근에 stash한 항목이 먼저 drop됩니다.)
> git stash drop
// apply 후 drop
$ git stash pop
# Stash할 당시의 커밋을 Checkout한 후 새로운 브랜치를 만들고, 여기에 stash를 적용함.
> git stash branch 브랜치명
> git stash branch 브랜치명 : stash해놓고, 작업을 계속 하다가 stash를 적용하려고 하면 충돌이 발생할 수도 있다. 이를 방지하기 위해 먼저 git stash branch명령어로 테스트를 해보고, stash를 삭제하면 된다.
(써봐야 알 듯...아직 사용해 본 적이 없습니다.)
'IT정리 > Git Hub' 카테고리의 다른 글
[Git] gitignore 적용하기 (0) | 2024.01.22 |
---|---|
Git rebase - git history에 대해 알아보기 (0) | 2023.01.17 |
Git merge - git history에 대해 알아보기 (0) | 2023.01.14 |
Git 특정 head / Git commit history (0) | 2022.11.17 |