[GIT] Stashing과 Cleaning

Stashing

  • git statch 명령을 사용하여 아직 완료하지 않은 수정사항을 저장할 수 있습니다.
  • 워킹 디렉토리에서 수정한 파일들만 저장합니다.
  • Modified이면서 Tracked 상태인 파일과 Staging Area에 있는 파일들을 보관합니다.
  • stash 영역으로 이동되기 때문에 checkout을 할 수 있습니다.

stash에 저장하기

    • $ git stash save "message"​
       

stash 작업 확인

  • $ git stash list
    # 스택에 쌓여있는 모든 stash를 보여줍니다.

여러개의 stash

  • 만약 여러 개의 stash가 있다면, git stash apply stash@{n}을 사용하여 특정 stash를 적용할 수 있습니다.

stash 작업 제거

  • $ git stash drop
    # 또는
    $ git stash drop stash@{n}

stash 명령어 옵션

  • --keep-index : Staging Area에 있는 변경 사항을 stash에 포함시키지 않습니다.
  • $ git stash --keep-index
  • Staging Area에 있는 파일을 제외한 나머지 수정사항만을 stash에 저장합니다. 따라서 Staging Area에 있는 변경 사항은 현재 브랜치에 유지됩니다.
  • --include-untracked 또는 -u : 추적되지 않은 파일도 함께 Stash에 저장합니다.
  • $ git stash -u
  • 이 명령은 추적되지 않은 파일과 추적 중인 파일을 모두 Stash에 저장합니다.
  • --patch : 수정된 파일 중 일부만 Stash에 저장할 수 있도록 대화형 패치 모드를 제공합니다.
  • $ git stash --patch
  • 수정된 파일의 변경 내용 중 일부를 선택적으로 Stash에 저장할 수 있도록 하는 대화형 모드를 시작합니다. 변경 사항을 선택하고 stash를 생성할 수 있습니다.

statsh를 적용한 브랜치 만들기

  • $ git stash branch <새로운 브랜치 이름> <stash 이름>
  • 여기서 <새로운 브랜치 이름>은 생성할 새로운 브랜치의 이름이며 <stash 이름>은 적용할 Stash의 이름입니다. 만약 <stash 이름>을 지정하지 않으면 가장 최근의 Stash가 자동으로 선택됩니다.

워킹 디렉토리 청소하기

  • git clean 명령은 워킹 디렉토리를 정리하고 추적되지 않은 파일을 삭제하는 데 사용됩니다. 명령을 사용할 때는 주의가 필요하며 -n 옵션을 사용하여 어떤 파일이 지워질지 확인하는 것이 좋습니다.
  • 추적되지 않은 모든 파일 삭제 (디렉토리 포함)
    • $ git clean -f -d
      # 이 명령은 -f 옵션을 통해 강제로 삭제하고, -d 옵션은 디렉토리까지 삭제합니다.
  • 가상으로 실행하여 어떤 파일이 지워질지 확인하기
    • $ git clean -n -d
      # n 옵션은 가상으로 실행하라는 의미로 실제로는 파일을 지우지 않고 어떤 파일이 삭제될지 
      # 미리 확인할 수 있습니다.
  • .gitignore에 명시된 무시된 파일까지 모두 삭제
    • $ git clean -f -d -x
      # -x 옵션은 무시된 파일까지 삭제하라는 의미입니다.
  • 대화형 모드로 실행
    • $ git clean -x -i
      # -i 옵션은 대화형 모드로 실행하며, 파일별로 삭제 여부를 선택할 수 있습니다.

'GIT > Git 도구' 카테고리의 다른 글

[GIT] 히스토리 편집하기  (0) 2024.03.18
[GIT] 히스토리 검색하기  (0) 2024.03.18
[GIT] 작업에 서명하기  (0) 2024.03.18
[GIT] 대화형 명령  (0) 2024.03.11
[GIT] 리비전 조회하기  (0) 2024.03.11