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

我在Rails项目中使用Rubymine。通常情况下,Rubymine在.idea/*文件中做了一些我不关心的更改。但它一直阻止我签出新的分支,并使我的.idea/版本与我的同事不同。

我们已经将.idea/添加到.gitignore中,但它会跟踪.idea中的变化。我该怎么做才对呢?

下面是我得到的一个典型的错误消息:

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

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

.idea/*呢?没有测试,但应该可以

只是.idea/工作对我很好

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

enter image description here

将.idea添加到~/。Gitignore_global并按照这里的说明让.gitignore_global工作:

Git global ignore not working

这样你就不必把它添加到一个单独的.gitignore文件中。

对我来说,只有一个解决方案,删除。idea文件夹,而不是提交文件。gitignore“。然后再次使用IDE

如果Git已经在跟踪某个文件,那么将该文件添加到.gitignore不会阻止Git跟踪它。你需要先对有问题的文件进行git管理,然后添加到你的.gitignore中。

加上。idea/应该有用

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

注意,JetBrains建议“如果你决定与其他开发人员共享IDE项目文件……”,跟踪所有.idea/*文件除了以下情况:

  • workspace.xml
  • usage.statistics.xml
  • tasks.xml
  • 货架/目录

因此,为了遵循他们的建议,你可以将这些添加到你的。gitignore中。


来源:

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

  • 项目根目录除了 .idea下的所有文件,workspace.xmlusage.statistics.xmltasks.xml文件以及架子上目录下的所有文件,这些文件存储了用户特定的设置
  • ...

如何在版本控制系统下管理项目 (存档)

那一页上有一些额外的注释和讨论,如果你考虑继续做这个,你应该读一下 包括您可能需要gitignore的其他文件,即使你决定要共享IDE文件(例如.iml文件,.idea/modules.xml, gradle.xml,用户字典文件夹,从gradle或maven生成的其他文件)

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

JetBrains有.gitignore_global GitHub上

你可以使用gitignore来生成高级gitignore文件。它是快速,简单和前沿标签自动生成为您。

大多数jetbrains软件都使用这个链接(intelijphpstorm…) Jetbrains .gitignore文件 < / p >

(编辑)

下面是为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

生成的代码也被很好地注释。 希望它能帮助:)

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

然而,正如切赫Syrov所说,你可以在你的终端中使用git rm -r --cached .idea,这些文件将不再是一个问题!

关闭PHP Storm 在终端转到项目文件夹 类型< / p >
git rm -rf .idea; git commit -m "delete .idea"; git push;

然后进入项目文件夹,删除文件夹。idea

sudo rm -r .idea/

启动PhpStorm,你就完成了

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

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

它为你自动管理许多路径/模式,也有许多有用的额外功能。它兼容:

  • IntelliJ IDEA
  • PhpStorm
  • WebStorm
  • PyCharm
  • RubyMine
  • 本地
  • CLion
  • GoLand
  • DataGrip
  • 骑手
  • 国会议员
  • Android工作室

虽然我切换到Rubymine的时间并不长,但我发现忽略Rubymine的.idea文件并将其提交给git是一件很有挑战性的事情。

以下是我的解决方法

如果你根本没有做过任何分期/提交,或者你刚刚在我的Ruby中启动了一个新项目,那么就简单地这样做

选项1

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

# Ignore .idea files
.idea/

这将确保git忽略所有的。idea文件,尽管它们仍然保留在本地的项目文件夹中。

选项2

如果你已经做了一些分期/提交,或者你刚刚在Ruby我的开发中打开了一个现有的项目,那么就简单地这样做

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

git rm -r --cached .idea

这将删除git中已经跟踪的。idea文件

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

# Ignore .idea files
.idea/

这将确保git忽略所有的。idea文件,尽管它们仍然保留在本地的项目文件夹中。

选项3

如果你已经做了一些staging/commit,或者你刚刚在Ruby mine中打开了一个现有的项目,并且想在本地和git中完全删除.idea文件,那么就简单地这样做

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

git rm -r --cached .idea

这将删除git中已经跟踪的。idea文件

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

rm -r .idea

这将删除包括本地文件夹在内的所有。idea文件

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

# Ignore .idea files
.idea/

这将确保git忽略所有的。idea文件,并从本地项目文件夹中删除。

这是所有

我希望这对你们有帮助

如果您已经进行了初始提交,并且您的.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/ < / p >

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

$ HOME / .gitignore_global$ HOME / . config / git /忽视美元GIT_DIR /信息/排除.gitignore中指定的忽略规则在Git存储库中都有效

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

对于所有的JetBrains ide:

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

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