我想要一个命令可以让我做类似的事情:
git manual-add some_file.txt 10..20
这相当于:
git add -p some_file.txt
并说y
仅包含第 10 行到第 20 行的大块。
是否有内部 git 命令可以让我执行此操作?有没有any怎么办?
您可以利用git add -e
命令并将脚本作为编辑器传递给它(在下面的示例中,它被命名为filterpatch
),它将根据您的要求编辑补丁(请参阅文档中的“编辑补丁”部分git add https://git-scm.com/docs/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
正确编写脚本 - 它必须解析差异并取消选择不属于目标范围的块。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)