일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- react
- HTML
- TDD방식으로 리액트 테스팅
- 개발
- FlatList 무한 스크롤
- react testing library 비동기 테스트 사용법
- nest.js 순환 참조
- nest.js 순환 종속성
- ScrollView 무한 스크롤
- CSS
- mock api 사용법
- jest
- Testing-library/react
- 비동기 테스트
- nest.js forwardRef
- JavaScript
- javascript 테스트
- TodoList 테스트 코드
- 첫 코딩
- React Testing Library
- react jest
- mock api를 이용한 react 테스트
- react 테스트
- 프로젝트 배포하기
- 리액트 테스트
- react native 무한스크롤
- 리액트 테스트 코드
- React 테스트코드
- nest.js circular Dependency
- 첫코딩
Archives
- Today
- Total
성장을 위한 기록
[GIT] git stash란? 커밋 없이 pull하기 본문
stash (스테이시)
사용하는 이유
[ 1 ] 커밋 없이 pull, checkout 등을 사용하기 위해
- 코드를 작성하다보면 작업 중 pull, checkout 등을 할 필요가 있다.
- 하지만, 커밋을 하지 않을 경우 위 명령을 수행할 수 없을 뿐더러 단순히 브랜치를 옮기기 위해 커밋을 하는 건 바람직하지 않다. ( 커밋 메세지는 히스토리를 남길 수 있는 중요한 요소 )
- 위 상황에서 스테이시를 통해 변경사항을 저장하고 다른 작업후 돌아와 이어 코드를 작성할 수 있다.
[ 2 ] 잘못된 브랜치에서 작업했을 경우
- 예를 들어 develop 브랜치에서 작업을 했어야 했지만, 실수로 main에서 작업하고 있던 경우가 있다.
- 이때 스테이시를 통해 잘못된 브랜치에서 작업한 내용을 저장하고 develop브랜치로 이동하여 저장된 내용을 반영할 수 있다.
[ 3 ] 여러 브랜치에 적용을 해야 할 경우
- 브랜치에 이전 히스토리 때문에 merge나 pull이 꺼려지는 상황이 있다.
- 이때 스테이시를 통해 변경한 부분을 저장하고 여러 브랜치에 checkout을 하며 각각 반영할 수 있다.
자주 사용하는 Stash 명령어 및 사용법
- git stash
- 변경사항이 있다면 checkout을 할 수 없다.
- git stash를 통해 변경 사항을 저장하고 checkout을 통해 브랜치를 변경할 수 있다.
- git stash list
- 스테이시 한 리스트를 볼 수 있다.
- git stash pop || git stash pop stash@{0}
- 스테이시를 이용해 저장한 내용을 다시 꺼낸 후 list에 삭제된다.
- 저장했었던 내용 중 가장 최근 내용을 현재 브랜치에 적용한다.
- stash list를 보면 스테이시 목록에서 사라진다.
- 스테이시를 이용해 저장한 내용을 다시 꺼낸 후 list에 삭제된다.
- list가 다수일 경우 stash ID값을 통해 선택 할 수 있다.
- git stash list 명령어를 통해 각 스테이시에 ID값을 알 수 있다.
- git stash apply || git stash apply stash@{0}
git stash pop
과 유사하지만 list에서 삭제되지 않는 특징이 있다.- 위 사진을 보면
git stash pop
과 동일하게 저장된 부분을 적용했지만, list에는 여전히 남아 있다. - 이 명령어를 통해 여러 브랜치에 동일한 코드를 적용시킬 수 있다.
- 위 사진을 보면
- 마찬가지로 list가 다수일 경우 stash ID를 통해 선택 할 수 있다.
- git stash list 명령어를 통해 각 스테이시에 ID값을 알 수 있다.
- git stash drop || git stash drop stash@{0}
- list에 있는 항목을 지울 수 있다.
- 커밋 이름이 동일하기 때문에 구분은 힘들지만 option이 없다면 가장 최근 내역을 지운다.
- 마찬가지로 ID를 통해 특정 stash를 지우는 것이 가능하다.
- list에 있는 항목을 지울 수 있다.
'GIT' 카테고리의 다른 글
[GIT] git cherry-pick이란 ? 여러 브랜치에 커밋하기 (0) | 2022.11.16 |
---|---|
[GIT] git add 란? 변경된 파일 stage에 올리는 방법 (0) | 2022.11.16 |
Comments