使用脚本自动执行Git命令同步代码

shell 专栏收录该内容
1 篇文章 0 订阅

前情摘要

随着小明公司项目越做越大,加之使用微服务架构,导致公司的项目越拆越多,在团队里的负责十几个service,这时出现了一个问题,service数量多了,每天同步代码是个非常头疼的问题,由于在业务上升期,每个service都在不断迭代,所以虽然同步代码的工作既重复又没有技术含量但是又不得不做,小明同学深受其害!!!

解决问题

小明同学想着如果能自动执行这些重复代码就可以省很多事,就这样开始着手写脚本。。。

#!/bin/
time=$(date "+%Y-%m-%d %H:%M:%S")
echo "##################${time} Begin Sync Code#######################"  >> syncLog.txt 2>&1
##common
cd common
common_branch_name=`git symbolic-ref --short -q HEAD`
echo "###common's current branch is ${common_branch_name}###" >> ../syncLog.txt 2>&1
git checkout master >> ../syncLog.txt 2>&1
git fetch upstream >> ../syncLog.txt 2>&1
git rebase upstream/master >> ../syncLog.txt 2>&1
git push >> ../syncLog.txt 2>&1
git checkout $common_branch_name >> ../syncLog.txt 2>&1
git rebase master >> ../syncLog.txt 2>&1
git push >> ../syncLog.txt 2>&1

##api
cd ../api
api_branch_name=`git symbolic-ref --short -q HEAD`
echo "###api's current branch is ${api_branch_name}###" >> ../syncLog.txt 2>&1
git checkout master >> ../syncLog.txt 2>&1
git fetch upstream >> ../syncLog.txt 2>&1
git rebase upstream/master >> ../syncLog.txt 2>&1
git push >> ../syncLog.txt 2>&1
git checkout $api_branch_name >> ../syncLog.txt 2>&1
git rebase master >> ../syncLog.txt 2>&1
git push >> ../syncLog.txt 2>&1

。。。每个service有一段脚本来执行代码的同步,并且把执行的输出保存在syncLog.txt里面,以便核对。

 

使用须知

1、注意:windows系统运行shell脚本,需要安装Git并配置环境变量。

2、syncCode.sh需要和项目同级目录,如果不同级目录的话,需要修改脚本里的路径。

3、运行syncCode.sh的目的是同步远端仓库代码,合并、push到自己的主分支,并同步到自己本地分支。

4、运行snycCode.sh的前提是本地未修改任何代码。切记!!!还没做到那么智能。如果本地有修改则会出现问题,具体可手动实践一下

5、运行该脚本之后,会在项目同级目录生成syncLog.txt文件,用来查看是否同步过程中的输出。

6、强烈建议:脚本运行之后,一定查看syncLog.txt文件进行确认。(有时候网络延迟会造成push失败等问题)

 

总结

由于本人实力有限,可能写出的脚本太过于基础,若有建议来增强,不胜感激。

  • 1
    点赞
  • 2
    评论
  • 2
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页

打赏

peng-peng-

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值