最近遇到一个我觉得还算常见的问题不知道怎么解决:本地有一个 git repo,我想每次 push 的时候提交一份不包含生产环境配置文件的到 GitHub 分享,同时把包含所有文件的 push 到生产环境服务器(即两个 remote 使用不同的 ignore 设置)
大家有什么好方案吗?
大家有什么好方案吗?
|
1
开两个不同的 branch
|
|
340244120Jul 14, 2017 via Android
2
再开一个 repo,或者手动切换 ignore
|
|
3
补充:我使用 Tower 来管理 git
|
|
ClassicOldSongJul 14, 2017 via Android
4
开两个不同的 branch 吧,每次 merge 一下
|
|
mrcnJul 14, 2017 via Android
5
都不加入版本控制,参考 Laravel 的.env 文件
一般来说环境配置这种东西很难有变动吧…… |
|
gccdchenJul 14, 2017
6
如果你配置不是常变的话 , 为什么不弄一份 config.xml.sample , 把 config.xml 加入 ignore
|
|
crysislinuxJul 14, 2017
7
我们的配置文件都是单独写的,没在仓库里,仓库里一般放个配置文件的例子,比如 config.example.js 之类的
|
|
az422Jul 14, 2017 via Android
8
为什么不根据环境变量读取不同配置
|
|
9
@mrcn 确实配置文件不常改, 这个方法可以。不过我觉得这个需求也还算常见吧,git 居然没有提供这方面的支持
|
|
momocraftJul 14, 2017
11
ignore 是在 commit 之前有效的, push 是之后
|
|
yanhejiheJul 14, 2017
12
最近我也在用 git 部署,感觉有点问题,资源文件和代码混到一起了,感觉 git 直接用来部署不是很好。有谁做过的分享一下?
|
|
mooncakejsJul 14, 2017 via iPhone
13
@yanhejihe submodule。
|
|
wsy2220Jul 14, 2017
14
配置文件用一个单独的 repo
|
|
middlewareJul 14, 2017
15
不同的 remote 不是用来区分不同的内容的。因为 Git 区分不同内容的唯一方式就是 SHA-1。所以还是老老实实的 branching 才对。对 Git 来说,不同的物理位置根本不是区分内容的依据。
|
|
shalkJul 14, 2017
16
个人不推荐用 git push 来做部署,建议都保持一致,
根据环境不同,生效的配置文件不同; 或者用部署工具来处理; |
|
andyLJul 14, 2017
17
两个 ignore 不能取个并集吗
|
|
bomblessJul 14, 2017
18
建议配置直接 ignore 掉,不要放 repo 里面
|
|
crazystoryJul 14, 2017
19
配置文件忽略才是常见的,一般只保留配置模板不会保留具体的值
|
|
marvinwilliamJul 14, 2017
20
需要放到 github 上的作为 git-submodule, 全部文件作为主项目,放到另外一个仓库
虽然 submodule 不是这么个用法,但应该可以满足你的需求.... |
|
ryd994Jul 14, 2017
21
配置文件单独部署
或者开个 deploy branch 每次 rebase |
|
cxbigJul 14, 2017
22
配置文件单独部署啊,那么多自动部署工具,一个文件再容易不过。
|
|
Miy4moriJul 15, 2017 via iPhone
23
难道生产环境的配置不都是加密在 CI 里的嘛?存仓库这事还真的干得出来?
|
|
24
@Miy4mori 本人对部署不太了解,希望寻求一些好思路。感谢各位。
|