Git交互式hunk暂存能否通过正则模式实现部分自动化?
Git 交互式暂存的自动化实现相关说明
向 git add 命令传入 -p 或 --patch 选项时,可交互式暂存Git中的基础变更块(即hunk),相关功能的详细说明可查阅Git官方命令手册的对应章节。
场景示例
以下示例参考了公开技术问答中的典型场景做了简化调整:
-this is the first line +this is the first change, don't stage it! -this is the second line +this is the second change, stage it! -this is the third line +this is the third change, ask me!
在该示例中,期望实现的效果类似运行命令:git add -p --automatic-y "second" --automatic-n "first"
具体的自动化规则为:
- 自动暂存内容匹配“second”的变更块
- 自动跳过、不暂存内容匹配“first”的变更块
- 仅对最后一个未匹配规则的变更块发起交互式问询
注:示例中的变更都是单行场景,对应的匹配逻辑可以很方便扩展,适配多行变更的识别需求。
核心需求
目前已经确认Git原生不支持上述带自动匹配规则的交互式暂存功能,核心待落地的能力支撑是:是否存在支持程序化获取、并独立暂存单个变更块的Git命令。
找到这类能力后,就可以编写脚本提前完成所有匹配规则的变更暂存/跳过操作,最后仅对未匹配规则的变更块运行交互式的 git add -p 流程。
内容的提问来源于stack exchange,提问作者Peeyush Kushwaha
相关产品推荐
相关产品推荐

