Git 吉特克:这两者之间有什么区别;添加/删除字符串";及;更改匹配的行“;?

Git 吉特克:这两者之间有什么区别;添加/删除字符串";及;更改匹配的行“;?,git,gitk,Git,Gitk,在gitk中,当搜索提交时,有两个选项对我来说听起来是一样的——“添加/删除字符串”和“更改行匹配” 我想他们之间还是有区别的吧 好的,“添加/删除字符串”是指旧文件具有目标字符串的特定匹配项,而新文件没有,或者旧文件没有,而新文件有。换句话说,在不修改周围上下文的情况下添加或删除字符串(例如,“abc xyz def”->“abc def”,或“abc def”->“abc xyzdef”,如果目标字符串为“xyz”)。字符串可以是也可以不是整行 相反,“changing lines matc

gitk
中,当搜索提交时,有两个选项对我来说听起来是一样的——“添加/删除字符串”和“更改行匹配”

我想他们之间还是有区别的吧

好的,“添加/删除字符串”是指旧文件具有目标字符串的特定匹配项,而新文件没有,或者旧文件没有,而新文件有。换句话说,在不修改周围上下文的情况下添加或删除字符串(例如,“abc xyz def”->“abc def”,或“abc def”->“abc xyzdef”,如果目标字符串为“xyz”)。字符串可以是也可以不是整行

相反,“changing lines matching”是指与该字符串匹配的行上的任何更改,即使更改不影响该字符串。例如“abc xyz def”->“abc xyz def foo”

两者之间可能有很多重叠,但它们的不同程度足以在不同的情况下发挥作用。

好的,“添加/删除字符串”是指旧文件具有特定的目标字符串,而新文件没有,或者旧文件没有,而新文件有。换句话说,在不修改周围上下文的情况下添加或删除字符串(例如,“abc xyz def”->“abc def”,或“abc def”->“abc xyzdef”,如果目标字符串为“xyz”)。字符串可以是也可以不是整行

相反,“changing lines matching”是指与该字符串匹配的行上的任何更改,即使更改不影响该字符串。例如“abc xyz def”->“abc xyz def foo”


两者之间可能有很多重叠,但它们的差异足以在不同的情况下发挥作用。

“添加/删除字符串”只需逐字检查更改是否包含字符串。另一方面,“更改行匹配”将给定模式作为正则表达式应用,并查找与提供的正则表达式模式匹配的更改


相应的命令行选项是
-S
(添加/删除字符串)和
-G
(更改行匹配)。在命令行上,您还可以使用
-Sstring--pickaxe regex
,它将把pickaxe字符串视为正则表达式,但只有在提交中删除或添加pickaxe字符串时才匹配它(但如果它只是更改行的一部分,则不匹配)。

添加/删除字符串只需逐字检查更改是否包含字符串。另一方面,“更改行匹配”将给定模式作为正则表达式应用,并查找与提供的正则表达式模式匹配的更改

相应的命令行选项是
-S
(添加/删除字符串)和
-G
(更改行匹配)。在命令行上,您还可以使用
-Sstring--pickaxe regex
,它将把pickaxe字符串视为正则表达式,但只有在提交中删除或添加它时才匹配它(但如果它只是更改行的一部分则不匹配)