gitk:“添加/删除字符串”和“更改行匹配”有什么区别?

时间:2014-01-17 16:31:28

标签: git gitk

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

我认为他们之间还存在一些差异?

enter image description here

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:2)

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

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