HOWTO · Java

Java용 Gitignore 파일

이 튜토리얼에서는 Java의 gitignore에 대해 설명하고 수동으로 gitignore를 생성할 때 따라야 할 규칙을 설명합니다.

오늘의 튜토리얼에서는 예제를 통해 Java용 .gitignore 파일에 대해 설명하고 .gitignore를 수동으로 생성하는 동안 따라야 할 규칙을 나열합니다.

Java용 .gitignore 파일 개요

Git에서 ignore라는 용어는 Git이 무시해야 하는 파일을 추적하지 않고 이미 추적된 다른 파일에 영향을 주지 않는 데 사용됩니다. 예를 들어 Github와 같은 Git 서비스에 특정 파일을 보내지 않으려는 경우가 있습니다.

무시해야 하는 파일을 지정할 수 있는 .gitignore라는 파일이 있습니다. 일반적으로 이 파일은 기계에서 생성됩니다. .gitignore에서 일반적으로 지정되는 일부 파일은 다음과 같습니다.

  • 캐시에 대한 의존성.
  • 컴파일된 코드.
  • /bin, /out 또는 /target과 같은 출력 디렉토리를 구축합니다.
  • .log, .lock 또는 .tmp와 같은 일부 런타임 파일이 생성되었습니다.
  • Thumbs.db 또는 .DS_Store와 같은 숨겨진 시스템 파일.
  • IDE config 파일.

.gitignore 파일을 수동으로 생성하기 위해 따라야 할 규칙

.gitignore 파일을 수동으로 만들려면 다음 규칙을 따라야 합니다.

  • Git은 # 또는 빈 줄로 시작하는 줄을 무시합니다.
  • 표준 glob 패턴만 따르고 재귀적으로 적용해야 합니다.
  • 재귀를 피하기 위해 /로 패턴을 시작할 수 있습니다.
  • 디렉토리를 지정하기 위해 /로 패턴을 끝낼 수 있습니다.
  • 패턴을 부정하려면 !로 시작해야 합니다.

Java에서 .gitignore 파일의 예

아래는 Intellij IDE 프로젝트를 위해 특별히 생성된 .gitignore의 예입니다. 한 번 보자.

### Intellij ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm, and Rider
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839

# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf

# AWS User-specific
.idea/**/aws.xml

# Generated files
.idea/**/contentModel.xml

# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml

# Gradle
.idea/**/gradle.xml
.idea/**/libraries

# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated and may cause churn.
Uncomment if using
# auto-import.
# .idea/artifacts
# .idea/compiler.xml
# .idea/jarRepositories.xml
# .idea/modules.xml
# .idea/*.iml
# .idea/modules
# *.iml
# *.ipr

# CMake
cmake-build-*/

# Mongo Explorer plugin
.idea/**/mongoSettings.xml

# File-based project format
*.iws

# IntelliJ
out/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Cursive Clojure plugin
.idea/replstate.xml

# SonarLint plugin
.idea/sonarlint/

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties

# Editor-based Rest Client
.idea/httpRequests

# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser

### Intellij Patch ###
# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721

# *.iml
# modules.xml
# .idea/misc.xml
# *.ipr

# Sonarlint plugin
# https://plugins.jetbrains.com/plugin/7973-sonarlint
.idea/**/sonarlint/

# SonarQube Plugin
# https://plugins.jetbrains.com/plugin/7238-sonarqube-community-plugin
.idea/**/sonarIssues.xml

# Markdown Navigator plugin
# https://plugins.jetbrains.com/plugin/7896-markdown-navigator-enhanced
.idea/**/markdown-navigator.xml
.idea/**/markdown-navigator-enh.xml
.idea/**/markdown-navigator/

# Cache file creation bug
# See https://youtrack.jetbrains.com/issue/JBR-2257
.idea/$CACHE_FILE$

# CodeStream plugin
# https://plugins.jetbrains.com/plugin/12206-codestream
.idea/codestream.xml

# Azure Toolkit for IntelliJ plugin
# https://plugins.jetbrains.com/plugin/8053-azure-toolkit-for-intellij
.idea/**/azureSettings.xml

### Java ###
# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
replay_pid*

# End of https://www.toptal.com/developers/gitignore/api/java,intellij

.gitignore 파일은 root 디렉토리에 있어야 합니다.