Git 如何做到忽略文件的修改,但服务器上仍保留一份

Amstrong 发布于 2015/08/14 20:36
阅读 2K+
收藏 2
Git

    使用Git做版本控制时碰到这样的问题:

    由于数据库所在的主机IP经常切换,导致配置文件 a.properties 经常要修改,但是并非所有的组员都使用同一主机上的数据库,每个人其实只要保留自己的 a.properties 就可以了,并不需要提交该文件的修改,因此想忽略该文件的变化。但是将 a.properties 添加到 .gitignore 中推送后,服务器上的 a.properties 就被删除了,这样就导致新组员 clone 项目时没有 a.properties 文件,必须找别人手动去拷一份,太麻烦。

    所以想向各位大牛请教如何在忽略 a.properties 更改的情况下,在服务器上仍旧保留一份(旧版本即可,因为新旧版本只有数据库主机IP的差别)

加载中
4
leo108
leo108

所有组员执行git update-index --assume-unchanged a.properties即可,新组员也是

Amstrong
Amstrong
谢谢,这样就不用在 .gitignore 里面添加忽略了
1
Feng_Yu
Feng_Yu

社区通用做法,将配置文件写成一个.example文件,然后让用户手工拷贝这个模板文件再修改。

比如将你的配置写一个模板文件app.conf.example,用户自己部署的时候拷贝一份app.conf.example -> app.conf,然后自己在本地随便怎么改了

Amstrong
Amstrong
回复 @Zoker : 单就我提的问题而言,因该是 leo108 的回答最符合要求,真正做到忽略变化的前提下保留文件。不过 Feng_Yu 的回答学习了,以后项目的配置文件会按这种方式处理的~
Zoker
Zoker
回复 @Amstrong : 都是这样玩的,这个回答应该最佳。
Amstrong
Amstrong
回复 @Feng_Yu : soga,学习了,谢谢~
Feng_Yu
Feng_Yu
回复 @Amstrong : 看redmine源码的.gitignore,就是把配置文件configuration.yml写.gitignore
Amstrong
Amstrong
但是如果改完之后 add -A 然后 push 上去了怎么办?
0
xdev
xdev
看上去冒似是开发java吗?如果是可以采取其他方式,比如maven或者spring的profile去处理,不同的环境下使用不同的profile,gradle没用过,应该也是支持的。
返回顶部
顶部