git一步完成文件的 add, commit 和 push功能的命令(git合并命令实现快速提交代码)

 
更多

使用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
打赏

本文固定链接: https://www.cxy163.net/archives/2983 | 绝缘体

该日志由 绝缘体.. 于 2024年04月06日 发表在 未分类 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: git一步完成文件的 add, commit 和 push功能的命令(git合并命令实现快速提交代码) | 绝缘体
关键字: , , , ,

git一步完成文件的 add, commit 和 push功能的命令(git合并命令实现快速提交代码):等您坐沙发呢!

发表评论


快捷键:Ctrl+Enter