-
[Git] stash(임시저장)우아한 테크코스/테크코스 2020. 3. 9. 15:39반응형
Git stash
Stash : 숨기는 장소
git stash
commit을 하지 않고, 임시 저장
대상 파일
- 추적 상태인 파일을 수정한 것
> 추적 상태 : 과거에 이미 commit해서 스냅샷에 넣어진 관리 대상의 파일
- Stage 상태의 파일
> add된 파일
임시 저장하기
/* 이전 커밋메시지로 임시 저장하기 */ $ git stash $ git stash save // 예시 $ git stash Saved working directory and index state WIP on jamie-step2: 650988a [리팩터링] 스트림 수정 /* 메시지로 임시 저장하기 */ $ git stash save 메시지 // 예시 $ git stash save "변경내역" Saved working directory and index state On jamie-step2: 변경내역
내용 확인하기
$ git stash list stash@{0}: WIP on jamie-step2: 650988a [리팩터링] 스트림 수정 stash@{1}: On jamie-step2: 변경내역 stash@{2}: On jamie-step2: 변경내역 stash@{3}: WIP on jamie-step2: 650988a [리팩터링] 스트림 수정 stash@{4}: WIP on jamie-step2: 650988a [리팩터링] 스트림 수정
내용 불러오기
/* 가장 최근 stash 복구 */ $ git stash apply /* stash 지정도 가능 */ $ git stash apply stash@{2} /* index 옵션시, stage 상태라면 stage 상태로 복구 */ $ git stash apply --index
불러오면서 내용이 겹치는 경우엔 conflict 발생함 :)
conflict - 충돌하면서 파일에 충돌된 부분이 적용됨, 직접 수정하고 add commit 해주면 됨
$ git stash apply stash@{2} Auto-merging src/main/java/lotto/domain/TotalResult.java CONFLICT (content): Merge conflict in src/main/java/lotto/domain/TotalResult.java
내용 불러오면서 불러온 stash 제거
/* 복구, stash 제거 / 단 non-stage 상태 */ $ git stash pop /* stash 지정도 가능 */ $ git stash pop stash@{2} /* 만약 stage 상태였다면 stage 상태로 돌려줌 */ $ git stash pop --index
삭제하기
/* 가장 위(최근)의 stash 제거 */ $ git stash drop Dropped refs/stash@{0} (2ad204361515d6c931ef41004a0a81dd69050cc7) /* 지정 제거 */ $ git stash drop stash@{2} Dropped stash@{2} (3587701f2f06faf4316d3ec6bb3f77c23fb02085) /* 전부 제거 */ $ git stash clear
개인적으로 임시로 파일 수정하고 롤백할 때 쓰면 편한 것 같음!
반응형'우아한 테크코스 > 테크코스' 카테고리의 다른 글
[Git] Remote(원격) Repo 송수신 (0) 2020.03.09 [Git] commit 조작하기 (0) 2020.03.09 [Git] branch(브랜치) (0) 2020.03.09 [Git] 기본 사용법(in Local Repo) (0) 2020.03.09 [Git] 초기 설정하기 (0) 2020.03.09