如何让Git忽略Rubymine创建的.idea文件

时间:2012-03-03 22:29:19

标签: git 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

21 个答案:

答案 0 :(得分:271)

在您的终端中尝试git rm -r --cached .idea。它会禁用更改跟踪。

答案 1 :(得分:208)

.idea/只适用于我

答案 2 :(得分:37)

请注意,JetBrains建议“如果您决定与其他开发人员共享IDE项目文件......”,请跟踪除以下三个文件之外的所有.idea/*个文件

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

因此,要遵循他们的建议,您可以将这3个文件添加到.gitignore。


来源:

  

如果您决定与其他开发人员共享IDE项目文件,请遵循以下准则:
  ...
  以下是您需要分享的内容:

     
      
  • 项目根目录中.idea目录下的所有文件, workspace.xml usage.statistics.xml > tasks.xml 存储用户特定设置的文件
  •   
  • ...
  •   
     

How to manage projects under Version Control Systemsarchive

在该页面上还有一些关于哪些其他文件可以用于不同特定的jetbrains IDE和构建的其他文件。

答案 3 :(得分:26)

.idea/*添加到您的排除列表中,以防止跟踪所有.idea文件,目录和子资源。

答案 4 :(得分:22)

如果Git已经跟踪了某个文件,将该文件添加到.gitignore将不会阻止Git跟踪它。您需要首先对违规文件执行git,然后添加到.gitignore。

添加.idea /应该工作

答案 5 :(得分:19)

在您的终端中使用C:\Users\armyTik\Desktop\angular2>ng new ponyracer installing ng2 create .clang-format create config\environment.js create e2e\app.e2e.ts create e2e\app.po.ts create e2e\tsconfig.json create angular-cli-build.js create .gitignore create karma-test-shim.js create karma.conf.js create package.json create protractor.conf.js create src\app\ponyracer.html create src\app\ponyracer.spec.ts create src\app\ponyracer.ts create src\app.ts create src\favicon.ico create src\index.html create src\tsconfig.json create src\typings.d.ts create tslint.json create typings.json EPERM: operation not permitted, rename 'C:\Users\armyTik\AppData\Roaming\npm-cache\inherits\2.0.1\package\package.json.9a4ce21d93c69060b63a1c0abc37dc9a' -> 'C:\Users\armyTik\AppData\Roaming \npm-cache\inherits\2.0.1\package\package.json' Error: EPERM: operation not permitted, rename 'C:\Users\armyTik\AppData\Roaming\npm-cache\inherits\2.0.1\package\package.json.9a4ce21d93c69060b63a1c0abc37dc9a' -> 'C:\Users\armyTik\AppData\ Roaming\npm-cache\inherits\2.0.1\package\package.json' at Error (native) 对我来说非常有用。它会禁用更改跟踪并取消设置rubymine文件夹(idea /)下的一些文件,然后我可以添加并提交给git,从而删除比较并允许git rm -r --cached .idea的gitignore设置工作。

答案 6 :(得分:12)

在rubymine gui中,有一个忽略列表(设置/版本控制)。也许尝试在那里禁用它。我得到了他们支持者的暗示。

enter image description here

答案 7 :(得分:12)

关闭PHP Storm 在终端中转到项目文件夹 型

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

然后转到项目文件夹并删除文件夹.idea

sudo rm -r .idea/

启动PhpStorm,你就完成了

答案 8 :(得分:9)

将.idea添加到〜/ .gitignore_global并按照此处的说明获取.gitignore_global工作:

Git global ignore not working

然后您不必将其添加到单个.gitignore文件中。

答案 9 :(得分:4)

对我来说,只有一个解决方案可以删除.idea文件夹而不是提交文件.gitignore和“.idea”,而不是再次使用IDE

答案 10 :(得分:4)

我建议您阅读git man page以完全理解忽视工作的方式,将来您会感谢我;)

与您的问题相关:

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.

答案 11 :(得分:4)

我尝试将这些文件添加到我的.gitignore中,但它无用......

然而,正如Petr Syrov所述,您可以在终端中使用git rm -r --cached .idea,这些文件不再是问题!

答案 12 :(得分:3)

JetBrains有.gitignore_global on GitHub

答案 13 :(得分:3)

您可以使用gitignore进行高级gitignore文件生成。它会自动为您生成快速,简便和尖端的标签。

对大多数jetbrains软件使用此链接( intelij phpstorm ...) jetbrains .gitignore file

<强> [编辑]

以下是Jetbrains软件生成的gitignore文件,这将阻止您共享任何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

生成的代码也有很好的评论。 希望它有助于:)

答案 14 :(得分:2)

.idea/*怎么样?没有测试,但应该这样做

答案 15 :(得分:2)

虽然我切换到Rubymine的时间不长,但我发现忽略Rubymine的.idea文件已提交到git具有挑战性。

这是我修复的方式

如果您根本不执行任何暂存/提交操作,或者只是在Ruby mine中启动了一个新项目,则只需执行此操作

选项1

将以下行添加到.gitignore文件中,该文件通常位于存储库的根目录中。

# Ignore .idea files
.idea/

这将确保所有.idea文件都不会被git跟踪,尽管它们仍将保留在本地项目文件夹中。

选项2

如果您已经执行了一些暂存/提交操作,或者只是在Ruby mine中打开了一个现有项目,则只需执行此操作

在终端/命令行中运行代码

git rm -r --cached .idea

这会删除git中已经跟踪的.idea文件

接下来,将.idea /包含到.gitignore文件中,该文件通常位于存储库的根目录中。

# Ignore .idea files
.idea/

这将确保所有.idea文件都不会被git跟踪,尽管它们仍将保留在本地项目文件夹中。

选项3

但是,如果您已完成一些暂存/提交操作,或者只是在Ruby mine中打开了一个现有项目,并且想要在本地和git中完全删除.idea文件,则只需执行此操作

在终端/命令行中运行代码

git rm -r --cached .idea

这会删除git中已经跟踪的.idea文件

在终端/命令行中运行代码

rm -r .idea

这将删除所有.idea文件,包括本地文件夹

接下来,将.idea /包含到.gitignore文件中,该文件通常位于存储库的根目录中。

# Ignore .idea files
.idea/

这将确保git不会跟踪所有.idea文件,也不会从本地项目文件夹中删除这些文件。

仅此而已

我希望这会有所帮助

答案 16 :(得分:1)

使用 .ignore 插件:https://plugins.jetbrains.com/plugin/7495--ignore

它可以自动管理很多路径/模式,还有许多有用的额外功能。它兼容:

  • IntelliJ IDEA
  • PhpStorm
  • WebStorm
  • PyCharm
  • RubyMine
  • AppCode
  • CLion
  • GoLand
  • DataGrip
  • 骑士
  • MPS
  • Android Studio

答案 17 :(得分:0)

如果您已经进行了首次提交,并且.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/

答案 18 :(得分:0)

.gitignore,该文件用于明确指定 Git 应忽略哪些文件或文件夹

$HOME/.gitignore_global$HOME/.config/git/ignore$GIT_DIR/info/exclude 中指定的忽略规则>、.gitignore都在Git仓库中生效

.gitignore 文件明确指定 Git 不应跟踪哪些文件,即,Git 忽略哪些文件。 在成为 gitignore 之前已经被 Git 跟踪的文件不受 gitignore 规则的影响。。要停止跟踪已被 Git 跟踪的文件,请使用 git rm --cached .idea/ 命令

答案 19 :(得分:0)

对于所有 JetBrains IDE:

设置 > 编辑器 > 文件类型 > 忽略的文件和文件夹,按 + 号并将 .idea 添加到忽略列表。

或者,将行 .gitignore 添加到 .git/info/exclude(用于提交)或 .idea/(用于本地)。

答案 20 :(得分:-6)

在Windows上。只需隐藏.idea文件夹即可。 Git将负责其余的工作。