github中,一些涉及到用户配置的文件怎么处理(比如数据库用户名/密码)?

2013-06-30 18:58:51 +08:00
 gracece
想把代码放在github上,不知道怎么处理好,怕一不小心把密码都push上去了。
10399 次点击
所在节点    git
22 条回复
fangzhzh
2013-06-30 18:59:54 +08:00
ignore吧, 保存在本地好了.
或者上去前, 加密下
gracece
2013-06-30 19:02:03 +08:00
@fangzhzh 比如我有一个 config.php ,在第一次push的时候放个空密码。然后设置为ignore掉之后再把密码写进去这样吗?
Livid
2013-06-30 19:02:49 +08:00
源代码库里放 config.example.php,然后 .gitignore 里忽略 config.php。
fangzhzh
2013-06-30 19:10:19 +08:00
@Livid 这个正解
yuelang85
2013-06-30 19:11:07 +08:00
@Livid 正解啊,正为这个发愁呢
gracece
2013-06-30 19:14:01 +08:00
@Livid 感谢!
gracece
2013-06-30 19:15:50 +08:00
突然想到为什么wordpress的代码里面只给了 wp-config-sample.php 没有 wp-config.php ,大概也是这样的原因吧。
Livid
2013-06-30 19:17:37 +08:00
@gracece 对,很多 PHP 开源项目都是这样做的,phpMyAdmin 也是。
lex
2013-06-30 19:38:21 +08:00
build 的时候从 keychain 取。
fangpeishi
2013-06-30 19:54:39 +08:00
用我们学校的邮箱可以申请到micro 的套餐,好像5个私有。
另外gitcafe目前免费。
thai9quohs6jae1C
2013-06-30 19:56:28 +08:00
phing 用这个
Kjuly
2013-06-30 20:34:43 +08:00
gitignore一般来说是ignore一些untracked文件(比如生成的二进制、临时文件等)
但如果项目中已经存在了一个已经设置了参数但各参数为空的config文件 那么最好的办法还是使用

git update-index --assume-unchanged config

这样每个本地库对config的修改都不会被track 但服务器端的config文件还在

而且现在越来越多的项目使用Live Build,这就避免了缺失config中的参数带来的Build Failed错误

---
另外 当你需要为config文件添加新参数的时候 使用

git update-index --no-assume-unchanged config

来重新track文件的修改 提交修改后记得再--assume-unchanged回来 具体使用方法自己可以搜索下 建立一个测试项目试试效果 ;)
bcxx
2013-06-30 20:53:14 +08:00
@Kjuly 但是如果协作的话就要大家都设置一遍了,有其他方法可以解决这个开销么?
timonwong
2013-06-30 21:07:06 +08:00
@bcxx
可以用 git attributes 的 filter,不过稍显复杂,每个working directory仍然需要单独设置。

你可以考虑这种办法:
1. 首先还是在 ${git_working_dir}/.gitignore 中排除掉 xxx.conf
2. 使用任意安全的同步方法,维护一个专供config的库
3. 软连接 ln -s ${path_to_real_config_folder}/xxx.conf ${git_working_dir}/xxx.conf
est
2013-06-30 21:38:48 +08:00
测试和正式服一般是通过环境变量注入来提供db密码之类的。
binux
2013-06-30 21:58:13 +08:00
我的做法是在config.py中try一个import local_config.py,local_config.py不提交
bcxx
2013-06-30 22:20:11 +08:00
@timonwong 这个方法就是我现在用的啦 :)
reorx
2013-06-30 23:58:21 +08:00
@binux +1
tangzx
2013-07-01 00:17:52 +08:00
越来越多的实践采用环境变量,而非本地文件
tangzx
2013-07-01 00:20:35 +08:00
默认值采用mongodb://localhost/devdb (数据库)这样的本地开发值,这样如果再配合mongo这样无schema的货货。就几乎可以0配置启动开发了,这样对对代码有兴趣的开发者很友好。如果一个项目启动配置都要很麻烦,自然让其他人不想参与其中

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/74245

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX