我在部署生产环境的时候会很头痛,很多项目配置不在一起,一个一个手动修改会很麻烦, 我试了一下用git patch功能来保存一份生产环境的配置

生成patch

git diff master prod > patch

prod为生产环境的分支 可以用一个临时的分支 生成patch后删除即可,也可一直维护一个生产环境的分支用于发布合并开发分支的代码,patch可能是下面这个样子的

cat aliyun_prod_lss_log.patch

diff --git a/analyse/analyse.sh b/analyse/analyse.sh
index f32f1ec..b07215a 100755
--- a/analyse/analyse.sh
+++ b/analyse/analyse.sh
@@ -5,4 +5,6 @@ cd `dirname $0`
 node analyse_performance.js > analyse_performance.log 
 Rscript strategy_performance.R
 
+echo "PS:来自生产环境的问候" >> analyse_performance.log
+
 cat analyse_performance.log  | mutt zunceng@zenzet.com -s "`date "+日志分析结果(%Y-%m-%d)"`" -a strategy_performance.pdf  -c jeffin@zenzet.com -c j@zenzet.com
diff --git a/analyse/strategy_performance.R b/analyse/strategy_performance.R
index 1169689..242935b 100644
--- a/analyse/strategy_performance.R
+++ b/analyse/strategy_performance.R
@@ -67,12 +67,12 @@ lss_log.decrypt_performance <- function(con){
 
 
 main <- function(){
-    con <- dbConnect(MySQL(), 
-        dbname = "*****", 
-        username="*****",
-        password="*****",
-        host="*****dev.mysql.rds.aliyuncs.com",
-        port=3306);
+    con <- dbConnect(MySQL(), 
+        dbname = "*****", 
+        username="*****",
+        password="*****",
+        host="*****db.mysql.rds.aliyuncs.com",
+        port=3306);

这里我的生产环境需要修改的地方可能会在多个地方 主要是在不同的语言中读配置我懒没去做 (逃

在生产环境上打上这个patch

    git apply patch

这样就完成了

PS: 还没完 看应该是我把prod当成主分支 把master当成开发分支用了, 后面用的时候发布新版本就从 master合并到prod吧。。。