git是否有任何官方语法可以插入到提交消息中以引用先前的更改集? E.g:
Oops. Adding files accidentally missed out from #7557bd82e2d0c7335319392b4bcb178ce0b9620f
或者Git没有打扰定义这些内容,并将其留给用于显示消息的工具(例如Github或Assembla)?
在哪种情况下,有没有人知道Assembla是否有任何这样的语法,希望将引用转换为该变更集的链接?如果GitHub有这个语法,那么Assembla可能会复制它们......
答案 0 :(得分:4)
在Git中,没有“之前的提交”这样的东西。在给定的点上有一个先前的提交,但在合并之后,新的提交可能会进入分支并插入“当前提交”和“先前提交”之间。
但是,Assembla 可以链接到git变更集日志中的特定提交。如果您知道要链接的确切sha或HEAD,可以使用Assembla的标记:
以下是一些例子:
[[r:c27dbd5d84dfa9302c47a26196221c921c7d8c12|link to sha]]
[[r:c27dbd5d84dfa9302c47a26196221c921c7d8c12]]
[[url:www.assembla.com/code/<:space>/git/nodes/master|link to head]]
以下是实施中的示例:https://www.assembla.com/code/bobo-titas/git/nodes/867b914329
有关Assembla链接的更多信息,请参阅“创建新的wiki页面”页面。
答案 1 :(得分:1)
没有预定义标记来指定提交哈希值。
Git提交哈希只是十六进制数,所以我猜你只需要/\<[0-9a-fA-f]{4,40}\>/
的正则表达式匹配(最少4位,最多40位)。您还可以检查匹配是否是有效的Git对象(git rev-parse --verify "$match"
)。
似乎GitHub确实有一个特殊的语法。要在其他存储库中指定提交,请使用格式<<username>>/<<repo>>@<<commitHash>>
(详细信息可在问题Github commit message links中找到)。
虽然我个人会避免直接的跨项目提交引用。