使用PHPStorm,我试图忽略workspace.xml,每次我尝试进行git提交时,它都会弹出。
workspace.xml
我的.gitignore看起来像:
.gitignore
/.idea/ .idea/workspace.xml
因为在提交文件时,我还执行了:
git rm --cached .idea/workspace.xml,然后提交删除,推到一个裸回购。
git rm --cached .idea/workspace.xml
但是当我在项目中进行更改时,该文件一直弹出。
你知道我错过了什么吗?
我刚才有这个问题,我必须做git rm -f .idea/workspace.xml 现在它似乎消失了(我也不得不把它放入.gitignore)
git rm -f .idea/workspace.xml
我不得不:
命令
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
:wq
你现在应该没事了
我也面临着同样的问题,它把我逼疯了。问题最终是.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。
.iws
tasks.xml
只要告诉git不要假设它被改变了,不管发生什么:
git update-index --assume-unchanged src/file/to/ignore
是的,您可以从git存储库中删除这些文件。但是如果你的团队都使用相同的IDE,或者你是一个人,你可能不想这样做。对你自己来说,你希望有一个好的起点来重新开始工作,对你的队友来说也是如此。
如果你的git repo中有多个项目, .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/
我在基于IntelliJ的Android Studio中所做的是这样的。在提交对话框中,我恢复了对workspace.xml的更改,然后将其移动到未版本控制的文件。之后,我从提交对话框中删除了这个。现在它不会出现在更改列表中。注意,我的gitignore已经包含了.idea/workspace.xml
因为在我的情况下,我正在执行一个项目的第一次提交,简单地删除.git和.idea文件夹,然后使用git init重新初始化git有助于解决问题。现在我根本没有.idea。
.git
.idea
git init
要从git的不影响IDE配置中完全删除.idea/,你可以这样做:
.idea/
git rm -r --cached '.idea/' echo .idea >> .gitignore git commit -am "removed .idea/ directory"
我用PHPStorm也遇到了同样的问题
最后我解决了以下问题:
写你需要被忽略的文件,还有.idea /。为了确保它会被忽略,我写了以下内容:
我不知道为什么这样工作,也许.gitignore需要在同一级别的.idea可以忽略这个目录。
不太直观,但一旦我弄清楚就很容易修复:我将文件添加到.gitignore,然后在Commit选项卡的更改列表中恢复该文件。它不再出现了。
(我猜一旦IntelliJ自动将更改添加到git中,它将不再与.gitignore进行比较。一旦恢复,IntelliJ将在添加文件之前开始与.gitignore进行比较。)
只是想分享一下我的经验。
无论我尝试什么,我都有同样的问题,但我正在进行的回购如你所期望的那样在顶层生成了一个.idea,但.gitignore被放置在目录树较低的文件夹中。
所以:
.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