如何让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.xml
和tasks.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软件( intelij , phpstorm …) 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会处理剩下的事情。