使用git做代码提交每次都要不厌其烦的三步走:
git add include/mysql.php git commit -m "增加XXX接口文件,实现XXX功能" git push
时间长了,发现大部分时间都浪费在敲这几个命令上了,今天自己写了一个方法,直接一条命令实现上述三步的功能。具体实现如下:
vim ~/.bashrc
在该文件中增加如下函数:
function g() { log=$1 files=$2 if [ ! -n "$log" ]; then echo "必须输入提交说明" return fi if [ ! -n "$files" ]; then files="." fi #git pull git fetch git merge --no-edit git add $files git commit -m "$1" git push }
添加并保存完毕。
source ~/.bashrc 或执行一下 bash 命令。
然后就可以通过如下命令直接做提交了。
(1)仅提交include/mysql.php文件
g "增加XXX接口文件,实现XXX功能" include/mysql.php
(2)提交当前目录即子目录的所有文件
g "增加XXX接口文件,实现XXX功能"
以上是在 linux 下的快捷操作命令,对应的 windows 下的批处理命令脚本大概如下:
@echo off rem git add git commit git push 三步合并操作简写 :g set "log=%1" set "files=%2" if "%log%"=="" ( echo 必须输入提交说明 goto :eof ) if "%files%"=="" ( set "files=." ) git add %files% git commit -m "%log%" git fetch git merge --no-edit git push :: 功能到此为止,下面的脚本是做一些自定义的操作,如果不需要,可以删除 :: 下面的功能是判断是在 merak 项目目录下,当 push 出去了之后自动请求测试环境的拉取代码的接口操作 :: 获取当前的分支名 for /f "delims=" %%a in ('git rev-parse --abbrev-ref HEAD') do ( set "branch=%%a" ) set "searchString=merak" set "waitSecond=3" :: 获取当前工作目录的完整路径 set "FullPath=%CD%" :: 当前目录名称 set "DirName=" :: 提取当前工作目录的名称(不包括路径) for %%D in ("%FullPath%") do set "DirName=%%~nxD" if "%DirName%"=="%searchString%" ( curl https://www.phpernote.com/merak-base/pull-code?action=info echo. curl https://www.phpernote.com/merak-base/pull-code?action=pull echo. echo 等待%waitSecond%秒钟...... timeout /t %waitSecond% >nul curl https://www.phpernote.com/merak-base/pull-code?action=info ) goto :eof