Git에서 로컬 변경 사항을 이전 상태로 되돌리기

Ashok Chapagai 2023년1월30일
  1. Git에서 준비되지 않은 로컬 변경 사항 되돌리기
  2. Git에서 단계적 로컬 변경 사항 되돌리기
Git에서 로컬 변경 사항을 이전 상태로 되돌리기

Mario에게 작업이 할당되어 완료하려고 했지만 고객이 요구 사항을 변경하고 이전에 할당된 작업을 중단하도록 Mario에게 요청했다고 가정해 보겠습니다. 그렇다면 이 딜레마에 대한 완벽한 솔루션은 무엇일까요?

이 기사에서는 Git에서 로컬 변경 사항을 이전 상태로 되돌리는 방법을 배웁니다.

Git에서 준비되지 않은 로컬 변경 사항 되돌리기

일반적으로 파일을 스테이지로 푸시하는 git add 명령을 사용하지 않은 경우 아래 단계에 따라 이전 상태로 쉽게 이동할 수 있습니다.

  • git status로 파일 상태를 확인합니다.
    $ git status
    On branch dev
    Your branch is up to date with 'origin/dev'.
    
    Changes not staged for commit:
      (use "git add <file>..." to update what will be committed)
      (use "git restore <file>..." to discard changes in working directory)
    	modified:   frontend/src/index.tsx
    	modified:   frontend/src/common/components/index.tsx
    	modified:   frontend/src/common/components/index.css
    
  • 상태가 알려지면 아래 옵션을 원하는 대로 사용할 수 있습니다.
    • 로컬 변경 사항 덮어쓰기
    git checkout -- <file>
    
    • 나중에 프로젝트에서 사용할 수 있도록 로컬 변경 사항을 저장합니다.
    git stash
    
    • 파일의 모든 변경 사항을 취소합니다.
    git reset --hard
    

Git에서 단계적 로컬 변경 사항 되돌리기

git add 명령을 사용하여 파일을 추가한 경우 아래 단계에 따라 이전 상태로 되돌릴 수 있습니다.

  • git status를 사용하여 추가된 파일의 가용성을 확인합니다.
  • 준비된 파일을 보았으므로 되돌릴 파일을 선택하고 상황에 따라 다음 명령을 사용할 수 있습니다.
    1. 파일에 대한 변경 사항을 유지하되 스테이지된 상태로 두지 마십시오.
    git restore --staged <file_name_with.path>
    
    1. 변경 사항을 유지하는 모든 파일의 스테이지를 해제합니다.
    git reset
    
    1. 모든 변경 사항을 취소하고 나중에 사용할 수 있도록 저장합니다.
    git stash
    

    참고: git stash pop을 사용하여 git stash의 효과를 취소하고 git stash list를 사용하여 사용 가능한 숨김 목록을 표시합니다.

    1. 모든 것을 버리십시오
    git reset --hard
    
Ashok Chapagai avatar Ashok Chapagai avatar

Ashok is an avid learner and senior software engineer with a keen interest in cyber security. He loves articulating his experience with words to wider audience.

LinkedIn GitHub

관련 문장 - Git Revert