Git에 하나의 파일 숨기기

Abdul Jabbar 2023년1월3일
Git에 하나의 파일 숨기기

때로 우리는 거대한 프로젝트를 진행하다 보면 여러 가지 이유로 작업 상태가 엉망이 되는 상황을 접하게 됩니다.

이 경우 더 잘 작동하려면 잠시 동안 분기를 전환해야 합니다. 이 상황에서 우리가 직면할 수 있는 문제는 나중에 이 지점에 접근하기 위해 절반만 완료된 작업에 전념할 필요가 없다는 것입니다.

이 문제에 대한 해결책은 git stash 명령입니다. git stash 명령을 사용하면 작업 디렉토리의 상태를 임시 파일에 임시로 저장할 수 있습니다.

, 그런 다음 분기를 전환하고 원하는 작업을 커밋한 다음 git stash 명령으로 보류한 작업으로 돌아갈 수 있다고 말할 수 있습니다.

즉, git stash 명령이 훨씬 간단하다고 말할 수 있습니다. 작업 디렉토리의 현재 상태와 숨김 파일의 색인을 저장합니다. 즉, 인덱스 또는 작업 디렉터리에 커밋된 변경 사항이 없습니다.

스태싱은 작업 디렉토리의 관련 없는 상태, 즉 수정된 추적 파일 및 단계적 변경 사항을 가져와서 나중에 다른 분기를 사용하여 다시 적용할 수 있는 완료되지 않은 변경 사항의 스택 데이터 유형에 저장합니다.

작업하면서 많은 변경을 하고 많은 더티 파일을 추가할 수 있지만, 숨길 때 Git은 작업 디렉토리의 깨끗한 단일 스냅샷만 저장합니다.

파일을 숨긴다는 것은 이 파일의 내용을 stash로 푸시한다는 것을 의미합니다. 파일을 다시 변경하면 작업 디렉토리가 아닌 stash에서 변경됩니다. 따라서 파일을 stash한 후 변경하면 안 됩니다.

파일을 숨기려면 stash save 명령을 사용해야 합니다. 작업 디렉토리의 모든 변경 사항을 숨기려면 stash save --all 명령을 사용해야 합니다. 파일을 숨김 해제하려면 stash pop 명령을 사용해야 합니다.

Git에 하나의 파일만 저장하는 단계

7개의 파일이 있고 모두 변경했다고 가정해 보겠습니다. 이제 현재 저장소에 있는 7개 파일 중 하나만 저장하려면 어떤 단계를 따라야 하는지 알아보겠습니다.

  • 변경된 파일 보기

    먼저 git status 명령을 실행하여 변경된 파일 목록을 검사합니다.

    git status
    
  • 스테이징 파일

    목록을 검토한 후 git add 명령을 실행하여 7개의 파일을 모두 준비합니다.

    git add .
    
  • 파일 스테이징 해제

    모든 파일을 스테이징한 후 다음 단계는 git reset 명령을 사용하여 file2를 언스테이징하는 것입니다.

    git reset file2
    
  • 파일 숨기기

    이제 git stash 명령을 사용하여 file2를 숨겨 현재 저장소의 현재 커밋된 단계로 되돌립니다.

    git stash --keep-index
    

    하나의 파일만 숨길 수 있는 다른 방법은 다음 명령을 실행하는 것입니다.

    git stash save -p "commit message"
    

위의 방법을 사용하여 숨김에 추가할 블록을 선택할 수 있습니다. 또한 파일에서 작업한 경우 작업 파일에서 커밋이 완료되도록 커밋하기 전에 변경 사항을 숨길 수 있습니다.

이 명령은 인덱스에 추가된 변경 사항(단계적 변경 사항)과 현재 Git에서 추적하는 파일에 대한 변경 사항(단계적 변경 사항)을 숨깁니다.

스태싱은 작업 복사본의 현재 상태에 대한 스냅샷을 만들고 스냅샷을 저장한 다음 깨끗한 작업 복사본 상태로 돌아가는 방법입니다.

인덱스에 변경 사항을 추가하고 나면 커밋할 수 있습니다. 인덱스가 아닌 작업 디렉토리에 변경 사항을 숨기고 싶다면 --keep-index 옵션을 사용하십시오. 숨겨진 변경 사항은 언제든지 다시 적용할 수 있습니다.

메모
파일을 숨긴 후 저장소에 커밋해야 합니다. 우리는 그것을 잊지 말아야 합니다.
작가: Abdul Jabbar
Abdul Jabbar avatar Abdul Jabbar avatar

Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.

LinkedIn

관련 문장 - Git Stash