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

我使用Rubymine for Rails项目。 很多时候,Rubymine使得我不关心的.idea/*文件发生变化。 但它阻止我检查出新的分支,并使我的版本.idea/与我的同事不同。

我们已经将.idea/添加到.gitignore ,但它会一直跟踪.idea更改。 我应该如何正确地做到这一点?

以下是我得到的典型错误消息之一:

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

只是.idea/适合我

在你的terminal上试试git rm -r --cached .idea 。 它禁用更改跟踪。

请注意,JetBrainsbuild议跟踪.idea/*文件中除两个以外的所有文件

为了更好地实现项目团队之间的协作, 除了存储用户特定设置的workspace.xml和tasks.xml文件之外,您应该在项目根目录下的.idea目录下放置版本控制下的所有文件 。 ( 如何pipe理版本控制系统下的RubyMine项目 )

所以你应该只能忽略workspace.xmltasks.xml文件

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

如果一个文件已经被Git跟踪,将文件添加到.gitignore不会停止Git跟踪它。 你需要首先做一个有问题的文件,然后添加到你的.gitignore。

添加.idea /应该工作

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

在这里输入图像说明

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

Git全局忽略不工作

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

在你的terminal中使用git rm -r --cached .idea对我来说是非常棒的。 它禁用更改跟踪并取消设置ruby文件夹下的一些文件(idea /),然后我可以添加并提交到git,从而删除比较并允许.idea/的gitignore设置工作。

在terminalclosuresPHP Storm转到项目文件夹types

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

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

 sudo rm -r .idea/ 

开始PhpStorm,你就完成了

对我来说,只有一个解决scheme,删除.idea文件夹比提交文件.gitignore与“.idea”,比再次使用IDE

我build议阅读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. 

我试图将这些文件添加到我的.gitignore ,这是没用的…

然而,正如Petr Syrov所说,你可以使用git rm -r --cached .idea到你的terminal,这些文件不会再成为问题了!

那么.idea/*呢? 没有testing,但应该这样做

JetBrains 在GitHub上有一个.gitignore_global

您可以使用gitignore进行高级gitignore文件生成。 这是快速,简单和尖端的标签是自动生成的。

使用此链接的大多数jetbrains软件( intelijphpstorm …) jetbrains .gitignore文件

[编辑]

以下是为Jetbrains软件生成的gitignore文件,这将阻止您共享任何Jetbrains软件用来pipe理项目的敏感信息(密码,keystores,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 

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

在Windows上。 隐藏.idea文件夹。 Git会处理剩下的事情。