此脚本用来实现一键自动将本地的开发分支代码提交到远程分支
1, 在本地开发分支中新建gitpush.sh文件
vim gitpush.sh
2, 将以下代码复制进shell文件中
#!/bin/bash
echo -e "git push start\n "
recent_file_folder=$(cd $(dirname ${BASH_SOURCE[0]}); pwd ) #/opt/wwwroot/tob/web/be
section=${recent_file_folder##*/} #be
git_branch=`git symbolic-ref --short -q HEAD | grep '**'` #具体的开发分支,如requirment170914
echo -e "开始推送$section的$git_branch分支\n"
gitpull_results=`git pull | grep '**'`
if [[ $gitpull_results =~ 'remote: Compressing objects: 100%' ]];then
echo -e "已经拉取$git_branch分支远程代码到本地\n"
elif [[ $gitpull_results =~ 'Already up-to-date.' ]];then
echo -e "当前$git_branch分支代码已是最新代码\n"
else
echo -e "拉取$git_branch分支代码失败,退出脚本\n"
# exit
fi
gitstatus_results=`git status | grep '**'`
if [[ $gitstatus_results =~ '尚未暂存以备提交的变更:' ]];then
git add .
git commit -m "$1"
echo -e "正在提交$git_branch 备注 $1\n"
gitpush_results=`git push | grep '**'`
if [[ $gitpush_results =~ '写入对象中: 100%' ]];then
echo -e "完成推送$section的$git_branch分支\n"
fi
fi
echo "git push finish"
3, 给此文件添加执行权限
chmod +x gitpush.sh
4, 为防止将此文件随着代码一起提交到远程代码库,在.gitignore文件中添加入此文件,并:wq保存退出
vim .gitignore
gitpush.sh
~
~
5, 在需要提交代码时,在分支目录中直接执行命令即可,注意加上此次提交的备注
c80k2@c80k2-Vostro-3667❯/opt/wwwroot/tob/web/be(archives171013)$ ./gitpush.sh 备注部分
6, 结果如下