Rubymine: как заставить Git игнорировать файлы .idea, созданные Rubymine

Я использую проекты Rubymine для Rails. Очень часто Rubymine вносит изменения в .idea/* файлов, которые меня не интересуют. Но это мешает мне проверять новые ветки и отличает мою версию .idea/ от моих коллег.

Мы уже добавили .idea/ в .gitignore, но он продолжает отслеживать изменения в .idea. Как мне сделать это правильно?

Ниже приведено одно из типичных сообщений об ошибках, которые я получил:

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

person AdamNYC    schedule 03.03.2012    source источник
comment
возможно, вы уже совершили; вам нужно git rm; добавь в игнор.   -  person Kaan Yy    schedule 23.10.2013


Ответы (20)


просто .idea/ у меня отлично работает

person the_joric    schedule 12.03.2012
comment
всем привет! хочешь рассказать нам больше, как ты это делаешь... у меня не работает? :( - person YoniGeek; 22.11.2013
comment
Git работает немного иначе. См. справочную страницу git для получения дополнительной информации. - person Steve Benner; 17.01.2014
comment
Это работает, но не работает для подпапок. Например, у меня есть 2 проекта под одним и тем же Git, и я не блокирую ни один из них, пока не добавлю 2 строки FolderA/.idea/ и FolderB/.idea/ - person Brad Bird; 13.10.2014
comment
@BradBird Я только что попробовал - работает и для подпапок. Также вы можете попробовать **/.idea/ - person the_joric; 13.10.2014
comment
@the_joric Что делает двойная звездочка? - person Brad Bird; 14.10.2014
comment
@BradBird означает совпадение во всех каталогах. - person the_joric; 15.10.2014
comment
Часть проблемы заключается в том, что если вы уже подготовили свои материалы, .gitignore не поможет. - person Dan Rosenstark; 16.10.2014
comment
Но если вы хотите игнорировать файлы/папки после того, как вы добавили/проверили их, вам нужно удалить их с помощью git rm -r --cached web/uploads (в ​​этом примере я добавил папку web/uploads в файл .gigignore после того, как они были зарегистрирован) источник: help.github.com/articles/ignoring-files - person Dung; 28.01.2016
comment
@DanRosenstark спасибо! это было то, что было неправильно в моем случае... каждый должен проверить это, прежде чем смотреть в свой файл .gitignore - person CptKicks; 14.01.2021

Попробуйте git rm -r --cached .idea в своем терминале. Он отключает отслеживание изменений.

person Petr Syrov    schedule 10.08.2013
comment
Большое спасибо! Но почему он в кеше после того, как я проверил совершенно пустой репозиторий? - person Budi; 15.09.2017
comment
Спасибо, очень полезно. Использовал это для удаления файлов, затем добавил .idea в gitignore, и все отлично сработало. Большое спасибо! - person Tim R; 14.02.2018
comment
Это не работает, когда папка .idea уже отслеживается. - person ACV; 28.01.2019
comment
Поэтому, если папка уже отслеживается в Git, добавление .idea/ в .gitignore не помешает Git отслеживать ее. Сначала вам нужно будет выполнить git rm -r --cached .idea, а затем добавить .idea/ в ваш .gitignore. Это будет здорово для меня. - person Sam003; 02.04.2019
comment
сработало успешно, спасибо - person Hicham O-Sfh; 04.12.2020

Обратите внимание, что JetBrains рекомендует, если вы решите поделиться файлами проекта IDE с другими разработчиками..., отслеживать все .idea/* файлы, кроме следующих:

  • рабочая область.xml
  • использование.statistics.xml
  • Задачи.xml
  • полка/каталог

Поэтому, следуя их совету, вы должны добавить их в свой .gitignore.


Источник:

Если вы решите поделиться файлами проекта IDE с другими разработчиками, следуйте этим рекомендациям:
...
Вот что вам нужно предоставить:

  • Все файлы в каталоге .idea в корне проекта, кроме workspace.xml, usage.statistics.xml и tasks. xml и каталог shelf, в котором хранятся пользовательские настройки.
  • ...

Как управлять проектами в системах контроля версий (архив )

На этой странице есть некоторые дополнительные примечания и обсуждения, которые вы должны прочитать, если вы планируете продолжить это,
включая дополнительные файлы, которые вы можете игнорировать git, даже если вы решили поделиться Файлы IDE (например, файлы .iml, .idea/modules.xml, gradle.xml, папка пользовательских словарей, дополнительные файлы, созданные с помощью gradle или maven).

person Daryn    schedule 12.08.2013
comment
Хотя я согласен с этим ответом [+1 за правильность], я думаю, что команды, которые не строги с IDE, могут вообще не проверять папку .idea... Это в любом случае для меня это никогда не имело смысла, файлы там всегда конфликтуют по причинам, которые не имеют смысла. - person JaKXz; 07.09.2014
comment
Плохая практика - фиксировать файлы, специфичные для IDE. Одна из причин заключается в том, что разные разработчики могут использовать разные инструменты. Еще одна проблема заключается в том, что эти файлы могут содержать специфичную для пользователя конфигурацию, которая будет постоянно конфликтовать. - person Jordan Silva; 02.05.2016
comment
Эта рекомендация является плохой практикой. Использование его в проекте - лучший способ версии файлов, содержащих информацию о пользователе, такую ​​как абсолютный путь... Просто загляните в свою папку .idea, прежде чем следовать этой инструкции. - person JBE; 05.01.2017
comment
Хотя я согласен с тем, что слепая фиксация файлов IDE — это всегда плохая идея, потому что слепая фиксация чего-либо — плохая идея. В некоторых случаях общий доступ к файлам IDE может работать хорошо. Концептуально это похоже на совместное использование файлов оркестрации контейнеров, поскольку они являются одним из способов запуска приложений. Точно так же файлы IDE являются одним из способов разработки проекта и могут содержать полезные определения, например, как запускать модульные тесты или команды покрытия кода, аккуратно упакованные для конкретной IDE. Большинство файлов .idea (по крайней мере, в PyCharm) предназначены для совместного использования. - person Samuel Harmer; 18.03.2019

Добавьте .idea/* в свой список исключений, чтобы предотвратить отслеживание всех файлов .idea, каталогов и подресурсов.

person Perception    schedule 03.03.2012

если файл уже отслеживается Git, добавление файла в .gitignore не помешает Git отслеживать его. Вам нужно будет сначала выполнить git rm файлы-нарушители, а затем добавить их в свой .gitignore.

Добавление .idea/ должно работать

person appsmatics    schedule 11.06.2013
comment
Это должен быть более полный ответ! - person Sam003; 02.04.2019

использование git rm -r --cached .idea в вашем терминале отлично сработало для меня. Он отключает отслеживание изменений и удаляет ряд файлов в папке rubymine (idea/), которые я мог бы затем добавить и зафиксировать в git, тем самым удалив сравнение и позволив настройке gitignore .idea/ работать.

person GMarx    schedule 21.02.2016

Закройте PHP Storm в терминале, перейдите к типу папки проекта.

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

Затем перейдите в папку проекта и удалите папку .idea.

sudo rm -r .idea/

Запустите PhpStorm, и все готово

person Gustavo Maimone    schedule 28.01.2016

В графическом интерфейсе rubymine есть список игнорирования (настройки/контроль версий). Может быть, попробовать отключить его там. Я получил подсказку от их парней поддержки.

введите здесь описание изображения

person manavortex    schedule 20.03.2012

Хотя я не так давно перешел на Rubymine, мне было сложно игнорировать файлы .idea Rubymine, которые были переданы в git.

Вот как я это исправил

Если вы вообще не выполняли никаких staging/commit или только что запустили новый проект в шахте Ruby, просто сделайте это

Вариант 1

Добавьте строку ниже в файл .gitignore, который обычно находится в корне вашего репозитория.

# Ignore .idea files
.idea/

Это гарантирует, что все файлы .idea будут игнорироваться git, хотя они по-прежнему останутся в папке вашего проекта локально.

Вариант 2

Однако, если вы выполнили некоторую постановку/фиксацию или только что открыли существующий проект в шахте Ruby, просто сделайте это

Запустите код в терминале/командной строке

git rm -r --cached .idea

Это удаляет уже отслеженные файлы .idea в git.

Затем включите .idea/ в файл .gitignore, который обычно находится в корне вашего репозитория.

# Ignore .idea files
.idea/

Это гарантирует, что все файлы .idea будут игнорироваться git, хотя они по-прежнему останутся в папке вашего проекта локально.

Вариант 3

Однако, если вы выполнили некоторую постановку/фиксацию или только что открыли существующий проект в шахте Ruby и хотите полностью удалить файлы .idea локально и в git, просто сделайте это

Запустите код в терминале/командной строке

git rm -r --cached .idea

Это удаляет уже отслеженные файлы .idea в git.

Запустите код в терминале/командной строке

rm -r .idea

Это удаляет все файлы .idea, включая папку локально.

Затем включите .idea/ в файл .gitignore, который обычно находится в корне вашего репозитория.

# Ignore .idea files
.idea/

Это гарантирует, что все файлы .idea будут проигнорированы git, а также удалены из папки вашего проекта локально.

Это все

Надеюсь, это поможет

person Promise Preston    schedule 07.08.2019

Добавьте .idea в ~/.gitignore_global и следуйте приведенным здесь инструкциям, чтобы заставить .gitignore_global работать:

Глобальное игнорирование Git не работает

Тогда вам не нужно добавлять его в отдельный файл .gitignore.

person fosrias    schedule 22.08.2012

Для меня было только одно решение: удалить папку .idea, чем зафиксировать файл .gitignore с «.idea», а затем снова использовать IDE.

person Ivan Petkevich    schedule 05.02.2013
comment
всем привет! Я пробовал это! но IDE не смогла снова загрузить мои файлы... как ты это сделал? Благодарность! - person YoniGeek; 22.11.2013

Я предлагаю прочитать справочную страницу git, чтобы полностью понять, как игнорировать работу, и в будущем вы буду благодарен ;)

Относится к вашей проблеме:

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.
person Steve Benner    schedule 17.01.2014

Вы можете использовать gitignore для расширенного создания файлов gitignore. Это быстро, просто и передовые теги автоматически генерируются для вас.

Используйте эту ссылку для большинства программных продуктов jetbrains (intelij, phpstorm...) файл Jetbrains .gitignore

[править]

Ниже приведен сгенерированный файл gitignore для программного обеспечения Jetbrains, это не позволит вам делиться конфиденциальной информацией (пароли, хранилища ключей, пароли базы данных...), используемой любым программным обеспечением Jetbrains для управления проектами.

# 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

Сгенерированный код также хорошо прокомментирован. надеюсь, это поможет :)

person Williem    schedule 30.03.2015
comment
Хотя эта ссылка может ответить на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными, если связанная страница изменится. - person Himanshu; 01.04.2015
comment
@Himanshu Ссылка на поисковую систему файлов gitignore. Что посоветуете скопировать из него в пост? - person Dan D.; 01.04.2015

Я пытался добавить эти файлы в свой .gitignore, и это было бесполезно...

Тем не менее, как сказал Петр Сыров, вы можете использовать git rm -r --cached .idea в своем терминале, и эти файлы больше не будут проблемой!

person frisinacho    schedule 28.10.2015

А как насчет .idea/* ? Не проверял, но должно получиться

person ksol    schedule 03.03.2012

У JetBrains есть .gitignore_global на GitHub.

person Jeff Wolski    schedule 06.06.2014

Используйте плагин .ignore: https://plugins.jetbrains.com/plugin/7495--ignore

Он автоматически управляет множеством путей/шаблонов, а также имеет множество полезных дополнительных функций. Он совместим с:

  • IntelliJ ИДЕЯ
  • PhpStorm
  • Вебсторм
  • PyCharm
  • РубиМайн
  • код приложения
  • КЛион
  • GoLand
  • DataGrip
  • Райдер
  • MPS
  • Android-студия
person Mir-Ismaili    schedule 02.03.2018

Для всех IDE JetBrains:

Настройки › Редактор › Типы файлов › Игнорируемые файлы и папки, нажмите знак + и добавьте .idea в список игнорируемых.

Либо добавьте к .gitignore (для фиксации) или .git/info/exclude (для локального) строку .idea/.

person qwr    schedule 07.06.2021

Если вы уже сделали первоначальную фиксацию и у вас есть файлы .idea, отображаемые как новые файлы в git, вам нужно будет сначала удалить файлы, а затем зафиксировать их. Следующие шаги помогут

 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/

person benitta.ruphus    schedule 24.06.2020

.gitignore — файл, используемый для явного указания, какие файлы или папки следует игнорировать Git.

Правила игнорирования, указанные в $HOME/.gitignore_global, $HOME/.config/git/ignore, $GIT_DIR/info/exclude, < strong>.gitignore действуют в репозитории Git.

Файл .gitignore явно указывает, какие файлы Git не должен отслеживать, т. е. игнорировать Git. На файлы, которые уже отслеживались Git до того, как они были включены в gitignore, правило gitignore не распространяется.. Чтобы остановить отслеживание файла, который уже отслеживается Git, используйте команду git rm --cached .idea/

person marie    schedule 26.04.2021