likes
comments
collection
share

【解放双手】一句git命令,提交本地修改到当前分支,并自动合并到test分支

作者站长头像
站长
· 阅读数 11

【背景】 在日常需求开发过程中,大家是不是通常在某个feature/a需求分支开发,需求完成之后,需要将feature/a分支合并到test分支,触发ci/cd,部署测试环境,通常这个过程中使用的的git命令每次都是一样的,如果处于需求提测阶段,需要重复执行这个这一系列命令来将本地代码提交并合并到测试分支,来触发测试环境部署

无冲突情况下将本地修改提交并部署到测试分支,一共需要7个命令,如果期间存在eslint校验,还需要异步等待commit

# 提交修改
git add .
git commit -m 'feat: 一次修改'
git push

# check到test分支
git checkout test
git pull
# 合并feature/a分支
git merge feature/a
git push

纯纯属于重复且高频的工作,其实我一直想弄个工具来处理,一直比较忙,今天刚刚好找个一个完美解决方案

【分析】 这种把多个命令揉合成一个命令的功能,选型上,要么使用bash脚本,要么使用git aliasbash能做的事情非常灵活,但是如果git alias能实现的话,配置完之后,全局通用,更方便,换电脑也能快速处理

问题点:

1、git 如何获取当前分支名?(可以通过:git rev-parse --abbrev-ref HEAD 解决)

2、git alias是否支持定义变量并传递? (支持)

【方案】

1、配置全局的命令

git config --global --edit

2、加入我们的alias

[alias]

        pt = "!f() { branch=$(git rev-parse --abbrev-ref HEAD); git add . && git commit -m \"$branch: $1\" && git push && git ck test && git pull && git merge $branch && git push; }; f"

3、关闭 merge 命令产生的 commit 文案编辑器

【解放双手】一句git命令,提交本地修改到当前分支,并自动合并到test分支

git config --global core.editor true

【最终效果】

【解放双手】一句git命令,提交本地修改到当前分支,并自动合并到test分支

之前7条git命令,重复n次,现在一条命令解决所有