Git 에서 파일 삭제 여부 확인 방법

GitBeginner
지금 연습하기

소개

이 랩에서는 Git 저장소에서 파일이 삭제되었는지 확인하는 방법을 배우게 됩니다. 변경 내역을 보기 위해 git log를 사용하고, 작업 디렉토리의 현재 상태를 확인하기 위해 git status를 사용하는 등, 삭제된 파일을 식별하는 다양한 방법을 살펴볼 것입니다.

실습 단계를 통해 파일을 생성하고, 커밋한 다음 삭제하여 Git 이 이러한 변경 사항을 추적하는 방식을 관찰할 것입니다. 특히, 파일이 제거된 커밋을 확인하기 위해 git log -- <file>을 사용하고, 커밋하기 전에 삭제된 파일을 확인하기 위해 git status를 사용할 것입니다. 마지막으로, 이러한 방법을 기존 파일에 적용하여 이해도를 높일 것입니다.

git log -- 파일 실행하여 삭제 확인

이 단계에서는 git log를 사용하여 저장소의 변경 내역을 확인하는 방법을 살펴보고, 특히 파일 삭제를 어떻게 표시하는지 중점적으로 살펴보겠습니다.

먼저, 프로젝트 디렉토리에 있는지 확인해 보겠습니다. 터미널을 열고 다음을 입력합니다.

cd ~/project/my-time-machine

이제 나중에 삭제할 새 파일을 만들어 보겠습니다. to_be_deleted.txt라고 부르겠습니다.

echo "This file is temporary." > to_be_deleted.txt

파일이 생성되었는지 확인합니다.

cat to_be_deleted.txt

다음과 같은 내용이 표시되어야 합니다.

This file is temporary.

이제 이 파일을 스테이징 영역에 추가하고 커밋해 보겠습니다. 이렇게 하면 Git 내역에 파일의 존재가 기록됩니다.

git add to_be_deleted.txt
git commit -m "Add a file to be deleted"

새로운 커밋이 생성되었음을 나타내는 다음과 유사한 출력이 표시되어야 합니다.

[master <commit-id>] Add a file to be deleted
 1 file changed, 1 insertion(+)
 create mode 100644 to_be_deleted.txt

이제 rm 명령을 사용하여 파일을 삭제해 보겠습니다.

rm to_be_deleted.txt

이제 파일 시스템에서 파일이 사라졌습니다. 하지만 Git 은 이에 대해 무엇을 알고 있을까요? 상태를 확인해 보겠습니다.

git status

다음과 유사한 내용이 표시되어야 합니다.

On branch master
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        deleted:    to_be_deleted.txt

no changes added to commit but untracked files present (use "git add" to track)

Git 은 파일이 삭제되었음을 정확하게 식별합니다. 이는 Git 이 파일의 상태를 추적하기 때문입니다. 추적된 파일이 제거되면 Git 은 변경 사항을 감지합니다.

이제 이 삭제를 커밋해 보겠습니다. git add를 다시 사용하여 삭제를 스테이징하고, git commit을 사용합니다.

git add to_be_deleted.txt
git commit -m "Delete the temporary file"

삭제가 커밋되었음을 나타내는 출력이 표시되어야 합니다.

[master <commit-id>] Delete the temporary file
 1 file changed, 1 deletion(-)
 delete mode 100644 to_be_deleted.txt

마지막으로, git log를 사용하여 삭제를 포함한 내역을 확인해 보겠습니다.

git log

두 개의 커밋 항목이 표시됩니다. 가장 최근 항목에는 "Delete the temporary file" 메시지가 표시되고 to_be_deleted.txt가 삭제되었음을 보여줍니다.

로그 보기를 종료하려면 q를 누르십시오.

이는 Git 이 파일의 생성 및 수정뿐만 아니라 삭제도 추적하여 프로젝트의 진화에 대한 완전한 내역을 제공하는 방법을 보여줍니다.

삭제된 파일에 git status 사용

이 단계에서는 변경 사항을 커밋하기 전에 git status가 삭제된 파일을 관리하는 데 어떻게 도움이 되는지 더 자세히 살펴보겠습니다.

프로젝트 디렉토리에 있는지 확인합니다.

cd ~/project/my-time-machine

이전에 to_be_deleted.txt를 삭제하고 삭제를 커밋했습니다. 다른 파일을 만들고 삭제를 즉시 커밋하지 않고 삭제해 보겠습니다.

another_file.txt라는 새 파일을 만듭니다.

echo "This is another file." > another_file.txt

이 새 파일을 추가하고 커밋합니다.

git add another_file.txt
git commit -m "Add another file"

커밋을 확인하는 출력이 표시되어야 합니다.

[master <commit-id>] Add another file
 1 file changed, 1 insertion(+)
 create mode 100644 another_file.txt

이제 rm 명령을 사용하여 another_file.txt를 삭제해 보겠습니다.

rm another_file.txt

이제 파일이 파일 시스템에서 제거되었습니다. 저장소의 상태를 확인해 보겠습니다.

git status

이번에는 다음과 유사한 출력이 표시됩니다.

On branch master
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        deleted:    another_file.txt

no changes added to commit but untracked files present (use "git add" to track)

Git 이 삭제를 인식하고 "Changes not staged for commit" 아래에 another_file.txt를 나열하는 것을 확인하십시오. 즉, Git 은 파일이 사라졌다는 것을 알고 있지만 이 변경 사항은 아직 다음 커밋에 포함되도록 준비되지 않았습니다.

이것은 중요한 점입니다. 파일 시스템에서 파일을 삭제해도 Git 에서 삭제가 자동으로 스테이징되지 않습니다. 이 삭제를 내역에 기록하고 싶다는 것을 Git 에 명시적으로 알려야 합니다.

git status 명령은 저장소의 현재 상태를 보여주는 창입니다. 수정된 파일, 새 파일 및 추적되지 않은 파일, 삭제된 파일을 알려줍니다. git status를 정기적으로 확인하면 프로젝트의 변경 사항에 대한 정보를 얻고 다음 커밋에 포함할 변경 사항을 결정할 수 있습니다.

다음 단계에서는 Git 이 삭제되지 않은 기존 파일을 처리하는 방법을 살펴보겠습니다.

기존 파일 테스트

이 단계에서는 Git 이 이미 추적 중인 파일에 대한 수정을 어떻게 처리하는지 살펴보겠습니다.

프로젝트 디렉토리에 있는지 확인합니다.

cd ~/project/my-time-machine

첫 번째 랩에서 생성하고 커밋한 message.txt 파일이 있습니다. 이 파일을 수정해 보겠습니다. >>와 함께 echo 명령을 사용하여 기존 파일에 텍스트를 추가할 수 있습니다.

echo "Hello again, Future Me!" >> message.txt

>> 연산자는 텍스트를 덮어쓰는 대신 (>`가 수행하는 작업) 파일의 끝에 텍스트를 추가합니다.

변경 사항을 확인하기 위해 파일의 내용을 살펴보겠습니다.

cat message.txt

두 줄 모두 표시되어야 합니다.

Hello, Future Me
Hello again, Future Me!

이제 git status를 사용하여 저장소의 상태를 확인해 보겠습니다.

git status

출력은 다음과 유사하게 표시됩니다.

On branch master
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:   message.txt

no changes added to commit but untracked files present (use "git add" to track)

Git 은 message.txt가 "modified"되었음을 정확하게 식별합니다. Git 은 작업 디렉토리의 현재 파일 버전과 마지막 커밋에 저장된 버전을 비교하기 때문에 이를 알고 있습니다.

삭제된 파일과 마찬가지로 Git 은 변경 사항이 "not staged for commit"이라고 알려줍니다. 즉, 파일을 수정했지만 아직 Git 에 이러한 특정 수정을 다음 저장 지점에 포함하고 싶다고 알리지 않았습니다.

이것이 Git 의 표준 워크플로우입니다. 파일을 변경한 다음 git status를 사용하여 변경한 내용을 확인하고, git add를 사용하여 커밋하려는 변경 사항을 스테이징하고, 마지막으로 git commit을 사용하여 스테이징된 변경 사항을 프로젝트 내역의 새 버전으로 저장합니다.

git status의 출력을 이해하는 것은 Git 으로 효과적으로 작업하는 데 중요합니다. 프로젝트의 상태에 대한 명확한 개요를 제공하고 변경 사항을 기록하기 위해 수행해야 할 다음 단계를 안내합니다.

요약

이 랩에서는 Git 에서 파일이 삭제되었는지 확인하는 방법을 배웠습니다. 먼저 파일을 생성하고 커밋하여 저장소 내역에 파일이 존재하도록 했습니다. 그런 다음 rm 명령을 사용하여 파일을 삭제하고 git status가 삭제를 변경 사항으로 정확하게 보고하는 것을 관찰했습니다. 마지막으로 삭제를 커밋하여 이 이벤트를 Git 내역에 기록했습니다.

이러한 단계를 통해 Git 이 파일 삭제를 추적하고 git status와 같은 도구를 제공하여 커밋하기 전에 이러한 변경 사항을 식별한다는 것을 이해했습니다. 이 프로세스는 Git 이 생성 및 삭제를 포함하여 파일 수명 주기 이벤트의 기록을 어떻게 유지하는지 보여줍니다.