.idea 폴더에서 무엇을 gitignore?


495

가능한 중복 :
Intellij Idea 9/10, 소스 제어를 체크인하거나 체크인하지 않을 폴더는 무엇입니까?

웹 개발에 WebStorm을 사용하기 시작했으며 Git 리포지토리에서 무엇을 추가하고 무엇을 제외할지 확실하지 않습니다. 분명히 .idea폴더 안의 일부 파일 은 외부 라이브러리 설정 ( jsLibraryMappings.xml) 과 같은 버전으로 제어되도록되어 있지만 다른 파일은 매우 자주 변경되며 개발자마다 다릅니다 (예 :) workspace.xml.

.gitignoreWebStorm / IntelliJ IDEA에 권장되는 패턴 은 무엇입니까 ?

추신 : 이것에 대해 이미 질문이 있지만 일반적으로 전체 .idea폴더 를 포함 할지 또는 완전히 제외할지에 대해서만 초점을 맞 춥니 다. .idea폴더 내부의 일부 파일 은 버전 제어가 필요하지만 다른 파일은 그렇지 않아야 한다고 생각하며 어떤 파일 을 찾으려고합니다.


8
IDE 파일을 버전 관리 시스템에 넣는 것은 나쁜 생각이라고 생각합니다. 프로젝트는 특정 IDE에 더 묶여 있으며 다른 IDE 사용자에게 문제가 발생할 수 있습니다. VCS에 IDE 파일이 포함 된 몇 가지 프로젝트가 있었고 합병증에 직면했습니다. 이제 VCS에는 maven 파일이 있고 IDEA는 프로젝트 파일을 생성하며 모든 것이 정상입니다.
chalimartines

11
@ chalimartines 나는 저장소에 빌드하는 데 필요한 모든 것을 가지고 싶습니다. Maven을 사용하지 않고 단일 IDE를 사용하기 때문에 .ideaVCS에 파일을 두지 않는 것이 복잡 합니다.
보렉 버나드


답변:


430

공식 지원 페이지 가 귀하의 질문에 답변해야합니다.

당신의 그래서 .gitignore당신이로 끝나는 파일을 무시할 수 .iwsworkspace.xmltasks.xml파일을.


6
다음 두 줄이있는 .gitignore가 잘되어야하므로 문서는 "주 모든 .iml 모듈 파일"을 권장합니다 .idea / workspace.xml .idea / tasks.xml
케빈 Ortman

9
올바른 구문은 다음과 같습니다*/.idea/workspace.xml */.idea/tasks.xml
vsp

111
더 나은 구문은**/.idea/workspace.xml **/.idea/tasks.xml
조쉬 엉거

37
**/보다 낫 */습니까?
Vanquish46

39
@ Vanquish46 :보다 구체적으로 **는 모든 하위 폴더를 통해 반복되므로 기준을 충족하는 파일은 하위 폴더에서도 무시됩니다.
Syndog

233

더 최근의 대안을 제시하고 싶습니다. 사용 .gitignore중인 운영 체제, IDE 및 프로그래밍 언어를 기반으로 파일 을 생성하는 온라인 도구 가 있습니다.

gitignore.io


편집 면책 조항 : 마 대신, 그들은 그것을 업데이 트 유지에 좋은 일을 할 웹 사이트에 의해 생성 된 파일을 복사,이 파일을 복사 할 수 없습니다. 이것은 단지 예일뿐입니다.

에 생성 된 파일 IntelliJ은 다음 을 포함합니다.

# Created by https://www.gitignore.io/api/intellij

### Intellij ###
# 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
.idea/dictionaries
.idea/vcs.xml
.idea/jsLibraryMappings.xml

# Sensitive or high-churn files:
.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

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

# *.iml
# modules.xml

1
"기본적으로 그들은 .idea/더 이상 은 " 에서 모든 것을 무시할 것을 제안합니다 . " 현재 생성 된 .gitignore에 .idea/항목 이 없습니다 .
Mikolaj 2016 년

1
.idea/dictionaries완전히 무시 하겠습니까?

@Rhymoid 나는 왜 제안하는 사람이 아니기 때문에 왜 구체적으로 모르겠습니다 .gitignore. 나는 그것을하는 도구를 보여주고 있습니다. 내 생각에 그것은 개인 파일입니다. 사전에 다른 사람에게는 유효하지 않은 물건을 추가 할 수 있습니다. 특히 LINT 메시지를 정리할 때. 나는 당신이 당신의 팀원들 사이에 동의한다면 그것을 git repo에 추가 할 수 있다고 생각합니다.
GabrielOshiro

2
나는 일반적인 '당신'을 사용하려고했습니다. 죄송합니다. 그러나 병행하여 보푸라기 작업을 수행하면 항목이 실제로 모든 사람에게 적용되므로 소스 리포지토리에 저장하는 것이 합리적입니다. 사전은 프로젝트의 내용에 따라 다릅니다! C에 대한 파서에서 작업 할 때 예를 들어, 모든 사람이 당신이 사전을 공유하지 않는 한 ... 단어 "punctuator는"거짓 맞춤법로 표시되는 문제로 실행됩니다.

@ user824425 인 IntelliJ는 말한다 (다른 개발자가 동일한 이름을 가진 경우 피하기 갈등) 폴더 사용자 사전에주의 - 볼 intellij-support.jetbrains.com/hc/en-us/articles/...
nealmcb

28

https://www.gitignore.io/api/jetbrains

https://www.gitignore.io/api/jetbrains 제작

### JetBrains ###
# 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
.idea/dictionaries
.idea/vcs.xml
.idea/jsLibraryMappings.xml

# Sensitive or high-churn files:
.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

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

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

2
확인! 무언가를 먹어 치우고 싶다면 [ gitignore.io/](https://www.gitignore.io ) 로 가면 원하는 것을 쉽게 찾을 수 있습니다.
xgqfrms

1
이것은 유용하지만 파일에 링크 한 경우 더 좋습니다. 온라인 버전에는 이미 차이가 있습니다.
Frankie Simon

14

몇 년 동안 나는 이 제안 된 구성으로.gitignore IntelliJ 전용 을 사용하는 것을지지했습니다 .

더 이상은 아닙니다.

IntelliJ는 매우 자주 업데이트되며 내부 구성 파일 사양이 원하는 것보다 자주 변경되며 JetBrains 플래그쉽은 maven / gradle / etc 빌드 파일을 기반으로 자동 구성하는 데 탁월합니다.

그래서 내 제안은 모든 편집기 구성 파일을 프로젝트에서 제외 하고 사용자가 원하는대로 편집기를 구성하도록하는 것입니다. 코드 스타일과 같은 것은 빌드 레벨에서 구성 할 수 있으며 구성해야합니다. Maven / Gradle / sbt / etc에서 직접 Google 코드 스타일 또는 CheckStyle을 사용한다고 말합니다 .

이것은 일관성을 보장하고 편집기 파일을 소스 코드에서 제외시킵니다.


1
그것이 바로 내 요점 .gitignore입니다. 대답에서 설명한 것처럼 JB 에 대해서만 번거롭게해서는 안됩니다 .
nehem

7

Jetbrains는 다음과 같은 .gitignore를 제공합니다.

https://github.com/github/gitignore/blob/master/Global/JetBrains.gitignore

# 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
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf

# 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/modules.xml
# .idea/*.iml
# .idea/modules

# 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

# 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

-1

파일 에 추가 .idea/*하여 모든 것을 무시할 수 있습니다 .gitignore.


-2

적절한 .gitignore파일을 유지하는 것이 도움이 되지만 이 대체 방법이 더 깔끔하고 사용하기 쉽다는 것을 알았습니다.

  • 더미 폴더 my_project와 그 안에 git clone my_real_project실제 프로젝트 저장소를 만듭니다.
  • 이제 IDE (Intellij / Pycharm)에서 프로젝트를 여는 동안 폴더를 열고 VCS 루트로 my_project표시 my_project/my_real_project하십시오.
  • 당신이 볼 수있는 my_project/.idea이 행복하게 당신이 원하는되는 자식의 repo 밖에서 살고 때문에 자식의 repo을 오염하지 않을 것입니다. 이렇게하면 .gitignore파일도 깨끗하게 유지됩니다.

이 방법은 다음과 같은 이유로 더 잘 작동합니다.

1- .gitignore파일이 깨끗하게 유지되며 JetBrains 제품과 관련된 줄을 삽입 할 필요가 없습니다.이 파일은 바이너리 및 라이브러리 및 자동 생성 내용에 더 적합합니다.

2-Intellij는 프로젝트를 계속 업데이트하고 내부의 파일 .idea은 JB의 모든 중요한 릴리스를 계속 변경합니다. 이것이 의미 .gitignore하는 바는 시간을 이상적으로 사용하지 않기 때문에 계속 업데이트해야한다는 것 입니다.

3-Intellij에는 결함 패턴이 있습니다. 대부분의 편집자 인 Atom, VS Code, Eclipse ... 아무도 IDE 루트 내용을 프로젝트 루트에 저장하지 않습니다. JB도 예외가되어서는 안됩니다. 이러한 파일을 프로젝트 루트 외부에서 추적하는 것은 Jetbrains의 책임입니다. VCS 루트를 오염시키지 않아야합니다. 이 방법은 바로 그렇게합니다. .idea폴더는 외부 유지PROJECT_ROOT

도움이 되었기를 바랍니다.


1
이 답변은 완전히 오도됩니다. /.idea.gitignore에서 잘 작동합니다. 일반적으로 문제는 다음 명령으로 해결됩니다.git rm --cached -r .idea
HosseyNJF

/.idea작동하지 않습니다. JB의 다른 답변과 공식 지침도 확인할 수 있습니다
nehem

-4
  • .idea 폴더 제거

    $rm -R .idea/
    
  • 규칙 추가

    $echo ".idea/*" >> .gitignore
    
  • .gitignore 파일 커밋

    $git commit -am "remove .idea"
    
  • 다음 커밋은 괜찮을 것입니다


7
아이디어 폴더를 무시하는 것은 모든 사람들이 아이디어 폴더를 사용하는 것이 아니므로 코드의 일부가 아닙니다. 예를 들어 프로덕션 환경에서 필요하지 않습니다.
Tom Andersen

1
무시하는 것은 좋지만 제거하는 것은 좋은 생각이 아닙니다. 로컬 작업 공간에 대한 정보가 들어 있습니다.
foo

나는 이것이 투표 투표에 놀랐다. 여기에 최고의 답변이 될 솔기!
Hugo Rafael Azevedo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.