Git이 Rubymine에 의해 생성 된 .idea 파일을 무시하게하는 방법


185

저는 Rails 프로젝트에 Rubymine을 사용합니다. 루비 마인은 종종 .idea/*관심없는 파일을 변경 합니다. 그러나 새 지점을 확인하지 .idea/못하게하고 동료 와 다른 버전을 만듭니다 .

우리는 이미 추가 .idea/.gitignore, 그러나에 변경 내용 추적을 유지합니다 .idea. 올바른 방법으로 어떻게해야합니까?

아래는 내가받은 일반적인 오류 메시지 중 하나입니다.

error: Your local changes to the following files would be overwritten by checkout:
    .idea/workspace.xml

9
아마 당신은 이미 약속했다. 당신은 rm을 자식해야합니다; 무시하려면 추가하십시오.
Kaan Yy

답변:


257

그냥 .idea/나를 위해 잘 작동


5
안녕! 어떻게해야하는지 더 자세히 알려고 싶습니까? :(
YoniGeek

힘내는 그것과 조금 다르게 작동합니다. 자세한 내용은 git man 페이지 를 참조하십시오.
Steve Benner

4
@BradBird 방금 시도했습니다-하위 폴더에서도 작동합니다. 또한 시도해 볼 수도 있습니다**/.idea/
the_joric

22
문제의 일부는 이미 물건을 준비한 경우 .gitignore가 도움이되지 않습니다.
Dan Rosenstark 님의

12
그러나 파일 / 폴더를 추가 / 체크인 한 후 무시하려면 "git rm -r --cached web / uploads"를 사용하여 파일 / 폴더를 제거해야합니다 (이 예에서는 "web / uploads"폴더를 .gigignore에 추가했습니다. 그들이 체크인 한 후 파일) source : help.github.com/articles/ignoring-files
Dung

311

git rm -r --cached .idea터미널에서 시도 하십시오. 변경 내용 추적을 비활성화합니다.


2
고마워요! 그러나 완전히 빈 저장소를 체크 아웃 한 후에 왜 캐시에 있습니까?
Budi

1
대단히 감사합니다. 이것을 사용하여 파일을 제거한 다음 .idea를 gitignore에 추가하면 훌륭하게 작동했습니다. 정말 고맙습니다!
Tim R

.idea 폴더가 이미 추적중인 경우에는 실제로 작동하지 않습니다.
ACV

따라서 폴더가 이미 Git에서 추적되고 있다면 .idea /를 .gitignore에 추가해도 Git이 추적하는 것을 막지 않습니다. 먼저 "git rm -r --cached.idea"를 수행 한 다음 .idea /를 .gitignore에 추가해야합니다. 이것은 나에게 좋을 것입니다.
Sam003

41

JetBrains는 "다른 개발자와 IDE 프로젝트 파일을 공유하기로 결정한 경우 ..."를 권장 하며 다음 세 파일을 제외한 모든 .idea/*파일을 추적 합니다 .

  • workspace.xml
  • usage.statistics.xml
  • tasks.xml

따라서 그들의 조언을 따르기 위해,이 3 개의 파일을 .gitignore에 추가 할 것입니다.


출처:

IDE 프로젝트 파일을 다른 개발자와 공유하기로 결정한 경우 다음 지침을 따르십시오.
...
공유해야 할 내용은 다음과 같습니다.

  • 사용자 특정 설정을 저장 하는 workspace.xml , usage.statistics.xmltasks.xml 파일을 제외한 프로젝트 루트의 .idea 디렉토리에있는 모든 파일
  • ...

버전 관리 시스템 ( archive ) 에서 프로젝트를 관리하는 방법

이 페이지에는 다른 특정 jetbrains IDE 및 빌드에 대해 다른 파일을 기각 할 수있는 추가 정보가 있습니다.


10
이 답변 [정확도에 대한 +1]에 동의하지만 IDE에 엄격하지 않은 팀은 폴더를 전혀 체크인하지 않으면 벗어날 수 있다고 생각.idea 합니다. 이해가되지 않는 이유로 항상 갈등이 있습니다.
JaKXz

6
IDE 특정 파일을 커밋하는 것은 좋지 않습니다. 한 가지 이유는 다른 개발자가 다른 도구를 사용할 수 있기 때문입니다. 다른 하나는 해당 파일에 항상 충돌하는 사용자 특정 구성이 포함될 수 있다는 것입니다.
Jordan Silva

2
이 권장 사항은 나쁜 습관입니다. 프로젝트에서 사용하는 것이 절대 경로와 같은 사용자 특정 정보가 포함 된 파일을 버전 화하는 가장 좋은 방법 .idea입니다.이 레코드를 따르기 전에 폴더 내부를 살펴보십시오 .
JBE

1
맹목적으로 IDE 파일을 커밋하는 것은 항상 나쁜 아이디어라는 데 동의하지만, 맹목적으로 커밋하는 것은 나쁜 아이디어이기 때문입니다. 경우에 따라 IDE 파일 공유가 제대로 작동 할 수 있습니다. 컨테이너 오케스트레이션 파일을 공유하는 것은 개념적으로 응용 프로그램을 실행하는 한 가지 방법이라는 점에서 비슷합니다. IDE 파일이 프로젝트를 개발하는 한 가지 방법 인 것처럼 단위 테스트 또는 코드 적용 명령을 실행하는 방법과 같은 유용한 정의를 포함하여 특정 IDE를 깔끔하게 정리할 수 있습니다. .idea적어도 PyCharm 의 대부분의 파일은 공유되도록 설계되었습니다.
Samuel Harmer

26

.idea/*모든 .idea 파일, 디렉토리 및 하위 리소스를 추적하지 못하도록 제외 목록에 추가하십시오 .


24

파일이 이미 Git에 의해 추적되고 있다면 파일을 .gitignore에 추가해도 Git이 파일을 추적하는 것을 막을 수는 없습니다. 먼저 문제가되는 파일을 git rm으로 실행 한 다음 .gitignore에 추가해야합니다.

.idea / 추가하면 작동합니다


더 포괄적 인 답변이어야합니다!
Sam003

21

git rm -r --cached .idea터미널에서 사용 하면 나에게 큰 도움이되었습니다. 변경 추적을 비활성화하고 rubymine 폴더 (idea /) 아래에 여러 파일을 설정 해제하여 git에 추가하고 커밋 할 수 있으므로 비교를 제거하고 gitignore 설정 .idea/을 작동시킬 수 있습니다.


13

터미널에서 PHP Storm을 닫고 프로젝트 폴더 유형으로 이동하십시오.

git rm -rf .idea; git commit -m "delete .idea"; git push;

그런 다음 프로젝트 폴더로 이동하여 폴더를 삭제하십시오.

sudo rm -r .idea/

PhpStorm을 시작하면 완료


12

rubymine gui에는 무시 목록 (설정 / 버전 제어)이 있습니다. 어쩌면 거기에서 비활성화하십시오. 나는 그들의 지지자들로부터 힌트를 얻었다.

여기에 이미지 설명을 입력하십시오



8

오래 걸리지 않았지만 Rubymine으로 전환했지만 Rubymine의 .idea 파일을 무시하는 것이 git에 커밋되는 것이 어렵다는 것을 알았습니다.

내가 고 쳤던 방법은 다음과 같습니다.

준비 / 커밋을 전혀하지 않았거나 루비 광산에서 새 프로젝트를 시작한 경우, 간단히

옵션 1

일반적으로 리포지토리의 루트에있는 .gitignore 파일에 아래 행을 추가하십시오.

# Ignore .idea files
.idea/

이렇게하면 모든 .idea 파일이 git에서 추적되지 않도록 무시하지만 여전히 로컬로 프로젝트 폴더에 남아 있습니다.

옵션 2

그러나 일부 준비 / 커밋을 수행했거나 Ruby 광산에서 기존 프로젝트를 방금 연 경우 간단히 수행하십시오.

터미널 / 명령 줄에서 코드를 실행하십시오.

git rm -r --cached .idea

이것은 이미 추적 된 .idea 파일을 git에서 삭제합니다.

다음으로, 일반적으로 저장소의 루트에있는 .gitignore 파일에 .idea /를 포함하십시오.

# Ignore .idea files
.idea/

이렇게하면 모든 .idea 파일이 git에서 추적되지 않도록 무시하지만 여전히 로컬로 프로젝트 폴더에 남아 있습니다.

옵션 3

그러나 일부 준비 / 커밋을 수행했거나 Ruby 광산에서 기존 프로젝트를 연 상태에서 .idea 파일을 로컬 및 git에서 완전히 삭제하려면 간단히 수행하십시오.

터미널 / 명령 줄에서 코드를 실행하십시오.

git rm -r --cached .idea

이것은 이미 추적 된 .idea 파일을 git에서 삭제합니다.

터미널 / 명령 줄에서 코드를 실행하십시오.

rm -r .idea

폴더를 포함하여 모든 .idea 파일이 로컬로 삭제됩니다.

다음으로, 일반적으로 저장소의 루트에있는 .gitignore 파일에 .idea /를 포함하십시오.

# Ignore .idea files
.idea/

이렇게하면 모든 .idea 파일이 git에 의해 추적되지 않고 프로젝트 폴더에서 로컬로 삭제됩니다.

그게 다야

이게 도움이 되길 바란다


4

저에게는 ".idea"를 사용하여 커밋 파일 .gitignore보다 .idea 폴더를 제거하고 IDE를 다시 사용하는 솔루션이 하나뿐이었습니다.


안녕! 나는 이것을 시도했다! 그러나 IDE가 내 파일을 다시로드 할 수 없었습니다. 어떻게합니까? 감사!
YoniGeek

4

나는 git man 페이지 를 읽고 어떻게 무시 하는지를 완전히 이해하는 것이 좋으며, 앞으로는 나에게 감사 할 것이다.)

문제와 관련하여 :

Two consecutive asterisks ("**") in patterns matched against full pathname may have special meaning:

A leading "**" followed by a slash means match in all directories. For example, "**/foo" matches file or directory "foo" anywhere, the same     as pattern "foo". "**/foo/bar" matches file or directory "bar" anywhere that is directly under directory "foo".

A trailing "/**" matches everything inside. For example, "abc/**" matches all files inside directory "abc", relative to the location of the .    gitignore file, with infinite depth.

A slash followed by two consecutive asterisks then a slash matches zero or more directories. For example, "a/**/b" matches "a/b", "a/x/b",     "a/x/y/b" and so on.

Other consecutive asterisks are considered invalid.

4

고급 gitignore 파일 생성을 위해 gitignore 를 사용할 수 있습니다 . 빠르고 쉽고 첨단 태그가 자동으로 생성됩니다.

대부분의 jetbrains 소프트웨어 ( intelij , phpstorm ...) jetbrains .gitignore 파일 에이 링크를 사용하십시오.

[편집하다]

아래는 Jetbrains Softwares에 대해 생성 된 gitignore 파일입니다. 이는 Jetbrains 소프트웨어가 프로젝트를 관리하는 데 사용하는 민감한 정보 (암호, 키 저장소, db 암호 ...)를 공유하지 못하게합니다.

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

### Intellij ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm

*.iml

## Directory-based project format:
.idea/
# if you remove the above rule, at least ignore the following:

# User-specific stuff:
# .idea/workspace.xml
# .idea/tasks.xml
# .idea/dictionaries

# Sensitive or high-churn files:
# .idea/dataSources.ids
# .idea/dataSources.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:
*.ipr
*.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

생성 된 코드도 잘 주석 처리되어 있습니다. 그것이 도움이되기를 바랍니다 :)


이 링크가 질문에 대답 할 수 있지만 여기에 답변의 필수 부분을 포함시키고 참조 할 수있는 링크를 제공하는 것이 좋습니다. 링크 된 페이지가 변경되면 링크 전용 답변이 유효하지 않을 수 있습니다.
Himanshu

@Himanshu 링크는 gitignore 파일의 검색 엔진으로 연결됩니다. 게시물에서 게시물로 무엇을 복사해야한다고 제안하십니까?
Dan D.

4

그 파일을 내 파일에 추가하려고했습니다. .gitignore 쓸모가 없었습니다 ...

그럼에도 Petr Syrov가 말했듯이 git rm -r --cached .idea터미널에 사용할 수 있으며 해당 파일은 더 이상 문제가되지 않습니다!



2

무엇에 대해 .idea/*? 테스트하지는 않았지만해야합니다.


1

.ignore 플러그인 사용 : https://plugins.jetbrains.com/plugin/7495--ignore

그것은 당신을 위해 많은 경로 / 패턴을 자동으로 관리하고 많은 유용한 추가 기능을 가지고 있습니다. 다음과 호환됩니다.

  • IntelliJ 아이디어
  • PhpStorm
  • WebStorm
  • 파이 참
  • 루비 마인
  • 앱 코드
  • 클리 온
  • 골 랜드
  • DataGrip
  • 타는 사람
  • MPS
  • 안드로이드 스튜디오

0

이미 초기 커밋을하고 git에 .idea 파일이 새 파일로 표시되면 먼저 파일을 제거한 다음 커밋해야합니다. 다음 단계는 트릭을 수행합니다

 1. git rm --cached -r .idea/
 2. Add .idea/ to **.git/info/exclude** or **.gitignore**
 3. git commit -m 'ignore .idea/ files'

https://devconnected.com/how-to-clear-git-cache/ 이 링크에 자세히 설명되어 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.