【git】之使用shell脚本提交代码
为减少提交步骤,防止提交错误,使用Shell脚本进行git提交不失一件好事
#!/bin/sh
# @author Hubal
# @Email Hubal@123.com
# @createBy --
# Shell脚本提交git代码 简单,快速,高效
#
author = Hubal
echo ' >>>>>> start push <<<<<< '
echo " ====== 当前分支 ====== "
branch= git branch
echo $branch # 判断参数1是否包含参数2
contains_str(){
# echo " >>> $1 <<< "
# echo " <<< $2" contains_result=$(echo $ | grep "${2}")
if [[ -n $contains_result ]] ; then
return
else
return
fi } git_add(){
echo ">>>>>> 执行 git add 之前,本地文件状态如下 <<<<<<"
git status
statusResult=$(git status)
no_change="nothing to commit" contains_str "$statusResult" "$no_change" if [[ $? == ]]; then
echo "=== 当前没有新增或者修改的文件 ==="
git_push
exit
fi read -p "是否确定add?Y|N : " add_params
if [[ $add_params == "Y" || $add_params == "y" ]]; then
git add .
else
exit
fi
} git_commit(){
echo ">>>>>> 执行 git commit 之前,本地文件状态如下 <<<<<<"
git status
read -p "是否确定commit?Y|N : " commit_params
if [[ $commit_params == "Y" || $commit_params == "y" ]] ; then
read -p "请输入commit信息: " commit_msg
if [ -z $commit_msg ] ; then
git commit -m "git commit by $author" .
else
git commit -m $commit_msg .
fi
elif [[ $commit_params == "N" || $commit_params == "n" ]] ; then
exit
else
exit
fi
} git_push(){
echo ">>>>>> 执行 git push 之前,本地文件状态如下 <<<<<<"
git status
current_branch=$(git symbolic-ref --short -q HEAD)
echo ">>>>>> 当前分支:$current_branch <<<<<<"
read -p "是否确定push?Y|N : " push_confirm
if [[ $push_confirm != "Y" && $push_confirm != "y" ]]; then
echo ">>>>>> end push <<<<<<"
exit
fi
read -p "请输入远程git地址别名,默认是origin: " origin_params
echo -e "\n"
read -p "请输入远程分支名称,默认是当前分支: " branch_params
push_result="";
if [[ -z $origin_params && -z $branch_params ]]; then
echo ">>>>>> push origin $current_branch"
sleep
git push origin $current_branch elif [[ -n $origin_params && -n $branch_params ]]; then
echo ">>>>>> push $origin_params $branch_params"
sleep
git push $origin_params $branch_params elif [[ -z $origin_params && -n $branch_params ]]; then
echo ">>>>>> push origin $branch_params"
sleep
git push origin $branch_params elif [[ -n $origin_params && -z $branch_params ]]; then
echo ">>>>>> push $origin_params $current_branch"
sleep
git push $origin_params $current_branch
else
echo ">>>>>> end push <<<<<<"
fi } read -p "默认push当前分支,Q代表quit,其他单词代表切换分支 : " branch
if [[ $branch == "Y" || $branch == "y" || -z $branch ]] ; then
# echo "你输入的是: $branch "
statusResult=$(git status)
to_commit="Changes to be committed"
contains_str "$statusResult" "$to_commit"
if [[ $? != ]]; then
git_add;
else
git add .
echo " ====== 本地没有需要add的文件,直接commit ====== "
fi
git_commit;
git_push;
exit; elif [[ $branch == "Q" || $branch == "q" ]] ; then
# echo "你输入的是: $branch ,代表退出当前操作!"
exit
else
git checkout $branch
echo -e "当前分支: \n $(git branch) "
git_add;
git_commit;
git_push;
exit;
fi
【git】之使用shell脚本提交代码的更多相关文章
- 通过shell脚本实现代码自动化部署
通过shell脚本实现代码自动化部署 一.传统部署方式及优缺点 1.传统部署方式 (1)纯手工scp (2)纯手工登录git pull.svn update (3)纯手工xftp往上拉 (4)开发给打 ...
- Myeclipse如何使用自带git工具向远程仓库提交代码(转)
Myeclipse如何使用自带git工具向远程仓库提交代码 第一步:将改动的代码标记 项目右键:team->synchronize workspace 点击确定 项目右键>add to g ...
- Apache下通过shell脚本提交网站404死链
网站运营人员对于死链这个概念一定不陌生,网站的一些数据删除或页面改版等都容易制造死链,影响用户体验不说,过多的死链还会影响到网站的整体权重或排名. 百度站长平台提供的死链提交工具,可将网站存在的死链( ...
- shell重温---基础篇(shell变量&字符串以及git GUI运行shell脚本方式)
既然是基础篇那肯定是需要对shell的各种需要注意的基本点进行说明了.接下来就是show time... shell呢,是一个用C语言编写的应用程序,是用户使用linux的桥梁.所以呢,他既是一 ...
- 采用shell脚本统计代码的行数
刚毕业那会儿有一次去台湾公司面试,我问多行代码怎么写.我从来没有想过这个问题,粗略计算,.惊叹:大概几十万行不行. 最近整理资料,看着eclipse左边全面上市,我觉得这个东西.代码共同拥有的行倒底总 ...
- mac链接linux终端,shell脚本发布代码
项目的业务需求:从mac端直接连上linux服务终端,并发布相关的代码 一.使用ssh链接上linux服务端 1.cd ~/.ssh 2.vi config,按照下面的内容配置config文件,然后: ...
- git创建仓库,并提交代码(第一次创建并提交)(转)
一直想学GIT,一直不曾学会.主要是GUI界面的很少,命令行大多记不住.今天尝试提交代码,按GIT上给的方法,没料到既然提交成功了. 于是把它记下来,方便以后学习. 代码是学习用的,没多大意义: 下图 ...
- Git创建远程分支并提交代码到远程分支
1.可以在VS中新建分支 2.可以通过git branch -r 命令查看远端库的分支情况 这些红色都是远程的分支 3.从已有的分支创建新的分支(如从master分支),创建一个dev分支 (不用vs ...
- Myeclipse如何使用自带git工具向远程仓库提交代码
先看一下Myeclipse自带的git工具 本人是在码云上面注册的账号,上面有项目的仓库,将仓库的项目克隆到本地之后,在myeclipse中导入该项目. 那么如何将修改后的代码再提交到码云上面? 第 ...
随机推荐
- 微信小程序拒绝授权,反复调起原生授权框。
最近堕落了,有一阵子没有更新博客园了.一是比较忙,其次也没什么好的题材和工作中的解决方案可以分享的,想想还是把罕见的反复调起原生小程序授权框的方案拿出来说说. 市面上常见的解决方案是第一次拒绝后, ...
- 2017年5月17日20:14:29 rabbitmq 消费 异常信息无法处理 导致轮询
同事说如果同步的配置的正确的话不会出现这种问题 只有异常的情况下才会,但是 我就真的出现了//TODO 等我有时间的时候再查查看. 如果是异步的出现这种问题的话 包进AmqpRejectAndDont ...
- JavaScript的popup框
JavaScript中可以创建三种消息框:警告框.确认框.提示框. 1.警告框 警告框经常用于确保用户可以得到某些信息. 当警告框出现后,用户需要点击确定按钮才能继续进行操作. 语法:alert(&q ...
- Filter 中空指针错误
Filter 是过滤器,凡是通过servlet JSP 的请求需要filter 进行过滤或者拦截操作,保证数据的合法或者逻辑正确性 但是写第一个filter 配置完成后,发现jsp 文件进不去了,直 ...
- thinkphp5.0--编写api,返回json格式
前几天没有写php代码,今天写了一下,今天的任务主要是构建自己的异常体系类,出现一个问题,就是返回结果不是json格式,而是一个页面,我找了一两个小时,没有找到问题,以为代码的问题,用断点调试了一通, ...
- Error: “app_name” is not translated in af
in values/strings.xml "app_name" is not translated in af, am, ar, be, bg, ca, cs, da, de ...
- apply,call以及bind的区别
每个函数都包含两个非继承而来的方法:apply()和 call(). 这两个方法的用途都是在特定的作用域中调用函数,实际上等于设置函数体内 this 对象的值. 一.apply() apply()方法 ...
- redis服务问题解决办法
Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.ps aux|grep redis部署虚拟机失败,代码中添加任 ...
- Measuring Text Difficulty Using Parse-Tree Frequency
https://nlp.lab.arizona.edu/sites/nlp.lab.arizona.edu/files/Kauchak-Leroy-Hogue-JASIST-2017.pdf In p ...
- Python学习笔记,day2
Python学习第二天 一.模块 使用模块前需在代码最前声明(import) 二.数据类型 1.数字 int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2 ...