无法忽略.idea / workspace.xml-不断弹出


237

使用PHPStorm,我试图忽略 workspace.xml每次尝试进行git commit时弹出的窗口。

我的.gitignore样子是:

/.idea/
.idea/workspace.xml

因为文件已经提交,所以我还执行了:

git rm --cached .idea/workspace.xml 然后执行删除操作,将其推送到裸仓库。

但是,当我在项目中进行更改时,文件会继续弹出。

关于我所缺少的任何想法?


尝试了以下所有内容,将其添加到gitignore中,但仍继续返回,忽略了gitignore。
奥拉夫2014年

看起来像这个问题。检查一下,看看...
卡·巴洛尔

检查此链接:stackoverflow.com/questions/8156299/…。看起来像你一样的问题。
卡·巴洛尔

Answers:


288

我面临着同样的问题,这把我逼到了墙外。问题最终是因为.idea文件夹之前已经提交到存储库中,因此无论是否忽略它们,git都将对其进行跟踪。在关闭RubyMine / IntelliJ或您使用的任何IDE之后,我将建议以下内容:

mv .idea ../.idea_backup
rm .idea # in case you forgot to close your IDE
git rm -r .idea 
git commit -m "Remove .idea from repo"
mv ../.idea_backup .idea

之后,请确保在您的.gitignore中忽略.idea

尽管足以在存储库的.gitignore中忽略它,但我建议您全局忽略IDE的点文件。

否则,您将必须将其添加到您处理的每个项目的每个.gitgnore中。另外,如果您与其他人合作,则最佳做法是不要使用非特定于项目源代码的私有配置来污染项目的.gitignore。


最后一个命令应该是“ mv ../.idea_backup .idea”,而不是“ git mv ../.idea_backup .idea”,以避免git错误
Leo Caseiro 2015年

2
我必须做git rm .idea而不是git add .idea做这份工作
Serge 2016年

我也进行了更改addrm但就我而言,我还必须添加-r以递归方式删除所有内容。git rm -r .idea
jmendiola '16

2
哇谢谢你!!尝试了一百万种不同的方法都无济于事。这是正确的逐步方法。我缺少的主要区别是确保我的IDE已关闭-不要错过这一步!优秀答案:)
乔尼·阿斯玛

谢谢!很多很多时间都花在寻找可行的解决方案上,并尝试了好几次。这是最简单的方法。
edepe

83

我刚刚遇到了这个问题,我现在必须做git rm -f .idea/workspace.xml ,似乎已经消失了(我也不得不把它放进去.gitignore


7
我还要补充一点,仅出于精确起见,在执行此步骤时,应关闭Idea intellij。
LoreV

29

我不得不:

  • 从git中删除文件
  • 将提交推送到所有遥控器
  • 确保所有其他提交者都从远程更新

指令

git rm -f .idea/workspace.xml
git remote | xargs -L1 git push --all

其他提交者应参加

git pull

7
虽然我很高兴获得这个答案,但我不禁感到,如果包含有关如何完成这些步骤的说明(例如,命令行指令),它会更加有用。
flyace

检查此链接:stackoverflow.com/questions/8156299/…。看起来和您的问题完全一样。
卡·巴洛尔

关闭IDE \ n git rm -f .idea / workspace.xml \ n git commit -m“删除workspace.xml” \ n编辑.gitignore以排除workspace.xml \ n打开IDE
Srneczek

27

在您看到文件出现的相同目录中,执行以下操作:

  • rm .idea/workspace.xml
  • git rm -f .idea/workspace.xml (as suggested by chris vdp)
  • vi .gitignore
  • i(以进行编辑),添加.idea/workspace.xml其中的一行Esc:wq

你现在应该好


2
或者,要将行添加到.gitignore,只需键入echo .idea/workspace.xml>>.gitignore。您无需为所有内容打开vi。或者,我将要做的是在.idea目录中拥有一个单独的.gitignore文件:echo workspace.xml>>.idea/.gitignore
Godsmith 2014年

17

要从.idea/git 中完全删除而不影响您的IDE配置,您可以执行以下操作:

git rm -r --cached '.idea/'
echo .idea >> .gitignore
git commit -am "removed .idea/ directory"

6

如果您的git仓库中有多个项目.idea/workspace.xml则将不匹配任何文件。

而是,请执行以下操作:

$ git rm -f **/.idea/workspace.xml

并使您的.gitignore看起来像这样:

# User-specific stuff:
**/.idea/workspace.xml
**/.idea/tasks.xml
**/.idea/dictionaries
**/.idea/vcs.xml
**/.idea/jsLibraryMappings.xml

# Sensitive or high-churn files:
**/.idea/dataSources.ids
**/.idea/dataSources.xml
**/.idea/dataSources.local.xml
**/.idea/sqlDataSources.xml
**/.idea/dynamic.xml
**/.idea/uiDesigner.xml

## File-based project format:
*.iws

# IntelliJ
/out/

5

只是告诉git不要假定它已更改,无论如何:

git update-index --assume-unchanged src/file/to/ignore

是的,您可以从git存储库中删除文件。但是,如果您的团队全部使用相同的IDE,或者您自己一个人使用,则可能不想这样做。对于您自己来说,您也希望有一个好的起点来重新开始工作,对您的队友也是如此。


0

我在也基于IntelliJ的Android Studio中所做的方式就是这样。在提交对话框中,我还原了workspace.xml的更改,然后将其移动到未版本化的文件中。之后,我从提交对话框中删除了它。现在它不会出现在变更列表中。请注意,我的gitignore已经包含.idea / workspace.xml


0

由于我是在执行项目的第一次提交,因此只需删除.git.idea文件夹,然后使用git init帮助重新初始化git 即可解决问题。现在我根本没有.idea


0

PHPStorm对我来说同样的问题

最后,我解决了以下问题:

  • 删除.idea /目录
  • .gitignore移动到同一级别将是新生成的.idea /
  • 编写需要忽略的文件,以及.idea /。为确保将其忽略,我输入以下内容:

    • 。理念/
    • 。理念
    • 。理念/*

我不知道为什么这样工作,也许.gitignore需要与.idea处于同一级别,才能忽略此目录。


-1

忽略与结尾的文件.iws,以及workspace.xmltasks.xml你的.gitignore文件 参考

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.