ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • checkout시 손실
    Git 2023. 7. 26. 20:00

    브랜치를 변경해야 할 일이 있는데 이때 커밋하지 않고 다른 브랜치로 넘어가게 되면 오류가 발생한다.   

    해당 브랜치의 내용을 커밋하기는 애매하고 삭제하기는 애매하다는게 문제이다.

     

    git은 데이터 손실을 하지 않으려고 하기 때문에 checkout시 커밋이 안된 변경 사항을 그대로 checkout하려는 branch로 가져온다.

     

    변경사항을 버리고 싶다면?

     

    git checkout -f

    이 명령으로 checkout시 변경사항을 버리고 브랜치를 변경가능하다.

     

     

    임시저장

     

    git stash는 파일의 변경 내용을 일시적으로 기록해두는 영역이다.

    git stash를 사용해 현재 변경했던 모든 내용을 이시적으로 저장한 후, 우선순위가 높은 작업들을 전부 처리한 뒤

    git stash로 임시 저장한 내용들을 다시 불러와 작업을 이어할 수 있다.

     

    # git stash push -m "<message>"
    $ git stash push -m "message"
    
    # git stash save "<message>"
    $ git stash save "message"
    
    # save 생략
    $ git stash

    메시지는 생략 가능하다.

     

    $ git stash list

    stash로 저장된 목록을 조회할 수 있다.

     

    스태시 목록이 다양할 때나, 다른 작업을 열심히 하고 다시 작업을 이어서 하려고 할 때 어느 스태시에 저장해 놨는지 까먹을 수 있다. git stash show를 입력한다면 간단하게 어떤 파일들이 들어있는지 확인할 수 있고, -p옵션을 사용한다면 좀 더 상세한 내용들을 확인할 수 있다.

     

     

    stash 가져오기

    # git stash pop [stash@{index}]
    $ git stash pop
    $ git stash pop stash@{2}
    
    # git stash apply [stash@{index}]
    $ git stash apply
    $ git stash apply stash@{2}

    pop은 목록에서 추출을 하는 것이다.

    apply는 pop과 다르게 목록에서 사라지지 않고 해당 stash를 불러온다.

    둘 모두 특정 stash@{index}를 지정하지 않으면 최근에 저장된 stash를 불러온다.

     

     

     

     

    # git stash drop [stash@{index}]
    $ git stash drop
    $ git stash drop stash@{2}
    
    # git stash clear
    $ git stash clear

    git stash drop은 stash@{index}가 생략될 경우 최근의 stash만 삭제되며, 따로 stash index를 지정하면 지정한 것만 따로 제거할 수 있다.

    git stash clear는 말 그대로 목록을 전부 삭제한다.

     

     

     

     

    728x90

    'Git' 카테고리의 다른 글

    Need to specify how to reconcile divergent branches를 아라보자  (0) 2024.06.28
    git 다른 브랜치 커밋 가져오기  (0) 2024.06.14
    fork가 날아가는 에러  (0) 2023.02.20
    Organization push불가  (0) 2023.02.20
    git Push 취소  (0) 2023.01.20

    댓글

Designed by Tistory.