情况就是这样:我们有几个配置文件,当用户克隆repo时,预计他们会修改这些配置文件。文件本身的结构使得这个快速,简单和简单 - 但这意味着任何执行“git add *”或“git commit -a”的用户最终都会将这些文件发送回服务器并进行更改! / p>
这不仅会在下次拉动时为下一个人破坏事物(他每次都需要合并并处理他甚至不需要的文件的冲突),这意味着用户很容易意外地破坏我们已经开始进行持续集成测试。
我想要的是git ignore的效果(它不关心它是否会被改变,它不会提交它),但不必完全删除文件。如果我们还能以某种方式强制更改文件,那将是很好的。
我知道有很多方法可以在SVN中执行此操作,我认为Git必须具有等效功能。
答案 0 :(得分:6)
git update-index --assume-unchanged <filename>
(它实际上用于不同的目的 - 在不那么优化的文件系统上提高git操作的性能,从而可以指示git假设某些文件没有被触及。你可以用它来“暂时”忽略跟踪文件)
您还可以查看人们处理配置文件的其他方式,例如拥有用户创建特定配置文件的模板配置文件(后者被忽略)等。
答案 1 :(得分:0)
我会configfile.template
configfile
,.gitignore
列出configfile
,以及README或其他提示复制和调整。设置所述configfile.template
的目标,做一些合理的事情(内置{{1}}等效?)如果没有配置存在(无论如何你都需要这样的东西,所以......)。