브랜치 변경하기(브랜치 체크아웃시 주의사항)
- 브랜치를 만들고 체크아웃을 통해 변경하려고 하면 현재 작업디렉토리가 깨끗해야 한다.(변경 사항이 없어야 한다)
- 그런데 갑자기 다른 브랜치로 바꾸고 싶을 때 현재 작업 내용을 임시로 저장하고 싶다면? 이럴 때 스태시를 사용한다.
스태시 사용하기
- 스태시를 사용하면 임시 저장 공간에 현재 작업 내용이 저장된다.
- 이 내용을 스태시라고 하고 언제든지 다시 복구할 수 있다.

test라는 브랜치를 생성한다.


- 내용 변경 후 커밋한다. 이러면 브랜치 체크아웃에 문제가 없다.


- 내용을 변경 후 커밋하지 않고 체크아웃 시도하려면 오류가 난다.
해결법
1. 작업 중인 내용의 임시 저장
- 1. 브랜치1에서 일단 (임시) 커밋을 한다.
- 2. 브랜치2로 체크아웃하고 볼 일을 본다.
- 3. 다시 브랜치1로 되돌아 온다.
- 4. 1의 작업을 이어서 마무리 한다.
- 5. 커밋 덮어쓰기 (commit --amend) 를 한다.
- 6. (선택 사항) 필요하다면 (push --force)를 한다.



- 아까 내용을 커밋 후 내용을 한번 더 수정 후 커밋한다.

- 위 방법은 좋지않다. 불필요한 커밋이 생기기 때문이다.

- 다른 방법을 적용시키기 위해 reset을 실시한다.



- 내용을 수정 후 커밋을 할 때 커밋 옵션에서 마지막 커밋 정정 옵션을 고른다.

- 커밋 덮어쓰기 완료



- 푸쉬 후 내용을 바꿔 다시 커밋하면 아래와 같은 문제가 생긴다.
- 서버와 현재 변경한 내용이 서로 다른 것이다.

- 이를 위해 터미널을 열고 $git push --force를 입력해 변경한 내용을 강제 푸쉬해 서버와 내용이 일치하도록 만든다.


- 정상적으로 돌아왔다.
- 그러나 임시 커밋은 서버에 올리는 것은 좋지 않다.

- 따라서 해당 브랜치를 삭제한다.


- 서버에 있는 브랜치도 삭제해야하므로 위 같은 방식으로 삭제한다.
- 지금까지는 별 중요한 내용이 아니다.
- 스태시를 사용하는 법을 알아보자
2. 스태시 사용
Stash 이용해서 같은 작업 하기
1. stash를 만든다.
2. 이 때 새로운 파일이 있었다면 일단 인덱스에 추가한다.
3. 체크아웃한다.
4. 되돌아 온다.
5. Stash를 Pop 한다.
6. 보통 커밋을 새로 생성한다.


- 아까와 같이 내용을 수정 후 체크아웃 시도시 오류가 난다.
- 이를 위해 스태시(임시 작업 공간)을 이용한다.


- 스태시 버튼을 클릭해 스태시를 한다.

- 내용이 사라져있다. 체크아웃도 정상적으로 잘 작동할 것이다.
- 그렇다면 변경한 내용은 어디로 갔는가?

- 좌측 하단에 존재한다.


- 체크아웃 후 다른 브랜치에서 내용을 수정 후 다시 체크아웃해서 기존 브랜치로 돌아와서 스태시 적용을 하면 이전에 내용이 돌아온다.
- 불필요한 커밋을 만들지 않을 수 있어서 장점이 있다. 좋은 기능이다.

'Git' 카테고리의 다른 글
[Git] 깃 사용 기타 주의 사항 및 요약 (0) | 2023.03.16 |
---|---|
[Git] rebase 사용해서 히스토리 관리하기 (0) | 2023.03.16 |
[Git] Revert를 사용해 커밋 되돌리기 (0) | 2023.03.16 |
[Git] 브랜치를 만들어서 커밋 되돌리기 (0) | 2023.03.13 |
[Git] reset으로 커밋 되돌리기(Sourcetree) (0) | 2023.03.13 |