Stash
만약 #1 브랜치에서 testfile1을 만들고 #2 브랜치로 이동하는 상황이라고 가정한다.
해당 경우 #1에서 testfile1을 만들고 #2 브랜치로 이동해서 #2 브랜치에서는 testfile2가 없을 것이라고 생각이 들겠지만 직접 실행해보면 스테이징되지 않은 변경사항이 계속 따라다니는 것을 알 수 있다. 현재는 #1 브랜치에서 #2 브랜치로 이동하는데 있어서 충돌나는 파일이 없어서 쉽게 이동이 가능하지만, 충돌 나는 파일이 있다면 깃에서 브랜치 이동을 하지 못하도록 막는다.
따라서 작업했던 내용을 어딘가 저장해두고 안전하게 브랜치를 이동할 수 있는 기능이 필요한대 이를 stash 명령어가 제공해준다. Stash는 커밋하지 않은 변경사항들을 임시저장하고 불필요한 커밋으로 이력이 지저분해지는 것 없이 나중에 돌아올 수 있도록 만들어준다.
만약 test 브랜치에서 작업하고 있었는데, test1의 브랜치에서 잠시 코드를 보고 와야하는 상황이라고 가정한다. 이때 test 브랜치에서 작업하던 것을 commit으로 남기지 않고 test1으로 이동하게 된다면 test 브랜치에서 작업하던 파일과 test1에서 작업하던 파일이 충돌 날 경우에는 브랜치 이동 자체가 되지 않는다. 따라서 해당 경우 test 브랜치에서 git stash 명령어를 통해 스테이징 되지 않은 변경내역들을 저장 한 뒤, test1 브랜치로 이동해 코드를 읽고, 다시 test 브랜치로 이동하여 git stash pop 명령어를 통해 저장했던 변경내역들을 가져와 처리하는 것을 권장한다.
'Cloud > Git' 카테고리의 다른 글
Learn Git Branching을 통해서 브랜치 관리 배우기 (메인 브랜치편) (0) | 2024.04.24 |
---|---|
특정 Commit으로 되돌리기 (0) | 2023.02.17 |
Branch와 Merge (0) | 2023.02.17 |
Repository와 Commit (0) | 2023.02.17 |
Git설치와 설정 (0) | 2023.02.17 |