gpt4 book ai didi

ruby - 没有注释的 Git diff

转载 作者:数据小太阳 更新时间:2023-10-29 07:17:00 26 4
gpt4 key购买 nike

假设我在文件 hello.rb 中添加了两行.

# this is a comment
puts "hello world"

如果我这样做 git diff ,它会显示我添加了两行。

我不希望 git 显示任何一行 Ruby 注释。我尝试使用 git diff -G <regular expression> ,但它对我不起作用。我该怎么做git diff这样它就不会显示任何 Ruby 注释?

最佳答案

一种可能性是(ab)使用 git 的 textconv filters 差异创建之前应用,因此您甚至可以转换二进制格式以获得人类可读的差异。

您可以使用任何从文件读取并写入 stdout 的脚本,例如删除所有以 # 开头的行的脚本:

#!/bin/sh
grep -v "^\s*#" "$1" || test $? = 1

(test $? = 1 更正 grep 的退出代码,详见 https://stackoverflow.com/a/49627999/4085967。)

对于 C,有一个 sed 脚本可以删除注释,我将在下面的示例中使用它。下载脚本:

cd ~/install
wget http://sed.sourceforge.net/grabbag/scripts/remccoms3.sed
chmod +x remccoms3.sed

将它添加到你的 ~/.gitconfig:

[diff "strip-comments"]
textconv=~/install/remccoms3.sed

将其添加到存储库的 .gitattributes 以针对某些文件类型启用它:

*.cpp diff=strip-comments
*.c diff=strip-comments
*.h diff=strip-comments

主要的缺点是这将始终默认启用,您可以使用 --no-textconv 禁用它。

关于ruby - 没有注释的 Git diff,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18734077/

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