ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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

    댓글

Designed by Tistory.