Search
Duplicate

Intellij .idea와 .gitignore

Created time
2023/03/31 05:23
Last edited time
2024/04/17 06:24
Status
Done
tag

들어가기에 앞서

참고한 자료를 바탕으로 비전문가가 정리한 글이므로 오류가 있을 수 있습니다.
오류에 대한 의견은 언제든지 환영합니다. 댓글로 알려주시면 너무나도 감사드립니다.

.idea가 뭐지?

인텔리제이로 작업하다보면 반드시 생기는 생성 파일이 있는데 바로 .idea라는 폴더입니다.
Jetbrains 개발자는 .idea폴더가 VCS 매핑, 실행 및 디버그 설정파일, 현재 프로젝트를 사용하는 유저의 탐색 기록, 실행한 파일 목록 등의 상세 정보등을 저장하는 폴더라고 합니다.
즉, IDE옵션을 저장하는 폴더이며 각 컴퓨터 환경에 맞게 다르게 옵션이 저장된다고 보면 됩니다. 충돌이 일어나지 않을려면 어차피 .idea폴더는 자동 생성되므로 .gitignore 파일에 .idea폴더를 작성하면 문제는 해결됩니다.
모듈 : 소스코드, 리소스 등을 저장하는 content root와 환경설정이 포함되어 있는 .iml 파일
비슷하게 iml이라는 파일이 모듈마다 존재하는데, 해당 파일은 모듈의 환경 설정을 담은 파일입니다. 이 역시도 각 컴퓨터 환경에 맞게 다르게 저장되므로 .gitignore 파일에 명시해줘야 합니다.
최상단 .gitignore파일에 .idea와 iml을 작성한 모습
# JetBrains 공식 .gitignore 파일 명세 # 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
XML
복사
참고로, 이미 작업을 완료한 후에 .gitignore 파일에 작성하면 계속해서 제외한 파일이 stage상에 올라가는 현상이 발생할 수 있습니다. 그럴 때는 콘솔에 git rm --cached .idea .iml -r 명령어를 입력함으로써 캐쉬를 지워 문제 해결이 가능합니다.

참고