gpt4 book ai didi

Git 命令以编程方式将文件的一系列行添加到索引?

转载 作者:太空狗 更新时间:2023-10-29 13:12:02 26 4
gpt4 key购买 nike

我想要一个可以让我做类似事情的命令:

git manual-add some_file.txt 10..20

相当于:

git add -p some_file.txt

并且只对包含第 10 行到第 20 行的 hunk 说 y

是否有内部 git 命令可以让我这样做?有什么方法可以做到吗?

最佳答案

您可以利用 git add -e 命令并将脚本作为编辑器传递给它(在下面的示例中,它被命名为 filterpatch),它将根据您的要求编辑补丁(请参阅 git add 文档中的“编辑补丁”部分):

EDITOR="filterpatch 10..20" git add -e some_file.txt

为方便起见,您可以添加一个 git 别名,如下所示:

git config alias.manual-add '!EDITOR="filterpatch $2" git add -e $1; :'

一个愚蠢的 filterpatch 脚本示例,它在补丁的指定范围内为所有添加的行添加一个 foo 前缀:

#!/bin/bash -x

sed -i "$1 s/^+\([^+]\)/+foo \1/" "$2"

使用示例:

git manual-add some_file.txt 13,16

所以剩下的部分是关于正确实现 filterpatch 脚本 - 它必须解析 diff 并取消选择不属于目标范围的 hunks。

关于Git 命令以编程方式将文件的一系列行添加到索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40169726/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com