소개
이 랩에서는 git check-ignore 명령어를 사용하여 파일이 Git 에 의해 무시되고 있는지 확인하는 방법을 배우게 됩니다. .gitignore 파일을 생성하고 패턴을 추가한 다음, git check-ignore를 사용하여 어떤 파일이 왜 무시되고 있는지 확인할 것입니다.
또한 .gitignore 파일의 다양한 패턴이 어떤 파일이 추적에서 제외되는지에 미치는 영향을 살펴보고, Git 이 무시된 파일을 처리하는 방식을 더 깊이 이해하게 될 것입니다.
git check-ignore 파일 실행
이 단계에서는 git check-ignore 명령어를 사용하는 방법을 배우겠습니다. 이 명령어는 Git 이 특정 파일 또는 디렉토리를 무시하는 이유를 이해하는 데 매우 유용합니다. .gitignore 파일을 디버깅하는 데 도움이 됩니다.
먼저, 프로젝트 디렉토리에 있는지 확인해 보겠습니다. 터미널을 열고 다음을 입력합니다.
cd ~/project/my-time-machine
이제 Git 이 무시할 것으로 예상되는 파일을 만들어 보겠습니다. temp.log라는 파일을 만들 것입니다. 일반적으로 로그 파일은 Git 저장소에서 무시됩니다.
echo "This is a temporary log file." > temp.log
다음으로, .gitignore 파일을 만들고 .log 파일을 무시하는 패턴을 추가해 보겠습니다.
echo "*.log" > .gitignore
이제 git check-ignore를 사용하여 Git 이 temp.log를 무시하는지 확인할 수 있습니다.
git check-ignore temp.log
Git 이 파일을 무시하는 경우, 이 명령어는 파일과 일치하는 .gitignore 파일의 패턴을 출력합니다. 다음과 유사한 출력을 볼 수 있습니다.
.gitignore:1:*.log temp.log
이 출력은 temp.log 파일이 .gitignore 파일의 1 번째 줄에 있는 패턴 *.log 때문에 무시되고 있음을 알려줍니다.
파일이 무시되지 않은 경우, 이 명령어는 아무런 출력도 생성하지 않습니다.
git check-ignore를 이해하는 것은 프로젝트의 파일을 효과적으로 관리하는 데 매우 중요합니다. 임시 파일, 빌드 아티팩트 또는 민감한 구성 파일과 같이 저장소에 원하지 않는 파일을 실수로 커밋하는 것을 방지합니다.
.gitignore 패턴 확인
이 단계에서는 .gitignore의 다양한 패턴이 어떤 파일이 무시되는지에 미치는 영향을 살펴보겠습니다. .gitignore 파일은 Git 에 어떤 파일 또는 디렉토리를 추적에서 제외할지 지시하기 위해 특정 패턴을 사용합니다.
여전히 ~/project/my-time-machine 디렉토리에 있는지 확인하십시오.
몇 개의 파일을 더 추가하고 .gitignore 파일을 수정하여 다양한 패턴이 어떻게 작동하는지 살펴보겠습니다.
먼저, 몇 개의 새 파일을 만듭니다.
mkdir build
echo "This is a build artifact." > build/output.txt
echo "Another log file." > error.log
echo "A temporary file." > temp.dat
echo "A configuration file." > config.ini
이제 .gitignore 파일을 편집하여 더 많은 패턴을 포함해 보겠습니다. 이를 위해 nano 편집기를 사용할 수 있습니다.
nano .gitignore
nano 편집기 내에서 *.log를 볼 수 있습니다. 그 아래에 다음 줄을 추가합니다.
build/
*.dat
config.ini
이제 .gitignore 파일은 다음과 같이 표시됩니다.
*.log
build/
*.dat
config.ini
Ctrl + X를 누른 다음 Y를 누르고 Enter를 눌러 nano를 저장하고 종료합니다.
이제 -v 플래그와 함께 git check-ignore를 사용하여 각 파일을 무시하는 패턴을 확인해 보겠습니다. -v 플래그는 자세한 출력을 제공하여 일치하는 패턴과 소스 파일 (이 경우 .gitignore) 을 표시합니다.
git check-ignore -v temp.log error.log build/output.txt temp.dat config.ini
다음과 유사한 출력을 볼 수 있습니다.
.gitignore:1:*.log temp.log
.gitignore:1:*.log error.log
.gitignore:2:build/ build/output.txt
.gitignore:3:*.dat temp.dat
.gitignore:4:config.ini config.ini
이 출력은 다음을 확인합니다.
temp.log및error.log는*.log패턴에 의해 무시됩니다.build/output.txt는 전체build/디렉토리가 무시되기 때문에 무시됩니다.temp.dat는*.dat패턴에 의해 무시됩니다.config.ini는config.ini패턴에 의해 무시됩니다.
이러한 패턴을 이해하는 것은 저장소를 깨끗하게 유지하고 추적하려는 파일에만 집중하는 데 필수적입니다.
무시되지 않은 파일 테스트
이 단계에서는 git check-ignore를 사용하여 .gitignore에 의해 무시되지 않은 파일이 출력을 생성하지 않는지 확인합니다. 이는 이 명령어가 어떻게 작동하는지, 그리고 Git 이 의도한 파일을 추적하고 있는지 확인하는 방법을 이해하는 데 도움이 됩니다.
~/project/my-time-machine 디렉토리에 있는지 확인하십시오.
이전 실습에서 message.txt 파일이 이미 있습니다. 이 파일은 .gitignore 파일에 나열되어 있지 않으므로 Git 은 이를 무시하지 않아야 합니다.
message.txt에 대해 git check-ignore를 사용해 보겠습니다.
git check-ignore message.txt
예상대로 이 명령어는 출력을 생성하지 않아야 합니다. 이는 message.txt가 .gitignore 파일 또는 다른 무시 규칙의 어떤 패턴에도 의해 무시되지 않음을 나타냅니다.
이제 무시하지 않으려는 다른 파일을 만들어 보겠습니다.
echo "This file should be tracked." > important_file.txt
그리고 무시 상태를 확인합니다.
git check-ignore important_file.txt
다시, 출력이 없어야 하며, 이는 important_file.txt가 무시되지 않음을 확인합니다.
마지막으로, git status를 사용하여 Git 이 이러한 파일을 어떻게 보는지 확인해 보겠습니다.
git status
다음과 유사한 출력을 볼 수 있습니다.
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: .gitignore
Untracked files:
(use "git add <file>..." to include in what will be committed)
important_file.txt
message.txt
nothing added to commit but untracked files present (use "git add" to track)
important_file.txt와 message.txt가 "Untracked files" 아래에 나열되어 있음을 확인하십시오. 이는 Git 이 해당 파일을 인식하지만 현재 변경 사항을 추적하지 않음을 의미합니다. 무시된 파일 (temp.log, error.log, build/output.txt, temp.dat, config.ini) 은 Git 이 명시적으로 무시하도록 지시했기 때문에 여기에 나열되지 않습니다.
이 단계는 git check-ignore가 무시 규칙을 확인하는 도구이며, 무시 규칙과 일치하지 않는 파일은 git add를 사용하여 추적하도록 명시적으로 추가할 때까지 git status에서 "Untracked"로 표시된다는 개념을 강화합니다.
요약
이 실습에서는 git check-ignore 명령어를 사용하여 특정 파일이 Git 에 의해 무시되고 있는지 확인하는 방법을 배웠습니다. .gitignore 파일을 만들고, 패턴을 추가한 다음, git check-ignore를 사용하여 의도한 파일이 실제로 무시되고 있는지 확인하는 연습을 했습니다. git check-ignore의 출력은 .gitignore 파일의 어떤 패턴이 파일을 무시하게 하는지 이해하는 데 도움이 되었습니다.
또한 .gitignore 파일의 다양한 패턴이 어떤 파일이 무시되는지에 미치는 영향을 살펴보았습니다. 다양한 파일을 만들고, 서로 다른 패턴으로 .gitignore 파일을 수정함으로써 Git 이 이러한 패턴을 어떻게 해석하여 파일과 디렉토리를 추적에서 제외하는지 더 잘 이해하게 되었습니다. 이러한 지식은 Git 저장소에 어떤 파일을 포함할지 효과적으로 관리하는 데 필수적입니다.



