0
点赞
收藏
分享

微信扫一扫

Linux的shell脚本创作经历

月半小夜曲_ 2022-01-05 阅读 53
linuxgitbash

效率是很重要的。将重复繁琐的事情交给计算机处理,工作效率变高的同时也解放了我们自己。
使用过git工具的同学应该很认可它,因为这个工具给软件版本管理任务带来巨大的便利。在工作中,我遇到以下两个问题。
1、git 提交代码把其他分支的merge到当前分支案例。
假如git库有分支a和b,本地库的分支为b分支,修改代码后commit,然而push的时候push到a分支。这样的话会把b分支的一些其他提交也给merge到a分支上。
2、手动添加reviewer
提交代码后需要在浏览器中添加reviewer,网站的访问速度较慢。

面对上面的问题我想通过设计一个shell脚本。这个脚本可以自动判断当前分支并完成提交,同时可以接收参数,参数是reviewer的邮箱前缀。

首先创建一个名为gitpush.sh的脚本文件。下面是脚本的内容。

#!/bin/bash

这行要写上。是指此脚本使用/bin/bash来解释执行。

#获取当前分支
current=`git branch -a | grep \*`

上面的行命令中的符号`,在键盘Tab键上面,数字键1左侧。命令 git branch -a | grep * 在shell终端中执行后输出【* 当前的分支名】。但是在脚本中运行时,current中存储了当前git库中的所有目录和文件名,最后一个是当前的分支名。(不知道为什么)

current_branch=${current##* }

这行命令就是从current字符串最后一次出现空格的位置开始,截取空格右边的所有字符。

echo -e "Current branch is ""\033[33m$current_branch\033[0m"

这句话,就是让current_branch以黄色显示。

current_remote=`git remote`

获取远程仓库名。

git push $current_remote HEAD:refs/for/$current_branch%r=$1@email.com,r=$2@email.com

获取到需要的参数后,就可以提交代码了。$0是脚本的名字,我们不需要。这里的$1和$2是运行此脚本输入的参数,比如:

root:~/MyDemo# .gitpush.sh zhangsan lisi

注意事项:
.sh脚本在windows系统下编写的,可能有不可见字符。脚本编写完后,特别要注意脚本的格式,否则可能会报bad interpreter: No such file or directory异常。通过命令set ff=unix 或 set fileformat=unix修改。
需要给这个.sh添加可运行权限: chmod u+x gitpush.sh。

举报

相关推荐

Linux的shell脚本

Linux shell脚本

Linux Shell脚本

Linux的Shell脚本详解

linux shell脚本模板

【Linux】shell脚本教程

linux shell脚本学习

0 条评论