不追踪某些文件的变化
项目中生成的一些临时文件往往不需要添加到版本管理中,这些文件可以通过在.git/info/exclude
文件中设置,例如在该文件中添加以下内容的话,以.iml结尾的文件和target、.idea、test目录下的文件就不会被git监控:
1 | *.iml |
如果这些文件已经被添加到git中,可以通过git rm --cached 文件全路径名
将文件从git索引中删除(不删除文件本身),然后在配置到exclude中
merge分支时不merge特定文件
在一些场景下不同分支的一些文件不应该合并,例如测试环境和生产环境的数据库配置文件。这种情况下即使在.git/info/exclude
配置了不追踪这些文件,merge的时候还是会被merge。一种很好的办法是在.git/info/attributes
中配置不被merge的文件(不包含文件路径),例如:
1 | SpringDispatcher-servlet.xml merge=ours |
然后执行git config --global merge.ours.driver true
定义一个merge策略ours,再执行merge命令时,定义在attributes中的文件就不会参与merge了。