如何忽略Git上的IDE设置?
我有下面的Git信息,我想忽略我的IDE(Eclipse)的设置。
modified: myproject/.classpath
modified: myproject/.project
modified: myproject/.settings/com.google.gdt.eclipse.core.prefs
modified: myproject/.settings/org.eclipse.core.resources.prefs
modified: myproject/.settings/org.eclipse.jdt.core.prefs
modified: myproject/.settings/org.eclipse.wst.common.component
modified: myproject/.settings/org.eclipse.wst.common.project.facet.core.xml
modified: myproject/.settings/org.eclipse.wst.validation.prefs
我在.gitignore
文件中尝试了下面的语句,但它不适用于这些设置:
.project
.classpath
.settings
*.project
*.classpath
*.settings
/.project
/.classpath
/.settings
.project/
.classpath/
.settings/
*.project/
*.classpath/
*.settings/
我正在使用Mac OS X,并且还使用这些设置添加了全局gitignore文件git config --global core.excludesfile '~/.gitignore'
,但是当我检查git status
时,仍然收到上面的Git更新消息。 我错了什么?
如果这些元素已经提交,您需要先删除它们:
git rm --cached .project
git rm --cached .classpath
git rm --cached -r .settings
--cached
选项允许它们保留在工作树中,同时被记录为删除。
一旦删除,它们将被忽略。
一旦提交,下一个更改将被忽略。
myproject/
文件夹中的一个简单的.gitignore
就足够了:
.project
.classpath
.settings/
请注意/
.setting
文件夹:它将忽略它中的所有内容。
以下是我的一个java web项目的.gitignore配置:
*.class
*.swp
*.cache
*~
bin/**/*
target/**/*
build/**/*
gen/**/*
# tmp source folder
tmp/**/*
# js plugin
WebContent/js_plugin/lib/**/*
在git 1.8.2之后 ,如果您想忽略任何文件夹或子文件夹中名为abc的文件夹,请使用以下命令:
**/abc/**/*
所以,如果它太旧,我建议你升级你的git。
顺便说一句,在我看来,如果团队使用相同的IDE,你应该将.classpath的东西同步到git,因为这是基于你有惯例命名你的jdk / tomcat / ...这样的东西。 所以,一旦通过maven添加了一个jar,所有人都会在拉动之后得到它。
但是,如果你提交eclipse配置,当推送时,确保更改是有用的,如果不是,不要提交,例如2源文件夹只是改变他们的命令行,在这种情况下,你可以通过git checkout-xxx忽略改变,这样就不会影响其他人。