我们在日常执行代码提交的时候最常执行的命令流程为:git add -A
git commt -m"commit something"
git pull
git push
而在前三个步骤,大多数情况下是不会出现问题,经常性的顺序敲三个命令,是否可以偷懒一下只执行一句命令呢?我们来试一下用shell脚本执行以上三个步骤。
新建shell脚本
我们在某个路径下建一个.sh文件,为了将偷懒发挥到极致,就选择 "/" 根目录路径吧。cd /
sudo vi gitpull.sh
英文模式下按 "i" 进入编辑模式,
考虑到每次commit要写备注,我们就用shell的传参方式实现备注信息的传入。考虑到 git pull 之后可能需要解决代码冲突,所以自动执行脚本只到 git pull 这一步而已。 脚本内容为:
msg=$1 # $1为第一个参数
git add -A
git commit -m"${msg}"
git pull
git status
按“esc”键退出编辑模式, shift + 冒号 ,输入“wq”保存退出vim 编辑器。
赋予脚本权限
此时执行脚本会报权限不足的错误,我们还需要给 .sh脚本赋予权限chmod 755 gitpull.sh
开始偷懒吧
我们 cd 到项目里,对文件进行改动,如,新建一个 test.txt 文件touch test.txt
查看状态:git status
发现 text.txt 文件待 add ,开始执行我们的提交脚本吧/gitpull.sh 提交测试文件
刷拉拉下来,完成提交以及 pull,肉眼查看没有冲突,然后就可以进行 git push 推到远程库了。
优化
以上脚本已经实现了 git add -A 到 git pull 的日常提交操作,有个小问题就是,当你手快忘记写注释,如/gitpull.sh
此时执行到 git commit -m"${msg}" 是会停止的。为了更友好,我们把提示信息添加上去吧,修改脚本如下:
msg=$1
if [ -n "$msg" ]; then
git add -A
git commit -m"${msg}"
git pull
git status
echo "完成add、commit、pull,别忘了push"
else
echo "请添加注释再来一遍"
fi
好了,如此,在没有添加注释的时候就会有提示了 ,在需要日常提交的时候使用一下命令即可,记得最后要 push/gitpull.sh something
作者:Mr_禤
链接:https://www.jianshu.com/p/f2df5356a539
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。