일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- returnType
- 누구나 자료구조와 알고리즘
- 레이아웃쪼개기
- utilty type
- 제네릭
- 성능최적화
- 반복줄이기
- 커스텀
- 타입스크립트
- reactjs
- CSS
- React Native
- Chart.js
- 2022
- JS console
- click and drag
- vue.js
- 리액트
- typescript
- react
- javascript
- TSDoc
- 티스토리꾸미기
- const 단언문
- 공통컴포넌트
- 타입좁히기
- 폰트적용하기
- 개발콘텐츠
- NonNullable
- React.js
- Today
- Total
몽땅뚝딱 개발자
[git] Stashing과 Cleaning 본문
◽️ stashing
가끔 커밋을 할 수 있을정도로 안정된 코드가 아닌 상태에서 다른 브랜치로 이동하여 작업해야하는 경우가 있다. 이 때 stash를 사용하면 커밋하지 않고 나중에 다시 돌아와서 작업을 다시 할 수 있다. stash 명령을 사용하면 워킹 디렉토리에서 수정한 파일들만 저장한다. Stash는 Modified이면서 Tracked 상태인 파일과 Stagin Area에 있는 파일들을 보관해두는 장소다. 아직 끝내지 않은 수정사항을 스택에 잠시 저장했다가 나중에 다시 적용할 수 있다.
◽️ 하던 일을 stash하기
임시저장 할 브랜치에서 해당 명령어를 수행한다.
$ git stash
◽️ 저장된 stash 목록 나열하기
스택에 만들어진 stash 목록을 나열한다.
$ git stash list // 저장한 Stash 목록을 확인할 수 있다.
◽️ 만들어진 stash를 적용하자
// 이름이 없으면 가장 최근의 Stash를 적용한다.
$ git stash apply
// 이름을 입력하여 골라 적용할 수도 있다.
$ git stash apply stash@{2)
// 이렇게하면 staged 상태까지 적용할 수 있다.
$ git stash apply --index
- 꼭 stash 할 때와 같은 브랜치에 적용해야하는 것은 아니다.
- 다른 브랜치로 옮기고서 거기서 stash를 복원할 수도 있다.
- 워킹 디렉토리가 깨끗한 상태일 필요도 없으며 충돌이 있으면 알려준다.
- Git은 stash를 적용할 때 staged 상태였던 파일을 자동으로 staged 상태로 만들어주지 않으므로, --index 옵션을 주어 staged 상태까지 적용한다.
◽️ stash 제거
$ git stash drop
$ git stash drop stash@{0}
◽️ stash를 만드는 다른 방법
// Staging Area에 들어있는 파일을 Stash 하지 않는다.
$ git stash --keep-index
// 추적중이지 않은 파일을 같이 저장하는 경우
$ git stash --include-untracked
// 수정된 사항 중에서 골라 지정하기
$ git stash --patch
◽️ stash를 적용한 브랜치만들기
stash에 저장하면 한동안 그대로 유지한 채로 그 브랜치에서 일하게 되므로 수정한 파일에 stash를 적용하면 충돌이 일어날 수도 있다. 해당 명령어를 실행하면 stash 할 당시의 커밋을 체크아웃 한 후새로운 브랜치를 만들고 그 브랜치에 적용한다. 이 모든 것이 성공하면 stash를 삭제한다.
$ git stash branch <branch>
◽️ clean
워킹 디렉토리의 불필요한 파일들을 전부 지우려면 git clean을 사용한다. 추척중이지 않은 파일만 지운다.
$ git clean
이 명령을 실행했을 때 어떤 일이 일어날 지 미리 보고싶다면 -n 옵션을 사용한다.
$ git clean -n -d
$ git clean -x // 무시된 파일까지 함께 지우기
$ git clean -x -i // 대화형으로 실행
출처 및 참고
프로 Git, Scott Chacon, 2014
'Development > Git' 카테고리의 다른 글
[git] 히스토리 단장하기 (0) | 2023.05.14 |
---|---|
[git] 개념, 용어 정리 (추가 중) (0) | 2023.04.29 |
[git] 커밋 가이드라인 (0) | 2023.04.13 |
[git] 브랜치 워크플로(branch workflow) (0) | 2023.04.10 |
[git] 파일 이름 변경하기 / 커밋 재작성하기 / 리모트 저장소 이름 변경 / Alias 생성 (0) | 2023.04.10 |