不能忽视.idea/workspace.xml - 不断弹出

Val*_*spa 214 git intellij-idea phpstorm

使用PHPStorm,我试图忽略workspace.xml每次尝试进行git提交时弹出的内容.

.gitignore看起来像:

/.idea/
.idea/workspace.xml
Run Code Online (Sandbox Code Playgroud)

因为在某个时刻文件已经提交,我还执行了:

git rm --cached .idea/workspace.xml 然后承诺删除,推到一个裸的回购.

但是当我在项目中进行更改时,文件会不断弹出.

关于我失踪的任何想法?

ame*_*dit 274

我正面临同样的问题,它把我推到了墙上.这个问题最终要的是,.idea文件夹已经COMMITED到回购之前,所以他们被跟踪的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
Run Code Online (Sandbox Code Playgroud)

之后请务必忽略.gitignore中的.idea

虽然能忽视它在存储库的的.gitignore,我建议你忽略了全球IDE的点文件.

否则,您必须将每个.gitgnore添加到您处理的每个项目中.另外,如果你与其他人合作,那么它的最佳实践不污染项目的私人configuation不特定于该项目的源代码的.gitignore.

  • @LeoCaseiro你是对的.感谢您指出了这一点! (2认同)
  • 我必须做`git rm .idea`而不是`git add .idea`来完成这项工作 (2认同)
  • 哇谢谢你!!尝试了一百万种不同的方法都无济于事。这是正确的逐步方法。我缺少的主要区别是确保我的IDE已关闭-不要错过这一步!很好的答案:) (2认同)

arc*_*ine 76

我刚才有这个问题,我现在必须要做的git rm -f .idea/workspace.xml 似乎已经不见了(我也不得不把它放进去.gitignore)

  • 我还要补充一点,仅为了精确起见,在执行此步骤时应该关闭Idea intellij. (4认同)

Val*_*spa 26

我不得不:

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

命令

git rm -f .idea/workspace.xml
git remote | xargs -L1 git push --all
Run Code Online (Sandbox Code Playgroud)

其他提交者应该运行

git pull
Run Code Online (Sandbox Code Playgroud)

  • 虽然我很高兴得到这个答案,但我不禁觉得如果包含如何完成步骤(例如命令行指令)的说明会更有用. (7认同)

小智 25

在您看到文件出现的同一个目录中执行:

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

你现在应该好

  • 或者,要将行添加到 .gitignore,只需键入 `echo .idea/workspace.xml>>.gitignore`。您不需要为所有内容都打开 vi。或者,我会做的是在 .idea 目录中有一个单独的 .gitignore 文件:`echo workspace.xml>>.idea/.gitignore` (2认同)

Joh*_*ler 9

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

git rm -r --cached '.idea/'
echo .idea >> .gitignore
git commit -am "removed .idea/ directory"
Run Code Online (Sandbox Code Playgroud)


ker*_*000 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/
Run Code Online (Sandbox Code Playgroud)


Tos*_*kan 5

告诉 git 不要假设它被改变了,无论如何:

git update-index --assume-unchanged src/file/to/ignore
Run Code Online (Sandbox Code Playgroud)

是的,您可以从 git 存储库中删除文件。但是,如果您的团队都使用相同的 IDE,或者您独自一人,您可能不想这样做。对于您自己,您希望有一个好的起点来恢复工作,也为您的队友。