gitignore에서 디렉토리 무시와 파일 무시
Post

gitignore에서 디렉토리 무시와 파일 무시

이 글에서는 gitignore 파일을 사용할 때 디렉토리 무시와 파일 무시의 차이에 대해 설명합니다. 두 방식 모두 불필요한 파일이나 디렉토리가 Git 저장소에 추가되는 것을 방지하기 위해 사용됩니다. 하지만 설정 방법과 동작 방식에는 중요한 차이가 존재합니다.

gitignore에서 디렉토리 무시와 파일 무시의 차이

디렉토리 무시

특정 디렉토리를 무시하려면 디렉토리 이름 뒤에 /를 붙입니다. 디렉토리 전체를 무시하고 싶을 때 사용하는 방식입니다.

  • 작성 방법 예시

    1
    2
    
    logs/
    temp/
    
  • 특징
    • 해당 디렉토리 및 디렉토리 내부의 모든 파일과 하위 디렉토리가 무시됩니다.
    • 디렉토리 이름이 정확히 일치해야 합니다.
  • 주의 사항
    • 디렉토리를 무시하면 해당 디렉토리 자체가 Git의 탐색 대상에서 제외되므로, 하위 파일에 대한 예외 규칙(!)은 적용되지 않습니다.
    • 특정 하위 파일만 추적하려면, 디렉토리 자체를 무시하지 말고 디렉토리 내부 파일 패턴을 세밀하게 지정해야 합니다.
  • 예시

    1
    2
    3
    4
    5
    6
    7
    
    # 잘못된 방식 (하위 파일 예외가 적용되지 않음)
    logs/
    !logs/important.log
    
    # 올바른 방식 (디렉토리 자체를 무시하지 않고, 하위 파일과 디렉토리를 모두 무시한 뒤 특정 파일만 제외)
    logs/*
    !logs/important.log
    

파일 무시

특정 파일을 무시하려면 파일명을 직접 지정하거나 패턴을 사용합니다.

  • 작성 방법 예시

    1
    2
    3
    
    *.log
    *.tmp
    .DS_Store
    
  • 특징
    • 파일명이나 확장자 패턴에 따라 파일만 무시합니다.
    • 디렉토리 구조와 관계없이 지정한 파일만 무시 대상이 됩니다.
  • 주의 사항
    • 이미 Git에 추가된 파일은 .gitignore에 추가하더라도 자동으로 무시되지 않습니다. 추적을 중지하려면 git rm --cached 명령어를 사용해야 합니다.

정리

gitignore를 사용할 때는 무시하고자 하는 대상이 디렉토리인지 파일인지 명확히 구분하여 설정해야 합니다. 디렉토리를 무시하면 그 안의 모든 내용이 무시되며, 하위 파일을 선택적으로 추적할 수 없습니다. 파일을 무시할 경우에는 파일 단위로 세밀한 제어가 가능합니다. 이를 이해하고 적절히 설정하면 Git 저장소를 깔끔하게 유지할 수 있습니다.

항목디렉토리 무시파일 무시
적용 대상특정 디렉토리 전체특정 파일 또는 파일 패턴
작성 방법디렉토리 이름 뒤에 / 추가파일 이름 또는 패턴 지정
예시build/, output/*.log, error.txt
주요 특징디렉토리 및 내부 전체 무시파일만 무시, 디렉토리는 무시하지 않음
주의할 점하위 파일 예외 적용 불가이미 커밋된 파일은 별도 삭제 필요

Reference