教你写一个快速提交git代码的shell脚本


一、什么是shell脚本?

Shell脚本,就是利用Shell的命令解释的功能,对一个纯文本的文件进行解析,然后执行这些功能,也可以说Shell脚本就是一系列命令的集合。Shell可以直接使用在win/Unix/Linux上面,并且可以调用大量系统内部的功能来解释执行程序,如果熟练掌握Shell脚本,可以让我们操作计算机变得更加轻松,也会节省很多时间。

二、shell脚本能做什么?

1、git提交命令可以用shell缩短成一句话

2、更新某个工程sdk库

3、打包,编译等命令

4、批量上传空文件夹

5、总之能想到的终端命令都可以尝试着写,总之就是一个操作执行多个命令,简单方便

三、工作原理

wKioL1hLhIqDimSkAACW4Y1j1qE949.png

四、 废话不多说直接上代码

前提:需懂一些shell脚本语法,其实和PHP差不多。直接建一个.sh文件,比如我的就是:git-push.sh,直接在编辑器里面编写,执行命令就是 git-push.sh

我的项目都是在一个文件夹中,所以执行的时候会传递三个参数就是  git-push.sh  '项目带号'  '项目commit' '项目的分支'。

if [ ! $1 ]
then
  echo "####### 请输入自己的项目 #######"
  exit;
fi
 
if [ ! $2 ]
then
  echo "####### 请输入commit值 #######"
  exit;
fi
 
#给出一个默认的项目路径
path="/Users/duodian/Desktop/work/miniProgram"
 
case "$1" in
  "p")
  echo "PC项目"
  path="/Users/duodian/Desktop/work/web-pc"
  ;;
  "m")
  echo "小程序项目"
  path="/Users/duodian/Desktop/work/miniProgram"
  ;;
  "h")
  echo "H5项目"
  path="/Users/duodian/Desktop/work/web-h5"
  ;;
  "c")
  echo "后台项目"
  path="/Users/duodian/Desktop/work/circleManAdmin"
  ;;
esac
 
#先进入项目当中
 
cd $path
 
echo "####### 进入自己的项目 #######"
 
ls
 
echo "开始执行命令"
 
git add .
 
git status
 
#写个sleep 1s 是为了解决并发导致卡壳
 
sleep 1s
 
echo "####### 添加文件 #######"
 
git commit -m "$2"
 
echo "####### commit #######"
 
sleep 1s
 
echo "####### 开始推送 #######"
 
if [ ! $3 ]
then
  echo "####### 请输入自己提交代码的分支 #######"
  exit;
fi
 
git push origin "$3"
 
echo "####### 推送成功 #######"

五、alias 别名的使用

难道我们每次都得 敲 xxx/git-push.sh  '项目代号'  '项目commit' '项目的分支' 这么一大堆吗?每次都得先进到 .sh的文件夹中来执行这个命令吗?

我们可以命名一个别名,alias的作用就是将 为了让频繁使用的命令变的简单

语法:alias 【别名】=【命令】。如果alias后面没有值,则是现实所有的命令

步骤:

在根目录下 新建或者打开  ~/.bashrc

vim ./.bashrc

将自己想要执行的命令 用一个别名即可 

使别名生效  终端里面执行

source ~/.bashrc

执行效果:

屏幕快照 2020-05-15 下午5.58.54.png

可以的话,希望各位大佬给个小心心。还可以关注我的公众号,大家一起进步,一起学习!

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Git指令的Shell脚本,能够快速便捷地管理Git库,包括添加修改、提交修改、显示库状态、推送到远程库、从远程库更新到本地、版本恢复等操作。 使用方法: 1. 在Linux系统中,将本文件放在Git库目录下,利用Shell运行本文件; 2.在windows系统中,需下载安装与操作系统相对应的Git软件,并将本文件放在Git库目录下,双击即可运行。 运行示例: Please choose the first letter of options. [Add|Commit|Diff|Fetch|Exit|Help|Log|Push|User|Reset|Status]? h A: Add all changes to repository. C: Commit all changes to repository. D: Show differences between current version with HEAD->. E: Exit shell script. F: Fetch origin/master and merge. L: Show latest two-weeks logs of repository. P: Push commissions to origin/master. U: User command mode(Press ‘Enter’ to exit). R: Reset current version according version_id. S: Show status of repository. Please choose the first letter of options. [Add|Commit|Diff|Fetch|Exit|Help|Log|Push|User|Reset|Status]? s On branch master Your branch is up-to-date with 'origin/master'. Changes not staged for commit: (use "git add ..." to update what will be committed) (use "git checkout -- ..." to discard changes in working directory) modified: Git.sh modified: PyNote/PyNote_2.md no changes added to commit (use "git add" and/or "git commit -a") Please choose the first letter of options. [Add|Commit|Diff|Fetch|Exit|Help|Log|Push|User|Reset|Status]? a On branch master Your branch is up-to-date with 'origin/master'. Changes to be committed: (use "git reset HEAD ..." to unstage) modified: Git.sh modified: PyNote/PyNote_2.md

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值