개발 공부 & 정리
[Git] Git stash 정리 본문
동기 : commit과정에서 modified 된 파일 중 의도치 않게 수정된 파일의 commit을 하고 싶지 않아서 modified file 리스트에서 제거하기 위해 git stash를 사용하였으나, 잘못 사용하여 commit 된 내용들이 삭제되고 git history가 꼬이게 됨.
-
해결 방안 : git checkout (해당 파일의 경로와 파일명)을 해주면 해당 파일을 커밋하지 않고 작업 진행 가능
-> 따라서 git stash에 대해 학습하고자 함.
git stash란 ?
-
아직 마무리하지 않은 작업을 스택에 잠시 저장하는 명령어. -> 아직 완료하지 않은 일을 commit 하지 않고, 나중에 꺼내와 마무리 가능.
-
git stash 명령을 사용하면 워킹 디렉터리에서 수정한 파일들 저장
-
아래에 해당하는 파일들 보관
-
Modified file 이면서, Tracked 상태인 파일
-
Tracked 상태인 파일을 수정한 경우
-
Tracked란? 과거에 이미 commit 하여 스냅샷에 넣어진 관리 대상 상태의 파일
-
Staging Area에 있는 파일(Staged 상태의 파일)
-
git add 명령을 실행한 경우
-
Staged 상태로 만들려면 git add 명령을 실행해야 한다.
- git add라는 파일을 새로 추적할 때도 사용하고, 수정한 파일을 Staged상태로 만들 때도 사용한다.
$ git stash (git stash save)
새로운 stash를 만들어 하던 작업을 임시로 저장
$ git stash list
여러번 stash를 했을 경우 저장한 stash 목록 확인 가능
$ git stash apply
가장 최근의 stash를 가져와 적용한다.
$ git stash apply [stash 이름]
특정 이름의 stash를 가져와 적용한다.
$ git stash drop
스택에 남아있는 (가장 최근의) stash 제거
$ git stash drop [stash 이름]
특정이름의 stash 제거
$ git stash pop
적용과 동시에 제거 (apply + drop)
$ git stash show -p | git apply -R
가장 최근의 stash를 사용하여 패치를 만들고 그것을 거꾸로 적용한다.
출처
'개발 > 이것 저것' 카테고리의 다른 글
Google cloud 에서 Jenkins를 통한 Spring build (with Github) (0) | 2020.03.08 |
---|---|
개발하며 느낀점 (TDD?) (0) | 2020.01.29 |
Selenium 종료시키는 법 (quit 와 close) (0) | 2020.01.21 |
Browserify 나 Webpack 을 사용해 bundle 하는 이유 (0) | 2019.12.17 |
Comments