Git으로 프로젝트를 관리할때 무시할 파일들이 있다.
대표적으로 node_modules 디렉토리에 있는 npm 모듈이라던지, .idea 같은 jet brains 사의 개발툴 설정 같은 파일, 디렉토리는 git에 올릴 필요가 없다.
그런 파일들은 git에 올릴때 무시할 수 있는 설정이 있다.
바로 gitignore이다.
gitignore의 기능은 짧게 말하자면 어떤 파일을 git에서 무시할지 규칙을 설정하는 파일이다.
.gitignore에 입력하는 패턴은 아래 규칙을 따른다
# 확장자가 .a인 파일은 무시
*.a
# 윗 라인에서 확장자가 *.a인 파일은 무시햇지만 lib.a는 무시하지 않음
!lib.a
# 현재 디렉토리에 있는 TODO 파일은 무시하고 subdir/TODO처럼 하위 디렉토리에 있는 파일은 무시하지 않음
/TODO
# build/ 디렉토리에 있는 모든 파일은 무시
build/
# doc/notes.txt 파일은 무시하고 doc/server/arch.txt 파일은 무시하지 않음
doc/*.txt
# doc 디렉토리 아래에 모든 .pdf 파일은 무시
doc/**/*.pdf
사실 이 부분이 가장 중요하다.
반복적인 작업은 전 세계인이 똑같이 느끼고 있다. 처음부터 무언가를 만들어 보는 경험도 중요하지만, 우리는 생산성을 위해서는 누군가 잘 만들어 놓은것을 알맞게 사용하는 것도 하나의 실력이 되는 시대에 살고있다.
따라서 우리는 유용한 서비스를 알아보겠다.
https://www.gitignore.io/
들어가보면
깔끔한 페이지를 볼 수 있다.
대체로 내가 설정하는 옵션은 다음과 같다.
위와 같이 설정하고 generate 버튼을 누르면
# Created by https://www.gitignore.io/api/macos,webstorm,node
### macOS ###
*.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
### WebStorm ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
# User-specific stuff:
.idea/workspace.xml
.idea/tasks.xml
# Sensitive or high-churn files:
.idea/dataSources/
.idea/dataSources.ids
.idea/dataSources.xml
.idea/dataSources.local.xml
.idea/sqlDataSources.xml
.idea/dynamic.xml
.idea/uiDesigner.xml
# Gradle:
.idea/gradle.xml
.idea/libraries
# Mongo Explorer plugin:
.idea/mongoSettings.xml
## File-based project format:
*.iws
## Plugin-specific files:
# IntelliJ
/out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
### WebStorm Patch ###
# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
# *.iml
# modules.xml
# .idea/misc.xml
# *.ipr
### Node ###
# Logs
logs
*.log
npm-debug.log*
# 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
# nyc test coverage
.nyc_output
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# node-waf configuration
.lock-wscript
# Compiled binary addons (http://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules
jspm_packages
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# End of https://www.gitignore.io/api/macos,webstorm,node
다음과 같은 text 파일을 얻을 수 있을 수 있다. 프로젝트 폴더에 .gitignore 라는 파일을 만들고 위의 내용을 붙여넣은 다음 git에 커밋하면 완성된 .gitignore를 얻을 수 있다.
무척 편하지 않은가! 위의 파일을 자신의 입맛대로 수정하면 된다.