我有一个包含以下目录结构的仓库:
src/
main/
resources/
application-local.properties
application-local-db.properties
java/
<lots of source files here>
.gitignore
看起来像一个gitignore:
/.project
/target/
/bin/
/.settings/
/.classpath
/generated/
.idea
*.iml
我现在想将src/main/resources/application-local.*
添加到我的gitignore中,因此对此文件的更改不会被提交/推送。所以我改变了我的gitignore:
/.project
/target/
/bin/
/.settings/
/.classpath
/generated/
.idea
*.iml
/application-local-memcached.properties
/application-local.properties
然后我对application-local.properties
进行了一些更改,当我做git add . -n
时,我看到git准备好进行改变! 为什么git不尊重我的gitignore更改而忽略对application-local.*
的更改?
答案 0 :(得分:2)
我假设.gitignore
已经签入了回购邮箱。如果是,您必须将其删除(或在临时中复制它),提交删除文件,将您创建的副本重命名为原始文件名并发布src/main/resources/
将开始忽略对该文件的更改。
或者,从Git的角度来看,src/main/resources/.gitkeep
在技术上是空的,因为你希望Git忽略这些属性文件。 Git不允许将空目录添加到repo中,但如果您仍想保留此目录结构,请创建一个虚拟文件25/Oct/2011:01:41:00 -0500
,以便您可以在repo中实际提交和维护该目录路径