使用PHPStorm,我试图忽略 workspace.xml
每次尝试进行git commit时弹出的窗口。
我的.gitignore
样子是:
/.idea/
.idea/workspace.xml
因为文件已经提交,所以我还执行了:
git rm --cached .idea/workspace.xml
然后执行删除操作,将其推送到裸仓库。
但是,当我在项目中进行更改时,文件会继续弹出。
关于我所缺少的任何想法?
使用PHPStorm,我试图忽略 workspace.xml
每次尝试进行git commit时弹出的窗口。
我的.gitignore
样子是:
/.idea/
.idea/workspace.xml
因为文件已经提交,所以我还执行了:
git rm --cached .idea/workspace.xml
然后执行删除操作,将其推送到裸仓库。
但是,当我在项目中进行更改时,文件会继续弹出。
关于我所缺少的任何想法?
Answers:
我面临着同样的问题,这把我逼到了墙外。问题最终是因为.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。
git rm .idea
而不是git add .idea
做这份工作
add
,rm
但就我而言,我还必须添加-r
以递归方式删除所有内容。git rm -r .idea
我不得不:
指令
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
你现在应该好
echo .idea/workspace.xml>>.gitignore
。您无需为所有内容打开vi。或者,我将要做的是在.idea目录中拥有一个单独的.gitignore文件:echo workspace.xml>>.idea/.gitignore
如果您的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/