Git(assembla) - 用于引用提交消息中的先前变更集的语法

时间:2012-09-10 09:38:18

标签: git version-control commit assembla

git是否有任何官方语法可以插入到提交消息中以引用先前的更改集? E.g:

Oops. Adding files accidentally missed out from #7557bd82e2d0c7335319392b4bcb178ce0b9620f

或者Git没有打扰定义这些内容,并将其留给用于显示消息的工具(例如GithubAssembla)?

在哪种情况下,有没有人知道Assembla是否有任何这样的语法,希望将引用转换为该变更集的链接?如果GitHub有这个语法,那么Assembla可能会复制它们......

2 个答案:

答案 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中找到)。 虽然我个人会避免直接的跨项目提交引用。