Git Pocket Guide说
rev^regexp
例如
HEAD^{/"fixed pr#1234"}
;这选择 可从rev
到达的最小提交,其提交消息与 给定正则表达式。
“其提交消息与给定的正则表达式匹配”是否限定“
最年轻的提交”或rev
?
我的英语不太好,对于这种情况和类似情况我始终不确定。
谢谢。
答案 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是master
和HEAD
可以到达的最年轻的提交。
HEAD^{/fix nasty bug}
将在D中搜索fix nasty bug
,然后依次搜索C,B,A。由于连接是单向的,因此无法搜索E,F或G,因为它们无法到达来自HEAD
。