使用 PHPStorm,我试图忽略workspace.xml
每次尝试进行 git 提交时弹出的内容。
我的.gitignore
样子:
/.idea/
.idea/workspace.xml
因为在某个时间点文件已提交,我还执行了:
git rm --cached .idea/workspace.xml
然后提交删除,推送到一个裸仓库。
但是当我在项目中进行更改时,该文件会不断弹出。
关于我所缺少的任何想法?
使用 PHPStorm,我试图忽略workspace.xml
每次尝试进行 git 提交时弹出的内容。
我的.gitignore
样子:
/.idea/
.idea/workspace.xml
因为在某个时间点文件已提交,我还执行了:
git rm --cached .idea/workspace.xml
然后提交删除,推送到一个裸仓库。
但是当我在项目中进行更改时,该文件会不断弹出。
关于我所缺少的任何想法?
我面临同样的问题,它把我逼到了墙角。问题最终是 .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 的点文件。
否则,您必须将它添加到您从事的每个项目的每个 .gitgnore 中。此外,如果您与其他人合作,那么最好不要使用不特定于项目源代码的私有配置来污染项目的 .gitignore。
我刚才有这个问题,我现在必须做git rm -f .idea/workspace.xml
它似乎没有了(我也不得不把它放进去.gitignore
)
我不得不:
命令
git rm -f .idea/workspace.xml
git remote | xargs -L1 git push --all
其他提交者应该运行
git pull
在您看到文件出现的同一目录中,执行以下操作:
rm .idea/workspace.xml
git rm -f .idea/workspace.xml (as suggested by chris vdp)
vi .gitignore
.idea/workspace.xml
其中一行Esc,,,:wq
你现在应该很好
要.idea/
完全从 git中删除而不影响您的 IDE配置,您可以这样做:
git rm -r --cached '.idea/'
echo .idea >> .gitignore
git commit -am "removed .idea/ directory"
如果您的 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/
只是告诉 git 不要假设它被改变了,无论如何:
git update-index --assume-unchanged src/file/to/ignore
是的,您可以从 git 存储库中删除文件。但是,如果您的团队都使用相同的 IDE 或者您自己一个人,您可能不想这样做。对你自己来说,你希望有一个好的起点来恢复工作,对你的队友也是如此。
PHPStorm 对我来说同样的问题
最后我解决了以下问题:
写下你需要忽略的文件,还有.idea/。为了确保它将被忽略,我输入了以下内容:
我不知道为什么会这样工作,也许.gitignore需要与.idea处于同一级别才能忽略此目录。
我在同样基于 IntelliJ 的 Android Studio 中所做的方式是这样的。在提交对话框中,我恢复了对 workspace.xml 的更改,然后将其移至未版本控制的文件。之后我从提交对话框中删除了它。现在它不会出现在更改列表中。请注意,我的 gitignore 已经包含 .idea/workspace.xml
因为在我的情况下,我正在执行项目的第一次提交,只需删除.git
和.idea
文件夹,然后使用重新初始化 git就可以git init
帮助解决问题。现在我根本没有.idea
。
不直观,但一旦我弄清楚它就很容易修复:我将文件添加到 .gitignore,然后在提交选项卡的更改列表中恢复该文件。它不再出现。
(我猜一旦 IntelliJ 自动将更改添加到 git,它将不再与 .gitignore 进行比较。一旦恢复,IntelliJ 将在添加文件之前开始与 .gitignore 进行比较。)
忽略.gitignore
参考.iws
中以, 和workspace.xml
结尾的文件tasks.xml