GitIgnore 를 사용하여 Git 저장소에서 EXE 파일 무시하는 방법

GitBeginner
지금 연습하기

소개

이 튜토리얼은 .gitignore 파일을 사용하여 Git 저장소에서 실행 파일 (.exe 파일) 을 무시하는 과정을 안내합니다. 이 가이드가 끝나면 .gitignore 파일이 무엇인지, 왜 중요한지, 그리고 Git 에서 .exe 파일이 추적되지 않도록 구성하는 방법을 이해하게 될 것입니다. 이 지식을 통해 불필요한 파일이 커밋되는 것을 방지하여 깨끗한 저장소를 유지할 수 있습니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 95%입니다.학습자들로부터 93%의 긍정적인 리뷰율을 받았습니다.

Git 과 .gitignore 파일 이해하기

.gitignore 파일로 작업하기 전에 몇 가지 기본 개념을 이해해 봅시다.

Git 이란 무엇인가요?

Git 은 개발자가 코드 변경 사항을 추적하고, 팀원과 협업하며, 프로젝트의 기록을 유지하는 데 도움이 되는 버전 관리 시스템입니다. Git 으로 작업할 때, 특별히 Git 에 지시하지 않는 한 저장소의 모든 파일을 추적합니다.

.gitignore 파일이란 무엇인가요?

.gitignore 파일은 프로젝트에서 Git 이 무시해야 할 파일 또는 디렉토리를 Git 에 알려주는 텍스트 파일입니다. .gitignore 파일에 나열된 파일은 Git 에 의해 추적되지 않으므로, 커밋 기록에 나타나지 않으며 원격 저장소로 푸시되지 않습니다.

.gitignore 파일을 사용하는 이유는 무엇인가요?

.gitignore 파일을 사용하는 데에는 여러 가지 이유가 있습니다.

  1. 컴파일된 파일 커밋 방지: .exe 파일과 같은 컴파일된 파일은 크기가 클 수 있으며 일반적으로 소스 코드에서 생성되므로 추적할 필요가 없습니다.
  2. 개인 구성 파일 방지: 많은 개발자는 다른 사람에게 영향을 미치지 않아야 하는 자체 구성 설정을 가지고 있습니다.
  3. 민감한 정보 비공개 유지: 비밀, 암호 또는 API 키가 포함된 파일은 Git 에서 추적해서는 안 됩니다.
  4. 저장소 크기 줄이기: 불필요한 파일을 제외함으로써 저장소를 더 작고 효율적으로 유지할 수 있습니다.

이 튜토리얼에서는 Windows 환경에서 일반적으로 발견되는 실행 파일인 .exe 파일을 무시하는 데 중점을 둡니다. 이러한 파일은 일반적으로 소스 코드에서 컴파일되며 Git 저장소에서 추적할 필요가 없습니다.

테스트를 위한 Git 저장소 설정

이 단계에서는 .gitignore 파일이 어떻게 작동하는지 보여주기 위해 새 Git 저장소를 만들고 몇 가지 파일을 추가합니다. 테스트 환경을 설정하려면 다음 지침을 주의 깊게 따르세요.

새 Git 저장소 만들기

프로젝트를 위한 새 디렉토리를 만들고 이를 Git 저장소로 초기화하는 것으로 시작해 보겠습니다.

  1. 터미널을 엽니다. 기본 디렉토리 /home/labex/project에 있어야 합니다.

  2. gitignore-test라는 새 디렉토리를 만들고 해당 디렉토리로 이동합니다.

    mkdir gitignore-test
    cd gitignore-test
  3. 새 Git 저장소를 초기화합니다.

    git init

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

    Initialized empty Git repository in /home/labex/project/gitignore-test/.git/

테스트 파일 만들기

이제 .exe 파일을 시뮬레이션하는 파일을 포함하여 저장소에 몇 가지 테스트 파일을 만들어 보겠습니다.

  1. 간단한 텍스트 파일을 만듭니다.

    echo "This is a regular text file" > readme.txt
  2. .exe 파일을 시뮬레이션하는 파일을 만듭니다 (데모용).

    echo "This simulates an executable file" > program.exe
  3. 다른 텍스트 파일을 만듭니다.

    echo "This is another text file" > notes.txt
  4. 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 파일을 만들 것입니다.

.gitignore 파일 생성 및 구성

테스트 파일로 저장소를 설정했으므로, 이제 Git 에게 .exe 파일을 무시하도록 지시하는 .gitignore 파일을 생성할 것입니다.

.gitignore 파일 생성

  1. 터미널에서 gitignore-test 디렉토리에 있는지 확인합니다:

    pwd

    출력은 다음과 같아야 합니다:

    /home/labex/project/gitignore-test
  2. nano 텍스트 편집기를 사용하여 .gitignore 파일을 생성합니다:

    nano .gitignore
  3. nano 편집기에서 모든 .exe 파일을 무시하기 위해 다음 줄을 추가합니다:

    *.exe

    *는 "모든 문자"를 의미하는 와일드카드 문자입니다. 따라서 *.exe는 ".exe 확장자를 가진 모든 파일"을 의미합니다.

  4. Ctrl+O를 누르고 Enter를 눌러 파일을 저장합니다. Ctrl+X를 눌러 nano 를 종료합니다.

  5. 이제 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 에 사용자 정보를 구성해야 합니다.

  1. Git 사용자 정보 구성 (커밋을 위해 필요):

    git config --global user.email "labex@example.com"
    git config --global user.name "LabEx User"

    이 명령은 Git 에 대한 사용자 정보를 설정합니다. --global 플래그는 이 구성이 시스템의 모든 Git 저장소에 적용됨을 의미합니다.

  2. 무시되지 않은 모든 파일을 Git 에 추가합니다:

    git add .
  3. 커밋될 내용을 확인합니다:

    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
  4. 첫 번째 커밋을 만듭니다:

    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는 무시합니다.

.gitignore 파일 테스트

이제 .exe 파일을 무시하도록 .gitignore 파일을 설정했으므로, 제대로 작동하는지 테스트해 보겠습니다.

더 많은 테스트 파일 만들기

  1. 다른 .exe 파일을 만듭니다.

    echo "This is another executable file" > another_program.exe
  2. 일반 텍스트 파일을 만듭니다.

    echo "This is a new text file" > new_file.txt
  3. 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 에서 이미 추적하고 있는 파일을 수정할 때 어떤 일이 발생하는지 살펴보겠습니다.

  1. readme.txt 파일에 텍스트를 추가합니다.

    echo "Adding more content to this file" >> readme.txt
  2. 다시 상태를 확인합니다.

    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 파일은 무시하고 있음을 보여줍니다.

새 변경 사항 추가 및 커밋

변경 사항을 추가하고 커밋해 보겠습니다.

  1. 무시되지 않은 모든 파일을 추가합니다.

    git add .
  2. 변경 사항을 커밋합니다.

    git commit -m "Added new file and modified readme"
  3. 커밋 기록을 봅니다.

    git log --oneline

    가장 최근 커밋이 맨 위에 있는 두 개의 커밋이 나열된 것을 볼 수 있습니다.

이제 .gitignore 파일을 성공적으로 테스트했으며, .exe 파일을 무시하면서 저장소의 다른 파일을 추적할 수 있도록 올바르게 작동하는지 확인했습니다.

고급 .gitignore 패턴 및 모범 사례

.exe 파일을 무시하기 위해 .gitignore를 사용하는 기본 사항을 이해했으므로, 몇 가지 고급 패턴과 모범 사례를 살펴보겠습니다.

일반적인 .gitignore 패턴

.gitignore 파일은 보다 유연한 파일 일치를 위해 다양한 패턴을 지원합니다.

  1. 특정 파일 무시:

    specific_file.txt
  2. 파일 유형 무시:

    *.exe
    *.log
    *.tmp
  3. 디렉토리 무시:

    build/
    temp/
  4. 특정 디렉토리의 파일 무시:

    logs/*.log
  5. 무시 대상에서 특정 파일 제외:

    !important.exe

.gitignore 파일 업데이트

몇 가지 추가 패턴으로 .gitignore 파일을 업데이트해 보겠습니다.

  1. 편집을 위해 .gitignore 파일을 엽니다.

    nano .gitignore
  2. 다음 줄을 파일에 추가합니다 (기존 *.exe 줄 포함).

    ## Ignore all .exe files
    *.exe
    
    ## Ignore log files
    *.log
    
    ## Ignore the temp directory
    temp/
    
    ## Do not ignore this specific executable
    !important.exe
  3. Ctrl+O를 눌러 파일을 저장한 다음 Enter를 눌러 확인합니다. Ctrl+X를 눌러 nano 를 종료합니다.

업데이트된 .gitignore 테스트

업데이트된 .gitignore 파일을 테스트해 보겠습니다.

  1. 디렉토리와 몇 가지 추가 테스트 파일을 만듭니다.

    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
  2. 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.logtemp/ 디렉토리의 모든 것을 무시하고 있음을 확인하세요. 그러나 important.exe!important.exe 패턴으로 특별히 제외했기 때문에 무시되지 않습니다.

.gitignore 사용에 대한 모범 사례

  1. 프로젝트 시작 시 .gitignore 파일 만들기: 첫 번째 커밋을 하기 전에 .gitignore를 설정하는 것이 가장 좋습니다.

  2. 개인 설정을 위해 전역 .gitignore 사용: 모든 저장소에 적용되는 개인 설정을 위한 전역 .gitignore 파일을 만들 수 있습니다.

  3. 특정 규칙 포함: 실수로 중요한 파일을 무시하지 않도록 무시하려는 항목에 대해 구체적으로 지정합니다.

  4. .gitignore 파일에 주석 추가: 특정 파일 또는 디렉토리가 무시되는 이유를 설명하기 위해 주석 ( #로 시작하는 줄) 을 추가합니다.

  5. 프로그래밍 언어에 대한 템플릿 확인: 많은 프로그래밍 언어와 프레임워크에는 온라인에서 사용할 수 있는 권장 .gitignore 템플릿이 있습니다.

이러한 모범 사례를 따르고 .gitignore에서 사용할 수 있는 패턴을 이해하면 저장소에서 Git 이 추적하는 파일을 효과적으로 관리할 수 있습니다.

요약

이 튜토리얼에서는 .exe 파일 무시에 중점을 두고, Git 저장소에서 Git 이 추적하는 파일을 효과적으로 관리하기 위해 .gitignore 파일을 사용하는 방법을 배웠습니다. 다음은 수행한 작업에 대한 요약입니다.

  1. Git 저장소에서 .gitignore 파일을 사용하는 목적과 이점에 대해 배웠습니다.

  2. 테스트 Git 저장소를 만들고 Git 이 파일을 추적하는 방식을 이해하기 위해 샘플 파일을 추가했습니다.

  3. .gitignore 파일을 만들고 모든 .exe 파일을 무시하도록 구성하여 Git 이 추적하지 않도록 했습니다.

  4. 더 많은 파일을 추가하고 .exe 파일이 실제로 무시되는지 확인하여 .gitignore 구성을 테스트했습니다.

  5. Git 저장소를 효과적으로 관리하기 위한 고급 .gitignore 패턴과 모범 사례를 살펴보았습니다.

프로젝트에서 .gitignore를 구현함으로써, 컴파일된 바이너리, 임시 파일 및 민감한 정보와 같이 추적할 필요가 없는 파일을 제외하여 깨끗한 저장소를 유지할 수 있습니다. 이는 저장소를 소스 코드와 필수 파일에 집중시켜 효율성을 높이고 다른 사람들과 더 쉽게 협업할 수 있도록 합니다.