“其提交消息与给定的正则表达式匹配”是否限定为“最小提交”或“ rev”?

时间:2019-01-17 23:16:39

标签: git

Git Pocket Guide说

rev^regexp
     

例如HEAD^{/"fixed pr#1234"};这选择   可从rev到达的最小提交,其提交消息与   给定正则表达式。

“其提交消息与给定的正则表达式匹配”是否限定“  最年轻的提交”或rev

我的英语不太好,对于这种情况和类似情况我始终不确定。

谢谢。

1 个答案:

答案 0 :(得分:1)

rev可以。来自gitrevisions ...

  

<rev>^{/<text>},例如HEAD^{/fix nasty bug}

     

版本参数的后缀^,然后是包含一个              以斜杠开头的文本与下面的:/fix nasty bug语法相同,除了              该 它返回可从<rev>访问的最年轻的匹配提交              在^ 之前。

请注意,它不是整个存储库中最年轻的提交。这是从<rev> 可以访问的最年轻的提交。如果您想要整个回购中最小的,请使用:/<regexp>

  

:/<text>,例如:/fix nasty bug

     

冒号,后跟斜杠,后跟文本,命名其提交的提交              message与指定的正则表达式匹配。此名称返回 最匹配的提交,可从任何引用(包括HEAD )访问。的              正则表达式可以匹配提交消息的任何部分。匹配消息              以字符串开头,可以使用例如:/ ^ foo。特殊顺序:/!是              为匹配项保留修饰符。 :/!-foo执行否定匹配,              而:/ !! foo匹配文字!字符,然后是foo。任何其他              以:/!开头的序列暂时保留。根据给定的文字,              外壳的分词规则可能需要附加引号。

如果您意识到Git历史不像一堆煎饼那么有意义。这是directed graph。 git历史看起来像这样...

------ time -------->

              [HEAD]
A <- B <- C <- D [master]
           ^
            \
             E <- F <- G [feature]

这显示了已签出master分支的存储库。它还有一个feature分支,其提交比master还年轻。 G是存储库中最年轻的提交,而D是masterHEAD可以到达的最年轻的提交。

HEAD^{/fix nasty bug}将在D中搜索fix nasty bug,然后依次搜索C,B,A。由于连接是单向的,因此无法搜索E,F或G,因为它们无法到达来自HEAD