使用PHPStorm,我试图忽略workspace.xml,每次我尝试进行git提交时,它都会弹出。

我的。gitignore看起来像:

/.idea/
.idea/workspace.xml

因为在提交文件时,我还执行了:

Git rm——缓存。idea/workspace.xml,然后提交删除,推到一个裸repo。

但是当我在项目中进行更改时,该文件一直弹出。

你知道我错过了什么吗?


当前回答

只要告诉git不要假设它被改变了,不管发生什么:

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

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

其他回答

我也面临着同样的问题,它把我逼疯了。问题最终是.idea文件夹之前已经提交到repo中,所以不管你是否忽略它们,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的dotfiles。

否则,您必须将它添加到您所从事的每个项目的每个.gitgnore中。此外,如果您与其他人合作,那么最好的做法是不要使用不特定于项目源代码的私有配置来污染项目的.gitignore。

在你看到文件出现的同一个目录下:

rm .idea / workspace.xml Git rm -f .idea/workspace.xml(由Chris vdp建议) vi .gitignore i(要编辑),在其中一行中添加.idea/workspace.xml, Esc,:wq

你现在应该没事了

只要告诉git不要假设它被改变了,不管发生什么:

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

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

只是想分享一下我的经验。

无论我尝试什么,我都有同样的问题,但我正在进行的回收如你所期望的那样在顶层生成了一个.idea,但.gitignore被放置在目录树下的一个文件夹中。

So:

.idea // On the level above the .gitignore file
application/
- .gitignore // too low to include .idea
- otherfile.js

所以我的解决方案是,我需要在repo的顶层创建一个.gitignore文件,然后我可以像预期的那样删除/ .idea文件夹,就像这样:

.gitignore // Now this can successfully target .idea below
.idea
application/
- .gitignore
- otherfile.js

我不得不:

从git中删除该文件 将提交推到所有远程 确保从远程更新所有其他提交者

命令

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

其他提交者应该运行

git pull