Apr
06
2024
git一步完成文件的 add, commit 和 push功能的命令(git合并命令实现快速提交代码)
作者:
绝缘体.. 发布:
2024-04-06 07:07 分类:
未分类 阅读:
抢沙发
使用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
微信扫一扫,打赏作者吧~