Git에서 단일 파일에 대한 로컬 변경 사항 실행 취소

John Wachira 2023년1월30일
  1. Git에서 이전에 커밋된 파일 롤백
  2. Git에서 준비된 파일과 준비되지 않은 파일에 대한 변경 사항 실행 취소
  3. git restore 명령
Git에서 단일 파일에 대한 로컬 변경 사항 실행 취소

이 기사에서는 git checkoutgit reset과 같은 명령을 사용하여 원하는 버전으로 파일을 롤백하는 방법에 대해 설명합니다. Git을 사용하면 파일과 리포지토리를 쉽게 재설정할 수 있지만 Git에서 변경 사항을 실행 취소하는 개념은 생각하는 것보다 조금 더 복잡합니다.

리포지토리에서 변경 사항을 실행 취소하는 것은 로컬에서 작업 중인 파일 집합에 대한 변경 사항을 실행 취소하는 것과 다릅니다.

git checkout, git resetgit restore 명령은 파일을 이전 버전으로 롤백할 때 유용합니다. 그러나 이러한 명령에 뛰어들기 전에 우리는 스스로에게 물어야 합니다. 파일 재설정은 무엇을 의미합니까?

파일 재설정은 상황에 따라 다를 수 있습니다. git checkout 명령이 예상과 일치하지 않을 수 있습니다.

이미 커밋된 변경 사항을 롤백하려는 사람과 파일이 저장소와 동기화되도록 변경 사항을 취소하려는 사람은 다릅니다.

다음은 차이점을 이해하기 위해 주의해야 할 몇 가지 용어입니다.

  1. 워킹 트리
  2. 대기 장소
  3. 저장소

Git에서 이전에 커밋된 파일 롤백

일반적인 경우는 파일을 커밋하고 변경 사항을 실행 취소하려는 것입니다. 이러한 시나리오에서 git checkout 명령을 사용합니다.

이전에 이 명령을 사용하여 분기를 전환했지만 이는 수행할 수 있는 작업의 일부일 뿐입니다.

이 명령을 사용하여 이미 커밋한 파일에 대한 변경 사항을 취소할 수 있습니다. 작업 트리의 파일을 리포지토리 기록의 어느 시점에서든 파일과 일치시킵니다.

분기, 태그 및 커밋을 지정할 수 있습니다.

다음은 명령을 실행하는 가장 좋은 방법입니다.

$ git checkout [commit ID] -- path/to/file

위의 명령을 실행할 때 Git이 저장소의 특정 커밋 ID를 가리키도록 합니다. 또한 단일 파일에 대한 경로를 추가했습니다.

위의 명령을 실행하면 작업 트리의 파일만 업데이트됩니다. 파일을 준비하고 새로 커밋해야 합니다.

Git에서 준비된 파일과 준비되지 않은 파일에 대한 변경 사항 실행 취소

준비 영역에는 커밋하려는 파일이 포함되어 있습니다. 스테이징된 파일의 변경 사항을 실행 취소하려면 git reset 명령을 실행하여 스테이징을 해제합니다.

$ git reset HEAD path/to/file

파일을 스테이징하기 전에 로컬 변경 사항을 실행 취소하기 위해 아래 명령을 실행합니다.

$ git checkout -- path/to/file

이 명령은 커밋 ID를 생략한다는 점을 제외하고 첫 번째 명령과 유사합니다.

git restore 명령

최신 버전의 Git에서는 git restore 명령을 사용하여 단일 파일에 대한 변경 사항을 취소할 수 있습니다.

다음은 명령을 사용할 수 있는 몇 가지 방법입니다.

  1. 리포지토리 변경 취소

    $ git restore --source [commit id] path/to/file
    
  2. 파일 스테이지 해제

    $ git restore --staged path/to/file
    
  3. 작업 복사본에 대한 변경 취소

    $ git restore path/to/file
    

단일 파일을 재설정하는 대신 커밋을 롤백하는 경우가 많습니다. 그러나 필요한 경우에는 상당히 간단합니다.

작가: John Wachira
John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

관련 문장 - Git Checkout