Git에서 커밋하기 전에 삭제된 파일 복원
-
Git에서
reset
및checkout
명령을 사용하여 커밋하기 전에 삭제된 파일 복원 -
Git에서
git checkout
명령을 사용하여 커밋하기 전에 삭제된 파일 복원 - Git에서 커밋하기 전에 삭제된 파일 배치 복원
git checkout
및 git reset
명령을 사용하여 커밋하기 전에 삭제된 파일을 복원합니다. Git은 이러한 명령으로 복잡한 작업을 수행할 수 있는 강력한 옵션을 제공합니다.
삭제된 파일을 먼저 언스테이징한 다음 작업 트리에서 별도의 단계로 복원할 수 있습니다. 또는 두 작업을 한 단계로 결합할 수 있습니다.
이 튜토리얼은 단일 명령으로 여러 파일의 삭제 취소를 일괄 처리하는 영리한 트릭을 보여줍니다.
Git에서 reset
및 checkout
명령을 사용하여 커밋하기 전에 삭제된 파일 복원
먼저 저장소를 설정하고 몇 개의 파일을 추가하겠습니다. 다음과 같습니다.
첫 번째 커밋 몇 개는 로그에서 다음과 같이 보입니다.
이제 rm
명령으로 파일을 삭제합니다.
git rm file7.txt
삭제된 파일 file7.txt
는 더 이상 저장소에 없습니다.
rm
의 기본 동작은 삭제 변경 사항을 자동으로 준비하는 것입니다.
이제 커밋하기 전에 삭제된 파일 복원을 진행합니다.
먼저 reset
명령으로 삭제 단계를 해제합니다.
git reset <commit_hash> [--] <path_to_file>
이 명령은 path_to_file
매개변수와 일치하는 모든 파일에 대해 색인을 commit_hash
상태로 복원합니다.
git reset HEAD --file7.txt
이렇게 하면 file7.txt
에 대한 HEAD
인덱스가 복원됩니다. HEAD
는 마지막 커밋을 가리킵니다.
삭제를 커밋하지 않았으므로 마지막 커밋에는 삭제 항목이 없습니다.
본질적으로 이 명령을 사용하여 삭제된 파일을 언스테이징합니다.
다음으로 git checkout
명령을 사용하여 작업 영역에서 삭제된 파일을 복원합니다.
git checkout [--] <path_to_file>
checkout
은 작업 트리의 내용을 이 형식의 인덱스로 덮어씁니다.
git checkout -- file7.txt
Git에서 git checkout
명령을 사용하여 커밋하기 전에 삭제된 파일 복원
git checkout
명령은 위의 두 단계를 하나로 결합할 수 있는 양식을 제공합니다.
git checkout <commit> [--] <path_to_file>
이 형식에서 git checkout
은 인덱스와 작업 영역 모두의 내용을 커밋으로 덮어씁니다.
git checkout HEAD -- file7.txt
HEAD
는 마지막 커밋을 가리킵니다. 삭제를 커밋하지 않았으므로 마지막 커밋은 삭제 작업을 알지 못합니다.
Git에서 커밋하기 전에 삭제된 파일 배치 복원
많은 파일을 삭제하고 커밋하지 않으면 어떻게 될까요? 1000개의 파일을 삭제했고 이제 모든 파일을 복원하려고 한다고 가정합니다.
위의 명령을 1000번 입력하는 것은 프로그래머가 작업을 수행하는 방법이 아닙니다. 대신 경로 지정자에 와일드카드를 사용하여 많은 파일을 일치시키고 단일 명령으로 삭제를 취소할 수 있습니다.
git reset HEAD .
이것은 file7.txt
를 .
로 바꾼 것을 제외하고는 위와 동일한 명령입니다. 와일드 카드. .
git에게 모든 파일과 일치하도록 지시합니다.
따라서 이 명령은 삭제된 모든 파일을 언스테이징합니다. 그런 다음 작업 영역에서 복원합니다.
git checkout .
file7.txt
와 동일한 명령이 다시 .
로 대체됩니다. 와일드 카드. 모든 준비되지 않은 삭제를 한 번에 복원합니다.