.İdea klasöründen gitignore ne olacak?


496

Olası Çoğaltma:
Intellij Idea 9/10, kaynak kontrolünde hangi klasörlerin kontrol edilmesi (veya kontrol edilmemesi)?

Web geliştirme için WebStorm'u kullanmaya başladım ve Git depomuza ne ekleyeceğimizden ve neyi hariç tutacağımdan emin değilim. Açıkça, .ideaklasör içindeki bazı dosyaların harici kütüphane ayarları ( jsLibraryMappings.xml) gibi sürüm kontrollü olması gerekir, ancak diğerleri muhtemelen çok sık değişir ve geliştiriciye özgüdür (örn workspace.xml.).

.gitignoreWebStorm / IntelliJ IDEA için önerilen model nedir ?

PS Bu konuda zaten sorular var, ancak genellikle sadece tüm .ideaklasörü dahil etmeye veya tamamen hariç tutmaya odaklanın . Ben .ideaklasör içindeki bazı dosyaları sürüm kontrollü olması gerektiğini düşünüyorum, diğerleri olmamalı ve hangilerini bulmaya çalışıyorum.


8
Bence, IDE dosyalarını versiyonlama sistemine koymak kötü bir fikir. Projeniz belirli IDE'lere daha bağlı olacak ve diğer IDE'lerin kullanıcıları için sorunlar getirebilirsiniz. VCS'de IDE dosyaları olan birkaç projem vardı ve komplikasyonlarla karşılaştım. Şimdi VCS sadece dosyaları maven var ve IDEA proje dosyaları oluşturmak ve her şey yolunda.
chalimartines

11
@ chalimartines Depoda oluşturmak için gereken her şeye sahip olmayı tercih ederim. Maven'i kullanmadığımız ve tek bir IDE kullandığımız için .ideaVCS'de dosya bulundurmak ZORUNLUDUR.
Borek Bernard


Yanıtlar:


430

Resmi destek sayfası sorunuzu cevaplamalıdır.

Böylece, .gitignoreile biten dosyaları .iwsve workspace.xmlve tasks.xmldosyalarını göz ardı edebilirsiniz .


6
Doc "tüm .iml modül dosyalarını paylaşmayı" önerir, bu nedenle aşağıdaki iki satırlı bir .gitignore iyi olmalıdır: .idea / workspace.xml .idea / task.xml
Kevin

9
Doğru sözdizimi*/.idea/workspace.xml */.idea/tasks.xml
vsp

111
Daha iyi bir sözdizimi**/.idea/workspace.xml **/.idea/tasks.xml
Josh Unger

37
neden **/daha iyi */?
Vanquish46

39
@ Vanquish46: Daha spesifik olarak, ** tüm alt klasörler boyunca geri çekilir, böylece ölçütleri karşılayan dosyalar alt klasörlerde de yok sayılır.
Syndog

233

Daha yeni bir alternatif sunmak istiyorum. .gitignoreKullanmakta olabileceğiniz işletim sistemlerine, IDE'lere ve programlama dillerine göre dosya üreten çevrimiçi bir araç vardır .

gitignore.io


EDIT Feragatname: Bu dosyayı kopyalamayın, web sitesi tarafından oluşturulan dosyayı kopyalayın, güncel tutmak için iyi bir iş çıkarırlar. Bu sadece bir örnek.

İçin oluşturulan dosya IntelliJaşağıdakileri içerir

# 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
"Varsayılan olarak, .idea/artık her şeyi yoksaymanızı önerir " - artık değil. Şu anda oluşturulan .gitignore .idea/girdisi yok.
Mikolaj

1
Neden .idea/dictionariesdüpedüz görmezden geldin ?

@Rohmoid Özellikle nedenini önermediğim için nedenini bilmiyorum .gitignore. Sadece bunu yapan aracı gösteriyorum. Tahminimce bu kişisel bir dosya. Sözlüğünüze başkaları için geçerli olmayabilecek şeyler ekleyebilirsiniz. Özellikle LINT mesajlarını temizlerken. Eğer takım arkadaşlarınız arasında hemfikirseniz, onu git repo'nuza ekleyebileceğinize inanıyorum.
GabrielOshiro

2
Özür dilerim, genel 'sen'i kullanmayı amaçladım. Ancak, linting için gereken paralelliklerle, onları bir kaynak repoda bulundurmak tamamen mantıklıdır, çünkü girişler aslında herkes için geçerli olacaktır: sözlükler projenin içeriğine özgüdür! Örneğin, C için bir ayrıştırıcı üzerinde çalışırken , sözlüğü paylaşmadığınız sürece herkes "noktalama işareti" kelimesinin yanlış bir yanlış yazım olarak işaretlenmesi sorunuyla karşılaşır.

@ user824425 IntelliJ , kullanıcı sözlükleri klasörü konusunda dikkatli olduğunu söylüyor (diğer geliştiricilerin aynı ada sahip olması durumunda çakışmalardan kaçınmak için) - bkz. intellij-support.jetbrains.com/hc/en-us/articles/…
nealmcb

28

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

Https://www.gitignore.io/api/jetbrains tarafından oluşturulmuş

### 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
TAMAM! Eğer bir şeyleri incelemek istiyorsanız, [ gitignore.io/ülür(https://www.gitignore.io ) adresine gidebilirsiniz , ne istediğinizi kolayca bulmanız çok yararlı olabilir!
xgqfrms

1
Bu yardımcı olur, ancak sadece dosyaya bağlanırsanız daha iyi olur - çevrimiçi sürümde zaten farklılıklar var.
Frankie Simon

14

Birkaç yıl boyunca .gitignore, bu önerilen yapılandırma ile IntelliJ için belirli bir kullanımın destekçisiydim .

Artık değil.

IntelliJ oldukça sık güncellenir, dahili yapılandırma dosyası özellikleri istediğimden daha sık değişir ve JetBrains amiral gemisi, maven / gradle / etc build dosyalarına göre kendini otomatik olarak yapılandırmada mükemmeldir.

Benim önerim, tüm editör yapılandırma dosyalarını projenin dışında bırakmak ve kullanıcıların editörleri beğenisine göre yapılandırmasını sağlamaktır. Kod şekillendirme gibi şeyler derleme düzeyinde yapılandırılabilir ve yapılandırılmalıdır; kullanarak söylemek Google Code Stil veya checkstyle Maven / Gradle / sbt / etc doğrudan.

Bu tutarlılığı sağlar ve editör dosyalarını, kişisel görüşüme göre olması gereken yerde olan kaynak kodun dışında bırakır.


1
Bu tam olarak benim açımdan, .gitignorecevabımda açıkladığım gibi sadece JB için uğraşmamalıyız.
nehem

7

Jetbrains, programları için aşağıdaki .gitignore'u sağlar

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

Sadece ekleyerek hepsini göz ardı edebilirsiniz .idea/*için .gitignoredosyanın.


-2

Uygun .gitignoredosyayı korumak yardımcı olurken , bu alternatif yaklaşımın daha temiz ve kullanımı daha kolay olduğunu gördüm.

  • Kukla klasör my_projectve içinde git clone my_real_projectgerçek proje deposunu oluşturun.
  • Şimdi projeyi IDE'de (Intellij / Pycharm) açarken klasörü açın my_projectve my_project/my_real_projectVCS kökü olarak işaretleyin .
  • Görebilirsin my_project/.ideaGit deponuzu kirletmeyeceğinizi , çünkü mutlu bir şekilde istediğiniz repo dışında yaşıyor. Bu şekilde .gitignoredosyalarınız da temiz kalır.

Bu yaklaşım aşağıdaki nedenlerle daha iyi sonuç verir.

1 - .gitignore dosya temiz kalır ve JetBrains ürünleriyle ilgili satırlar eklememiz gerekmez, bu dosya ikili dosyalar ve kütüphaneler ve otojen içerikleri için daha iyi kullanılır.

2 - Intellij, projelerini güncellemeye devam ediyor ve içindeki dosyalar .ideaJB'nin her önemli sürümünü değiştirmeye devam ediyor. Bunun anlamı,.gitignore ideal bir zaman kullanımı olmayan buna göre .

3 - Intellij burada kusurlu bir yapıya sahip, çoğu editör Atom, VS Code, Eclipse ... kimse IDE içeriğini proje kökünde saklamıyor. JB de bir istisna olmamalı. Bu dosyaları proje kökünün dışında takip etmek Jetbrains'in öncüsüdür. VCS kökünü kirletmekten kaçınmaları gerekir. Bu yaklaşım tam da bunu yapar. .ideaKlasör dışında tutulurPROJECT_ROOT

Bu yardımcı olur umarım.


1
Bu cevap tamamen yanıltıcı. /.idea.gitignore iyi çalışıyor; Genellikle sorun bu komutla çözülecektir:git rm --cached -r .idea
HosseyNJF

/.ideaçalışmıyor,
JB'den

-4
  • .İdea klasörünü kaldır

    $rm -R .idea/
    
  • Kural ekle

    $echo ".idea/*" >> .gitignore
    
  • .Gitignore dosyasını kaydet

    $git commit -am "remove .idea"
    
  • Bir sonraki taahhüt tamam olacak


7
fikir klasörünü görmezden gelmek, herkes tarafından kullanılmadığından iyidir ve kodunuzun bir parçası değildir - örneğin (üretimde) bunlara ihtiyacınız yoktur.
Tom Andersen

1
görmezden gelmek iyidir, ancak kaldırmak iyi bir fikir değildir. Yerel çalışma alanınız için bilgiler içerir.
Foo

Bunun aşağı oy kullanmasına şaşırdım. Dikişler burada en iyi cevap olacak!
Hugo Rafael Azevedo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.