Git'in Rubymine tarafından oluşturulan .idea dosyalarını yoksayması


185

Raylar için Rubymine projelerini kullanıyorum. Çok sık, Rubymine umursamadığım .idea/*dosyalarda değişiklikler yapar . Ama sürekli yeni şubelere bakmamı engelliyor ve benim versiyonumu .idea/iş arkadaşlarımdan farklı kılıyor .

Biz zaten eklendi .idea/için .gitignore, ancak izleme değişiklikleri tutar .idea. Bunu nasıl doğru şekilde yapmalıyım?

Aşağıda aldığım tipik hata mesajlarından biri:

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

9
belki çoktan taahhüt etmişsinizdir; git rm'ye ihtiyacınız var; yoksaymak için ekleyin.
Kaan Yy

Yanıtlar:


258

sadece .idea/benim için iyi çalışıyor


5
Merhaba! bize bunu nasıl yaptığını anlatmak ister misin ... benim için çalışmıyor mu? :(
YoniGeek

Git bundan biraz farklı çalışıyor. Daha fazla bilgi için git man sayfasına bakınız .
Steve Benner

4
@BradBird Ben sadece denedim - alt klasörler için de çalışır. Ayrıca denemek isteyebilirsiniz**/.idea/
the_joric

22
Sorunun bir kısmı, zaten eşyalarınızı hazırladıysanız, .gitignore yardımcı olmayacaktır.
Dan Rosenstark

12
Ancak, dosyaları ekledikten / teslim ettikten sonra dosyaları / klasörleri yoksaymak istiyorsanız, "git rm -r --cached web / uploads" ile kaldırmanız gerekir (bu örnekte .gigignore dosyasına "web / uploads" klasörü ekledim teslim edildikten sonra dosya) Kaynak: help.github.com/articles/ignoring-files
Gübre

311

git rm -r --cached .ideaTerminalinizde deneyin . Değişiklik izlemeyi devre dışı bırakır.


2
Çok teşekkürler! Ama neden tamamen boş bir depoyu kontrol ettikten sonra önbellekte?
Budi

1
Teşekkür ederim, son derece yararlı. Dosyaları kaldırmak için bunu kullandıktan sonra gitignore'a .idea ekledi ve harika çalıştı. Çok teşekkür ederim!
Tim R

.İdea klasörü zaten izleme altındayken bu gerçekten işe yaramaz
ACV

Bu nedenle klasör Git'te zaten izleniyorsa, .idea / 'yı .gitignore eklemek Git'in izlemesini durdurmaz. Önce "git rm -r --cached .idea" yapmanız, ardından .gitignore'unuza .idea / eklemeniz gerekir. Bu benim için harika olacak.
Sam003

41

JetBrains'in "IDE proje dosyalarını diğer geliştiricilerle paylaşmaya karar verirseniz ..." önerdiğini ve aşağıdaki üç dosya dışındaki tüm .idea/*dosyaları izlediğini unutmayın :

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

Onların tavsiyelerini takip etmek için, bu 3 dosyayı .gitignore'nuza eklersiniz.


Kaynak:

IDE proje dosyalarını diğer geliştiricilerle paylaşmaya karar verirseniz, aşağıdaki yönergeleri izleyin:
...
İşte paylaşmanız gerekenler:

  • Tüm proje kök .idea dizin altında dosyaları hariç workspace.xml , usage.statistics.xml ve tasks.xml dosyaları depolamak kullanıcı özel ayarlar
  • ...

Sürüm Kontrol Sistemleri ( arşiv ) altında projeleri yönetme

Bu sayfada, farklı özel jetbra IDE'leri ve yapıları için hangi dosyaların gitignore olacağına dair bazı ek notlar var.


10
Bu yanıta katılıyorum [doğruluk için + 1'ledi], bence IDE'lerle sıkı olmayan takımlar ve .ideaklasörleri hiç kontrol etmekten kurtulabilirler ... Zaten bana hiç mantıklı gelmedi, dosyalar hiç mantıklı olmayan sebeplerle her zaman çatışma vardır.
JaKXz

6
IDE'ye özgü dosyaları yürütmek kötü bir uygulamadır. Bunun bir nedeni, farklı geliştiricilerin farklı araçlar kullanabilmeleridir. Bir diğeri, bu dosyaların her zaman çakışacak kullanıcıya özel yapılandırma içerebilmesidir.
Jordan Silva

2
Bu öneri kötü bir uygulamadır. Bir projede kullanmak, mutlak yol gibi kullanıcıya özel bilgiler içeren dosyaları sürümlendirmenin en iyi yoludur ... .ideaBu kayıt işlemini izlemeden önce klasörünüzün içine bakın .
JBE

1
Körü körüne IDE dosyalarını yürütmenin her zaman kötü bir fikir olduğunu kabul ederken, körü körüne bir şey yapmak kötü bir fikirdir. Bazı durumlarda IDE dosyalarının paylaşılması işe yarayabilir. Kavramsal olarak, kapsayıcı düzenleme dosyalarını, uygulamaları çalıştırmanın bir yolu olarak paylaşmaya benzer. Tıpkı IDE dosyaları projeyi geliştirmenin bir yoludur ve belirli bir IDE için düzgün bir şekilde paketlenmiş birim testlerinin veya kod kapsamı komutlarının nasıl çalıştırılacağı gibi yararlı tanımlar içerebilir. .ideaDosyaların çoğu (en azından PyCharm'da) paylaşılmak üzere tasarlanmıştır.
Samuel Harmer

26

.idea/*Tüm .idea dosyalarının, dizinlerin ve alt kaynakların izlenmesini önlemek için hariç tutma listenize ekleyin .


24

bir dosya Git tarafından zaten izleniyorsa, dosyayı .gitignore'a eklemek Git'in izlemesini durdurmaz. Önce sorunlu dosyaları git rm yapmanız, sonra .gitignore'unuza eklemeniz gerekir.

.İdea ekleyerek / çalışmalıdır


Bu daha kapsamlı bir cevap olmalı!
Sam003

21

git rm -r --cached .ideasenin terminalde kullanmak benim için harika çalıştı. Değişiklik izlemeyi devre dışı bırakır ve git'e ekleyebileceğim ve taahhüt edebileceğim rubimin klasörü (fikir /) altında bir dizi dosyanın ayarını kaldırır, böylece karşılaştırmayı kaldırır ve gitignore ayarının .idea/çalışmasına izin verir .


13

Terminalde PHP Storm'u kapatın Proje klasörü türüne gidin

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

Ardından proje klasörüne gidin ve .idea klasörünü silin

sudo rm -r .idea/

PhpStorm'u başlatın ve işiniz bitti


12

Rubin gui'de bir yoksay listesi vardır (ayarlar / sürüm kontrolü). Belki orada devre dışı bırakmayı deneyin. Destek adamlarından ipucu aldım.

resim açıklamasını buraya girin



8

Rubymine'e geçmem çok uzun olmasa da, Rubymine'nin .idea dosyalarını gitmeye adamış gibi görmezden gelmeyi zor buldum.

İşte böyle düzelttim

Hiç sahneleme / taahhütte bulunmadıysanız veya Ruby madeninde yeni bir proje başlattıysanız, bunu yapın

seçenek 1

Aşağıdaki satırı, genellikle deponuzun kök dizinine yerleştirilen .gitignore dosyasına ekleyin.

# Ignore .idea files
.idea/

Bu, tüm .idea dosyalarının git tarafından izlenmemesini sağlar, ancak yine de proje klasörünüzde yerel olarak kalır.

seçenek 2

Bununla birlikte, bir aşama / taahhüt gerçekleştirdiyseniz veya Ruby madeninde mevcut bir projeyi açtıysanız, bunu yapın

Terminal / komut satırınızdaki kodu çalıştırın

git rm -r --cached .idea

Bu, git'te zaten izlenen .idea dosyalarını siler

Ardından, genellikle deponuzun kök dizinine yerleştirilen .gitea / dosyasını .gitignore dosyasına ekleyin.

# Ignore .idea files
.idea/

Bu, tüm .idea dosyalarının git tarafından izlenmemesini sağlar, ancak yine de proje klasörünüzde yerel olarak kalır.

Seçenek 3

Bununla birlikte, bir aşamalandırma / taahhüt gerçekleştirdiyseniz veya Ruby madeninde mevcut bir projeyi açtıysanız ve .idea dosyalarını yerel olarak ve git'te tamamen silmek istiyorsanız, bunu yapın

Terminal / komut satırınızdaki kodu çalıştırın

git rm -r --cached .idea

Bu, git'te zaten izlenen .idea dosyalarını siler

Terminal / komut satırınızdaki kodu çalıştırın

rm -r .idea

Bu, yerel olarak klasör de dahil olmak üzere tüm .idea dosyalarını siler

Ardından, genellikle deponuzun kök dizinine yerleştirilen .gitea / dosyasını .gitignore dosyasına ekleyin.

# Ignore .idea files
.idea/

Bu, tüm .idea dosyalarının git tarafından izlenmemesini ve yerel olarak proje klasörünüzden silinmesini sağlar.

Bu kadar

Umarım bu yardımcı olur


4

Benim için .idea klasörünü kaldırmak için ".idea" ile .gitignore dosyasını ve IDE'yi tekrar kullanmak yerine tek bir çözüm vardı


Merhaba! Bunu denedim! ama IDE dosyalarımı tekrar yükleyemedi ... bunu nasıl yaptın? Teşekkürler!
YoniGeek

4

İşi nasıl görmezden geldiğini tam olarak anlamak için git man sayfasını okumanızı öneririm ve gelecekte bana teşekkür edeceksiniz;)

Sorununuzla ilgili:

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'u gelişmiş gitignore dosya üretimi için kullanabilirsiniz . Hızlı, kolay ve son teknoloji etiketler sizin için otomatik olarak oluşturulur.

Jetbrains yazılımlarının çoğu ( intelij , phpstorm ...) jetbrains .gitignore dosyası için bu bağlantıyı kullanın

[Düzenle]

Aşağıda Jetbrains Yazılımları için oluşturulan gitignore dosyası bulunmaktadır, bu, projeleri yönetmek için herhangi bir Jetbrains yazılımı tarafından kullanılan hassas bilgileri (şifreler, anahtar depoları, db şifreleri ...) paylaşmanızı önleyecektir.

# 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

Oluşturulan kod da iyi yorumlanmıştır. umarım yardımcı olur :)


Bu bağlantı soruyu cevaplayabilse de, cevabın temel kısımlarını buraya eklemek ve bağlantıyı referans olarak sağlamak daha iyidir. Bağlantı verilen sayfa değişirse, yalnızca bağlantı yanıtları geçersiz olabilir.
Himanshu

@Himanshu Bağlantı gitignore dosyalarının bir arama motorudur. Bundan ne yazıya kopyalamanızı önerirsiniz?
Dan D.

4

Bu dosyaları benim içine eklemeye çalıştım .gitignoreve işe yaramadı ...

Yine de, Petr Syrov'un dediği gibi, git rm -r --cached .ideaterminalinizde kullanabilirsiniz ve bu dosyalar artık sorun olmayacak!



2

Ne olmuş .idea/*? Test etmedi, ama yapmalı


1

.İgnore eklentisini kullanın : https://plugins.jetbrains.com/plugin/7495--ignore

Sizin için otomatik olarak birçok yolu / deseni yönetir ve ayrıca birçok yararlı ekstra özelliğe sahiptir. İle uyumludur:

  • IntelliJ IDEA
  • PhpStorm
  • WebStorm
  • pycharm
  • rubymine
  • AppCode
  • CLION
  • Goland
  • DataGrip
  • Binici
  • MPS
  • Android Studio

0

Zaten bir başlangıç ​​taahhüdü yaptıysanız ve git'te yeni dosyalar olarak görünen .idea dosyalarınız varsa, önce dosyaları kaldırmanız ve sonra bunları işlemeniz gerekir. Aşağıdaki adımlar hile yapacak

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

Burada bu bağlantıda ayrıntılı olarak açıklanmıştır: https://devconnected.com/how-to-clear-git-cache/

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.