소개
이 튜토리얼은 .gitignore 파일을 사용하여 Git 저장소에서 실행 파일 (.exe 파일) 을 무시하는 과정을 안내합니다. 이 가이드가 끝나면 .gitignore 파일이 무엇인지, 왜 중요한지, 그리고 Git 에서 .exe 파일이 추적되지 않도록 구성하는 방법을 이해하게 될 것입니다. 이 지식을 통해 불필요한 파일이 커밋되는 것을 방지하여 깨끗한 저장소를 유지할 수 있습니다.
이 튜토리얼은 .gitignore 파일을 사용하여 Git 저장소에서 실행 파일 (.exe 파일) 을 무시하는 과정을 안내합니다. 이 가이드가 끝나면 .gitignore 파일이 무엇인지, 왜 중요한지, 그리고 Git 에서 .exe 파일이 추적되지 않도록 구성하는 방법을 이해하게 될 것입니다. 이 지식을 통해 불필요한 파일이 커밋되는 것을 방지하여 깨끗한 저장소를 유지할 수 있습니다.
.gitignore 파일로 작업하기 전에 몇 가지 기본 개념을 이해해 봅시다.
Git 은 개발자가 코드 변경 사항을 추적하고, 팀원과 협업하며, 프로젝트의 기록을 유지하는 데 도움이 되는 버전 관리 시스템입니다. Git 으로 작업할 때, 특별히 Git 에 지시하지 않는 한 저장소의 모든 파일을 추적합니다.
.gitignore 파일은 프로젝트에서 Git 이 무시해야 할 파일 또는 디렉토리를 Git 에 알려주는 텍스트 파일입니다. .gitignore 파일에 나열된 파일은 Git 에 의해 추적되지 않으므로, 커밋 기록에 나타나지 않으며 원격 저장소로 푸시되지 않습니다.
.gitignore 파일을 사용하는 데에는 여러 가지 이유가 있습니다.
.exe 파일과 같은 컴파일된 파일은 크기가 클 수 있으며 일반적으로 소스 코드에서 생성되므로 추적할 필요가 없습니다.이 튜토리얼에서는 Windows 환경에서 일반적으로 발견되는 실행 파일인 .exe 파일을 무시하는 데 중점을 둡니다. 이러한 파일은 일반적으로 소스 코드에서 컴파일되며 Git 저장소에서 추적할 필요가 없습니다.
이 단계에서는 .gitignore 파일이 어떻게 작동하는지 보여주기 위해 새 Git 저장소를 만들고 몇 가지 파일을 추가합니다. 테스트 환경을 설정하려면 다음 지침을 주의 깊게 따르세요.
프로젝트를 위한 새 디렉토리를 만들고 이를 Git 저장소로 초기화하는 것으로 시작해 보겠습니다.
터미널을 엽니다. 기본 디렉토리 /home/labex/project에 있어야 합니다.
gitignore-test라는 새 디렉토리를 만들고 해당 디렉토리로 이동합니다.
mkdir gitignore-test
cd gitignore-test
새 Git 저장소를 초기화합니다.
git init
다음과 유사한 출력이 표시됩니다.
Initialized empty Git repository in /home/labex/project/gitignore-test/.git/
이제 .exe 파일을 시뮬레이션하는 파일을 포함하여 저장소에 몇 가지 테스트 파일을 만들어 보겠습니다.
간단한 텍스트 파일을 만듭니다.
echo "This is a regular text file" > readme.txt
.exe 파일을 시뮬레이션하는 파일을 만듭니다 (데모용).
echo "This simulates an executable file" > program.exe
다른 텍스트 파일을 만듭니다.
echo "This is another text file" > notes.txt
Git 저장소의 상태를 확인하여 Git 이 어떤 파일을 추적하고 있는지 확인합니다.
git status
다음과 유사한 출력이 표시됩니다.
On branch main
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
notes.txt
program.exe
readme.txt
nothing added to commit but untracked files present (use "git add" to track)
이 시점에서 Git 은 .exe 파일을 포함한 모든 파일을 추적되지 않은 파일로 표시하고 있음을 알 수 있습니다. 다음 단계에서는 .exe 파일을 무시하도록 Git 에 지시하는 .gitignore 파일을 만들 것입니다.
테스트 파일로 저장소를 설정했으므로, 이제 Git 에게 .exe 파일을 무시하도록 지시하는 .gitignore 파일을 생성할 것입니다.
터미널에서 gitignore-test 디렉토리에 있는지 확인합니다:
pwd
출력은 다음과 같아야 합니다:
/home/labex/project/gitignore-test
nano 텍스트 편집기를 사용하여 .gitignore 파일을 생성합니다:
nano .gitignore
nano 편집기에서 모든 .exe 파일을 무시하기 위해 다음 줄을 추가합니다:
*.exe
*는 "모든 문자"를 의미하는 와일드카드 문자입니다. 따라서 *.exe는 ".exe 확장자를 가진 모든 파일"을 의미합니다.
Ctrl+O를 누르고 Enter를 눌러 파일을 저장합니다. Ctrl+X를 눌러 nano 를 종료합니다.
이제 Git 저장소의 상태를 다시 확인합니다:
git status
다음과 유사한 출력이 표시되어야 합니다:
On branch main
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
.gitignore
notes.txt
readme.txt
nothing added to commit but untracked files present (use "git add" to track)
program.exe가 더 이상 목록에 표시되지 않는 것을 알 수 있습니다. 이는 .gitignore 구성으로 인해 Git 이 해당 파일을 무시하고 있음을 의미합니다.
이제 나머지 파일을 Git 에 추가하고 첫 번째 커밋을 만들겠습니다. 먼저 Git 에 사용자 정보를 구성해야 합니다.
Git 사용자 정보 구성 (커밋을 위해 필요):
git config --global user.email "labex@example.com"
git config --global user.name "LabEx User"
이 명령은 Git 에 대한 사용자 정보를 설정합니다. --global 플래그는 이 구성이 시스템의 모든 Git 저장소에 적용됨을 의미합니다.
무시되지 않은 모든 파일을 Git 에 추가합니다:
git add .
커밋될 내용을 확인합니다:
git status
다음과 유사한 출력이 표시되어야 합니다:
On branch main
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: .gitignore
new file: notes.txt
new file: readme.txt
첫 번째 커밋을 만듭니다:
git commit -m "Initial commit with .gitignore configuration"
커밋을 확인하는 다음과 유사한 출력이 표시되어야 합니다:
[main (root-commit) xxxxxxx] Initial commit with .gitignore configuration
3 files changed, 3 insertions(+)
create mode 100644 .gitignore
create mode 100644 notes.txt
create mode 100644 readme.txt
이제 .gitignore 파일을 성공적으로 생성하고 모든 .exe 파일을 무시하도록 구성했습니다. Git 은 이제 .gitignore 파일, readme.txt, notes.txt를 추적하지만 program.exe는 무시합니다.
이제 .exe 파일을 무시하도록 .gitignore 파일을 설정했으므로, 제대로 작동하는지 테스트해 보겠습니다.
다른 .exe 파일을 만듭니다.
echo "This is another executable file" > another_program.exe
일반 텍스트 파일을 만듭니다.
echo "This is a new text file" > new_file.txt
Git 저장소의 상태를 확인합니다.
git status
다음과 유사한 출력이 표시됩니다.
On branch main
Untracked files:
(use "git add <file>..." to include in what will be committed)
new_file.txt
nothing added to commit but untracked files present (use "git add" to track)
another_program.exe가 출력에 나열되지 않는 것을 확인하세요. 이는 .gitignore 파일이 올바르게 작동하고 Git 이 모든 .exe 파일을 무시하고 있음을 확인합니다.
Git 에서 이미 추적하고 있는 파일을 수정할 때 어떤 일이 발생하는지 살펴보겠습니다.
readme.txt 파일에 텍스트를 추가합니다.
echo "Adding more content to this file" >> readme.txt
다시 상태를 확인합니다.
git status
다음과 유사한 출력이 표시됩니다.
On branch main
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: readme.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
new_file.txt
no changes added to commit (use "git add" and/or "git commit -a")
이는 Git 이 무시되지 않은 readme.txt에 대한 변경 사항을 추적하고 있으며, 여전히 .exe 파일은 무시하고 있음을 보여줍니다.
변경 사항을 추가하고 커밋해 보겠습니다.
무시되지 않은 모든 파일을 추가합니다.
git add .
변경 사항을 커밋합니다.
git commit -m "Added new file and modified readme"
커밋 기록을 봅니다.
git log --oneline
가장 최근 커밋이 맨 위에 있는 두 개의 커밋이 나열된 것을 볼 수 있습니다.
이제 .gitignore 파일을 성공적으로 테스트했으며, .exe 파일을 무시하면서 저장소의 다른 파일을 추적할 수 있도록 올바르게 작동하는지 확인했습니다.
.exe 파일을 무시하기 위해 .gitignore를 사용하는 기본 사항을 이해했으므로, 몇 가지 고급 패턴과 모범 사례를 살펴보겠습니다.
.gitignore 파일은 보다 유연한 파일 일치를 위해 다양한 패턴을 지원합니다.
특정 파일 무시:
specific_file.txt
파일 유형 무시:
*.exe
*.log
*.tmp
디렉토리 무시:
build/
temp/
특정 디렉토리의 파일 무시:
logs/*.log
무시 대상에서 특정 파일 제외:
!important.exe
몇 가지 추가 패턴으로 .gitignore 파일을 업데이트해 보겠습니다.
편집을 위해 .gitignore 파일을 엽니다.
nano .gitignore
다음 줄을 파일에 추가합니다 (기존 *.exe 줄 포함).
## Ignore all .exe files
*.exe
## Ignore log files
*.log
## Ignore the temp directory
temp/
## Do not ignore this specific executable
!important.exe
Ctrl+O를 눌러 파일을 저장한 다음 Enter를 눌러 확인합니다. Ctrl+X를 눌러 nano 를 종료합니다.
업데이트된 .gitignore 파일을 테스트해 보겠습니다.
디렉토리와 몇 가지 추가 테스트 파일을 만듭니다.
mkdir temp
echo "This is a temporary file" > temp/temp_file.txt
echo "This is a log file" > debug.log
echo "This is an important executable" > important.exe
Git 저장소의 상태를 확인합니다.
git status
다음과 유사한 출력이 표시됩니다.
On branch main
Untracked files:
(use "git add <file>..." to include in what will be committed)
.gitignore
important.exe
no changes added to commit (use "git add" and/or "git commit -a")
Git 이 debug.log와 temp/ 디렉토리의 모든 것을 무시하고 있음을 확인하세요. 그러나 important.exe는 !important.exe 패턴으로 특별히 제외했기 때문에 무시되지 않습니다.
프로젝트 시작 시 .gitignore 파일 만들기: 첫 번째 커밋을 하기 전에 .gitignore를 설정하는 것이 가장 좋습니다.
개인 설정을 위해 전역 .gitignore 사용: 모든 저장소에 적용되는 개인 설정을 위한 전역 .gitignore 파일을 만들 수 있습니다.
특정 규칙 포함: 실수로 중요한 파일을 무시하지 않도록 무시하려는 항목에 대해 구체적으로 지정합니다.
.gitignore 파일에 주석 추가: 특정 파일 또는 디렉토리가 무시되는 이유를 설명하기 위해 주석 ( #로 시작하는 줄) 을 추가합니다.
프로그래밍 언어에 대한 템플릿 확인: 많은 프로그래밍 언어와 프레임워크에는 온라인에서 사용할 수 있는 권장 .gitignore 템플릿이 있습니다.
이러한 모범 사례를 따르고 .gitignore에서 사용할 수 있는 패턴을 이해하면 저장소에서 Git 이 추적하는 파일을 효과적으로 관리할 수 있습니다.
이 튜토리얼에서는 .exe 파일 무시에 중점을 두고, Git 저장소에서 Git 이 추적하는 파일을 효과적으로 관리하기 위해 .gitignore 파일을 사용하는 방법을 배웠습니다. 다음은 수행한 작업에 대한 요약입니다.
Git 저장소에서 .gitignore 파일을 사용하는 목적과 이점에 대해 배웠습니다.
테스트 Git 저장소를 만들고 Git 이 파일을 추적하는 방식을 이해하기 위해 샘플 파일을 추가했습니다.
.gitignore 파일을 만들고 모든 .exe 파일을 무시하도록 구성하여 Git 이 추적하지 않도록 했습니다.
더 많은 파일을 추가하고 .exe 파일이 실제로 무시되는지 확인하여 .gitignore 구성을 테스트했습니다.
Git 저장소를 효과적으로 관리하기 위한 고급 .gitignore 패턴과 모범 사례를 살펴보았습니다.
프로젝트에서 .gitignore를 구현함으로써, 컴파일된 바이너리, 임시 파일 및 민감한 정보와 같이 추적할 필요가 없는 파일을 제외하여 깨끗한 저장소를 유지할 수 있습니다. 이는 저장소를 소스 코드와 필수 파일에 집중시켜 효율성을 높이고 다른 사람들과 더 쉽게 협업할 수 있도록 합니다.