.gitignore 파일은 Git 저장소에서 추적하지 않을 파일 및 폴더를 지정하는 역할을 합니다. 이 파일은 Git에게 어떤 파일들을 무시하도록 지시하여 Git이 해당 파일들을 버전 관리하지 않도록 합니다. 일반적으로 빌드 파일, 로그 파일, 캐시 파일 등과 같이 버전 관리 시스템에 필요하지 않은 파일을 .gitignore
에 추가합니다.
주요 역할은 다음과 같습니다.
추적하지 않을 파일 및 폴더 지정: .gitignore 파일을 사용하여 Git이 특정 파일 또는 폴더를 저장소에서 무시하도록 지정할 수 있습니다. 이를 통해 개발 환경, 시스템 파일, 컴파일된 파일 등 저장소에 필요하지 않은 파일들을 제외할 수 있습니다.
불필요한 커밋 방지: Git 저장소에 불필요한 파일이나 개인 정보가 포함된 파일이 커밋되는 것을 방지합니다. .gitignore 파일을 사용하여 중요한 파일들이 실수로 커밋되는 것을 막을 수 있습니다.
저장소 용량 관리: 대규모 프로젝트의 경우, 많은 파일들이 저장소에 추가될 수 있습니다. .gitignore 파일을 사용하여 커밋되지 않을 파일들을 제외함으로써 저장소의 용량을 관리할 수 있습니다.
협업 효율 향상: .gitignore 파일을 통해 팀원들 간의 일관된 개발 환경을 유지할 수 있습니다. 개발 도구가 생성하는 임시 파일이나 컴파일된 파일들을 .gitignore에 추가하여 각자의 개발 환경에서 필요한 파일만 공유할 수 있습니다.
.gitignore 파일은 저장소의 루트 디렉토리에 위치하며, 모든 하위 디렉토리에 적용됩니다. 해당 파일에 기재된 패턴에 맞는 파일들은 Git이 자동으로 무시하게 됩니다.
.gitignore 파일은 Git 저장소의 루트 디렉토리에 위치하며, 저장소와 함께 버전 관리될 수 있습니다. 따라서 .gitignore 파일을 프로젝트의 일부로서 관리하는 것이 좋습니다.
다음은 .gitignore 파일을 관리하는 일반적인 접근 방법입니다:
버전 관리: .gitignore 파일을 저장소에 포함시켜 다른 팀원과 공유합니다. 이를 통해 프로젝트의 일관성을 유지하고 모든 팀원이 동일한 무시 규칙을 따를 수 있습니다.
기본 템플릿 사용: 많은 개발 언어와 프레임워크에는 기본적으로 사용할 수 있는 .gitignore 템플릿이 제공됩니다. 이러한 템플릿을 활용하여 프로젝트에 필요한 일반적인 무시 규칙을 추가할 수 있습니다. 예를 들어 GitHub에서는 .gitignore
파일 생성 시 자주 사용되는 언어 및 프레임워크에 대한 템플릿을 제공합니다.
프로젝트별 설정: 프로젝트에 특정한 요구사항이 있다면 .gitignore 파일을 해당 요구사항에 맞게 수정할 수 있습니다. 필요한 파일이나 폴더를 추가하거나, 특정 패턴을 포함시킬 수 있습니다.
주석과 문서화: .gitignore 파일에는 주석을 추가하여 어떤 파일이나 폴더가 왜 무시되는지를 설명하는 것이 좋습니다. 필요한 경우 .gitignore 파일 자체에 문서화를 추가하여 다른 팀원이 이해할 수 있도록 도움을 줄 수 있습니다.
업데이트 및 검토: 프로젝트가 진행되면서 새로운 파일이나 폴더가 추가될 수 있습니다. 이러한 변경 사항을 .gitignore 파일에 반영하고, 주기적으로 업데이트하고 검토하는 것이 좋습니다. 새로운 파일이나 패턴이 추가되는 경우, 해당 변경 내용을 팀원들과 공유하여 일관성을 유지할 수 있습니다.
.gitignore 파일을 프로젝트의 핵심 파일로 간주하고 프로젝트와 함께 유지되도록 관리함으로써, 프로젝트의 일관성과 협업 효율성을 높일 수 있습니다.
.gitignore과 Git LFS는 다음과 같은 주요 차이점이 있습니다.
목적: .gitignore 파일은 Git으로 추적하지 않을 파일이나 폴더를 지정하여 Git의 버전 관리에서 제외시키는 데 사용됩니다. 반면에 Git LFS는 Git 저장소에서 큰 파일이나 바이너리 파일을 관리하기 위한 확장 도구로 사용됩니다.
파일 유형: .gitignore은 텍스트 파일이며, 특정 파일 또는 패턴을 지정하여 Git이 해당 파일들을 무시하도록 지시합니다. Git LFS는 대용량 파일이나 바이너리 파일을 저장하고 추적하기 위한 확장 도구로 사용되며, 이러한 파일은 LFS 서버에 저장되고 Git 저장소에는 LFS 포인터 파일이 포함됩니다.
파일 크기: .gitignore 파일은 일반적으로 작은 텍스트 파일이므로 파일 크기에 큰 영향을 주지 않습니다. 반면에 Git LFS는 대용량 파일을 처리하므로 큰 파일 크기를 지원합니다.
용량 제한: .gitignore 파일은 용량 제한이 없으며, Git 저장소에 포함된 .gitignore 파일은 버전 관리됩니다. 그러나 Git LFS는 GitHub과 같은 원격 저장소의 용량 제한을 고려해야 합니다. GitHub의 경우, 개별 파일 크기가 100MB 이상인 경우 Git LFS를 사용하는 것이 권장됩니다.
.gitignore은 Git 저장소의 파일 및 폴더 관리를 보조하는 도구로 사용되는 반면, Git LFS는 Git 저장소에서 대용량 파일이나 바이너리 파일을 효율적으로 관리하기 위한 별도의 도구로 사용됩니다. 따라서 각각의 목적과 용도에 따라 .gitignore과 Git LFS를 적절하게 활용할 수 있습니다.
.gitignore
파일에는 Git이 무시해야 하는 파일 또는 폴더의 패턴을 지정할 수 있습니다. 각 패턴은 새로운 줄에 작성되며, 파일 또는 폴더의 이름 또는 경로를 포함할 수 있습니다.
.gitignore
파일의 구문은 다음과 같습니다:
#
으로 시작하는 줄은 주석입니다.!
로 시작하는 패턴은 해당 파일을 제외하지 않는다는 의미입니다./
로 시작하는 패턴은 루트 디렉토리에서만 일치합니다./
로 끝나는 패턴은 디렉토리를 나타냅니다.**/
패턴은 임의의 하위 디렉토리를 나타냅니다.*
는 임의의 문자열을 나타냅니다.?
는 임의의 한 문자를 나타냅니다./
를 사용하여 경로를 구분합니다..gitignore
파일을 사용하면 Git 저장소에 포함되지 않아야 하는 파일이나 폴더를 관리할 수 있습니다. 이를 통해 저장소의 깨끗한 상태를 유지하고, 중요하지 않은 파일로 인한 혼란을 피할 수 있습니다.
링크텍스트
위의 링크를 클릭하면 다음과 같이 자신의 프로젝트에 맞는 .gitignore 파일을 만들 수 있다.
아래는 공식 문서에 기록되어있는 .gitignore파일이다. 위의 링크를 통하거나 깃허브 공식 링크와 같이 참조하여 설정할 수 있다.
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# Snowpack dependency directory (https://snowpack.dev/)
web_modules/
# TypeScript cache
*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional stylelint cache
.stylelintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local
# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache
# Next.js build output
.next
out
# Nuxt.js build / generate output
.nuxt
dist
# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public
# vuepress build output
.vuepress/dist
# vuepress v2.x temp and cache directory
.temp
.cache
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# TernJS port file
.tern-port
# Stores VSCode versions used for testing VSCode extensions
.vscode-test
# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*
.gitignore은 git 저장소에 기록되지 않을 파일 또는 폴더를 관리하는데 사용된다.