Git 6. 임시 처리

1909 단어 gitgit

1. 스태시

워킹 디렉토리에 작업 중인 내용이나 커밋 되지 않은 변경 사항들이 남아 있으면 브랜치를 변경할 수 없다. 이러한 상황에서 스태시 기능을 사용한다.
간단히 말해 안전한 보관!


스태시는 현재 워킹 디렉토리 내역을 별도의 스택 영역에 잠시 보관하라는 명령으로 현재 작업을 임시로 저장할 수 있다. 브랜치를 이동할 때 작업 중인 내용 때문에 워킹 디렉토리가 충돌하는 것을 방지하는 데 사용한다.

$ git stash
$ git stash save // 여러 개의 스태시를 생성할 때 유용
$ git stash save "WIP: 메시지~" // 스태시 구별 메시지 추가 가능
$ git stash --keep-index // 스테이지 영역 파일 제외하고 스태시 생성
$ git stash --include-untracked // untracked 파일 스태시로 생성 (원래는 등록된 파일만 생성)

- 임시 저장 영역의 스택 목록 (* 스택은 FILO 구조)

$ git stash list

- 임시 저장한 스태시 불러오기

-> 스태시는 스택에서 내용을 읽어 올 때 현재 브랜치의 워킹 디렉토리와 자동 병합된다. 자동 병합이 성공하면 읽어 온 내용을 스택에서 제거한다.
-> 복원하는 도중 충돌이 생기면 스태시는 스택에 저장된 내용을 자동으로 삭제하지 않는다.

$ git stash pop

- 새로운 브랜치를 생성한 후 스태시를 적용할 때

$ git stash branch 브랜치이름

- 스태시 복사

  • 스태시 복원 방법
    1) pop : 스택 내용을 복원한 후 스택 목록에서 자동으로 삭제한다. 즉, 스택 내용을 워킹 디렉토리로 이동하는 것
    2) apply : 스택 목록을 읽은 후 자동으로 삭제하지 않는다. 즉, 스택 내용을 워킹 디렉토리로 복사하는 것
$ git stash apply

// 예시
$ git stash apply stash@{1}

- 스태시 삭제

apply 명령어를 사용했거나 충돌이 발생했을 때 별도 명령을 통해 삭제

$ git stash drop

2. 워킹 디렉토리 청소

개발 과정에서 컴파일 등 임시로 생성되는 파일들이 생겼을 때 clean 명령어로 워킹 디렉토리에 있는 추적되지 않는 파일들을 찾아 삭제
❗❗ clean 명령어를 실행하는 순간 워킹 디렉토리의 추적되지 않는 모든 파일을 삭제하므로 주의해야 한다.

$ git clean
$ git clean -f // 강제 청소
$ git clean -n // 가상 처리 후 사용자에게 확인 요청
$ git clean -d // untracked 상태의 파일만 삭제
$ git clean -x // .gitignore에 등록한 파일까지 같이 삭제

좋은 웹페이지 즐겨찾기