【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中导入该项目. 那么如何将修改后的代码再提交到码云上面? 第 ...
随机推荐
- python—DAY1
# user = "123"# possword = "111"# count = 0## while count < 3:# user_name = i ...
- codeblocks报错:cannot open output file bin\Debug\2.exe Permission denied
在任务管理器中也找不到正在执行的任务,以为清除了,但是重新编译文件报错. 解决办法: 打开W+R窗口,输入taskkill -IM 2.exe /F
- ul li data-* 数据的读取
<ul class="questions"> <li> <div class="question">1.您的年龄是?< ...
- Laravel Scout 开启队列, 自定义queue name和queue connection
scout.php的默认配置: 'queue' => env('SCOUT_QUEUE', false), 修改为: 'queue' => [ 'queue' => env('SCO ...
- Netty 基本组件与线程模型
Netty 的学习内容主要是围绕 TCP 和 Java NIO 这两个点展开的,由于 Netty 是基于 Java NIO 的 API 之上构建的网络通讯框架,Java NIO 中的几个组件,都能在 ...
- matlab中如何用rand产生相同的随机数
直接给链接:rand()产生相同随机数
- Linux matlab.desktop文件
matlab建立菜单文件老是闪退,须用 matlab -desktop 完整配置 matlab.desktop [Desktop Entry] Name=MATLAB Exec=/usr/local/ ...
- socket 简单了解
网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket. 建立网络通信连接至少要一对端口号(socket).socket本质是编程接口(API),对TCP/IP的 ...
- 计算机基础-C语言-16章-数组应用-计算字符串长度
字符数组的大小并不代表它所包含字符串的长度.需要通过检查结束符,才能判断字符串的实际长度. 数组和指针的关系
- 20155208徐子涵 Exp 6 信息搜集与漏洞扫描
20155208徐子涵 Exp 6 信息搜集与漏洞扫描 实验目的 掌握信息搜集的最基础技能与常用工具的使用方法 实验内容 (1)各种搜索技巧的应用 (2)DNS IP注册信息的查询 (3)基本的扫描技 ...