我有以下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,我还使用这些设置git config --global core.excludesfile '~/.gitignore'
添加了全局gitignore文件,但是当我查看git status
时,我仍然收到上述Git更新消息。我错了什么?
答案 0 :(得分:18)
如果这些元素已经提交,则需要先删除它们:
git rm --cached .project
git rm --cached .classpath
git rm --cached -r .settings
--cached
选项允许他们留在工作树中,同时记录删除
删除后,它们将被忽略。
提交后,下一个更改将被忽略。
.gitignore
文件夹中的简单myproject/
就足够了:
.project
.classpath
.settings/
请注意/
文件夹的.setting
:这将忽略其中的所有内容。
答案 1 :(得分:2)
以下是我对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添加一个罐子,所有人都会在拉动后得到它 但是,如果您提交eclipse配置,则在推送时,确保更改有用,如果没有,请不要提交,例如, 2源文件夹只是改变他们的行顺序,在这种情况下你可以git checkout - xxx,忽略那个改变,这样就不会影响其他人了。