0

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

我认为它们之间仍然存在一些差异?

在此处输入图像描述

4

2 回答 2

2

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

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

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

于 2014-01-17T18:26:31.040 回答
2

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

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

于 2014-01-17T18:37:00.027 回答