当前位置: 首页 > news >正文

给 git 添加扩展命令

公司里的 git 代码分支既没有和 issue 关联,也没有和 review 关联,每次找起来太费劲。于是,写个脚本吧!

没想到 git 添加扩展命令这么方便,早知道这么简单,我的好多工具都做成 git 插件好了!

编写脚本

1. 创建 Git 扩展命令

在任意位置,创建一个名为 git-review 的 Bash 脚本

/bin/bash# 查找项目根目录
git_dir=$(git rev-parse --git-dir 2> /dev/null)if [ -z "$git_dir" ]; thenecho "Not a git repository."exit 1
fi# 获取当前分支名称
branch=$(git rev-parse --abbrev-ref HEAD)# 设置存储 review URL 的文件路径
review_file="$git_dir/review_urls"case "$1" in"http://"* | "https://"* )# 如果提供了一个 URL,记录到文件echo "$branch: $1" >> "$review_file"echo "Review URL saved for branch $branch.";;"list" )cat "$review_file";;"" )# 如果没有提供 URL,显示当前分支的 URLif [ -f "$review_file" ]; thenurl=$(grep "^$branch: " "$review_file" | sed "s/^$branch: //")if [ -n "$url" ]; thenecho "$url"elseecho "No review URL found for branch $branch."echo "Use 'git review <URL>' to add a review URL."fielseecho "No review URL found for branch $branch."echo "Use 'git review <URL>' to add a review URL."fi;;* )echo "Usage: git review [URL]";;

2. 给脚本赋予执行权限:

在终端中运行以下命令:

chmod +x git-review

3. 将脚本移动到 Git 的可执行路径

可以将脚本移动到你的 PATH 中,例如:

mv git-review /usr/local/bin/

使用命令:

1. 记录 review URL:

git review https://github.com/raywill/git-review/pull/212372

2. 查看当前分支的 review URL:

git review

3. 查看所有分支的 review URL:

git review list

相关文章:

  • Qt实现远程开关机
  • Flink Lookup Join的工作原理、性能优化和应用场景
  • systemd使用入门
  • 数据结构——顺序表(基础代码题)
  • golang 如何生成唯一的 UUID
  • 一个OpenHarmony rk3568编译问题
  • 品牌增长新引擎:TikTok达人内容营销策略解析
  • 6--苍穹外卖-SpringBoot项目中菜品管理 详解(二)
  • spring boot 项目中redis的使用,key=value值 如何用命令行来查询并设置值。
  • Python编码系列—Python访问者模式:为对象结构添加新功能的艺术
  • 如何快速免费搭建自己的Docker私有镜像源来解决Docker无法拉取镜像的问题(搭建私有镜像源解决群晖Docker获取注册表失败的问题)
  • vue3 商城系统中的 sku 功能的实现
  • 优秀在线 notion 头像制作工具分享-Notion Avatar Maker
  • 35 | 实战一(下):手把手带你将ID生成器代码从“能用”重构为“好用”
  • Chromium 设置页面打开系统代理源码分析c++
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 【译】理解JavaScript:new 关键字
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • Fastjson的基本使用方法大全
  • Java 23种设计模式 之单例模式 7种实现方式
  • Java编程基础24——递归练习
  • JDK9: 集成 Jshell 和 Maven 项目.
  • MySQL的数据类型
  • Python3爬取英雄联盟英雄皮肤大图
  • React as a UI Runtime(五、列表)
  • scrapy学习之路4(itemloder的使用)
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • Spark RDD学习: aggregate函数
  • uni-app项目数字滚动
  • 动态魔术使用DBMS_SQL
  • 看域名解析域名安全对SEO的影响
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 深度学习在携程攻略社区的应用
  • 时间复杂度与空间复杂度分析
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • #java学习笔记(面向对象)----(未完结)
  • #微信小程序:微信小程序常见的配置传值
  • #职场发展#其他
  • $LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutParams
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (3)医疗图像处理:MRI磁共振成像-快速采集--(杨正汉)
  • (ISPRS,2021)具有遥感知识图谱的鲁棒深度对齐网络用于零样本和广义零样本遥感图像场景分类
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (转)jdk与jre的区别
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • .Net CoreRabbitMQ消息存储可靠机制
  • .NET Core跨平台微服务学习资源
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .Net--CLS,CTS,CLI,BCL,FCL
  • .net中的Queue和Stack
  • @Query中countQuery的介绍
  • [ vulhub漏洞复现篇 ] Grafana任意文件读取漏洞CVE-2021-43798
  • [ vulhub漏洞复现篇 ] Hadoop-yarn-RPC 未授权访问漏洞复现
  • [001-03-007].第07节:Redis中的管道
  • [1]从概念到实践:电商智能助手在AI Agent技术驱动下的落地实战案例深度剖析(AI Agent技术打造个性化、智能化的用户助手)