tgool
Tgool
tgool
전체 방문자
오늘
어제
  • 분류 전체보기
    • Data Science
      • AI
      • Data Mining
      • ML(Machine Learning)
    • Computer Science
      • 자료구조
      • 알고리즘
      • 시스템 프로그래밍
      • 운영체제
      • 컴퓨터 구조
      • 컴퓨터 네트워크
      • 데이터 베이스
      • 파이썬
      • 자바
      • 아두이노
    • Math
      • 통계학
      • 확률론
      • 선형대수학
      • 수리통계학
      • 회귀분석
    • TOFEL
    • Git
    • Plan
    • Book
    • Working out
      • 영양과 생활
      • 운동 정보
      • 운동 기록

인기 글

최근 글

최근 댓글

hELLO · Designed By 정상우.
tgool
Git

[Git] 브랜치와 스태시

[Git] 브랜치와 스태시
Git

[Git] 브랜치와 스태시

2023. 3. 16. 13:08

브랜치 변경하기(브랜치 체크아웃시 주의사항)

  • 브랜치를 만들고 체크아웃을 통해 변경하려고 하면 현재 작업디렉토리가 깨끗해야 한다.(변경 사항이 없어야 한다)
  • 그런데 갑자기 다른 브랜치로 바꾸고 싶을 때 현재 작업 내용을 임시로 저장하고 싶다면? 이럴 때 스태시를 사용한다.

스태시 사용하기

  • 스태시를 사용하면 임시 저장 공간에 현재 작업 내용이 저장된다.
  • 이 내용을 스태시라고 하고 언제든지 다시 복구할 수 있다.

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
  • 브랜치 변경하기(브랜치 체크아웃시 주의사항)
  • 스태시 사용하기
  • 해결법
  • Stash 이용해서 같은 작업 하기
  •  
'Git' 카테고리의 다른 글
  • [Git] 깃 사용 기타 주의 사항 및 요약
  • [Git] rebase 사용해서 히스토리 관리하기
  • [Git] Revert를 사용해 커밋 되돌리기
  • [Git] 브랜치를 만들어서 커밋 되돌리기
tgool
tgool
Tgooltgool 님의 블로그입니다.

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.