如何编写python pre-push来检查提交消息?

时间:2018-04-27 20:52:35

标签: python git githooks

我知道我可以使用commit-msg hook来检查消息(我这样做了)但是我希望在推送之前再次检查消息并使用不同的标准。

.git / hooks下给出的示例是用shell脚本编写的,但是我希望编写一个python脚本,我想到的字符串操作更复杂。

我知道我可以将第一行更改为#!/usr/bin/env python。我的问题是,我不知道如何获得最新提交的消息字符串。我试验了git rev-list(在该示例的第44行),但它没有给我消息字符串,它需要提交哈希id。请注意,消息字符串可能是多行的(因为第一行最多限制为50个字符)。

EIDT :其他问题询问如何在Python中编写预推脚本,但它们不涉及检查消息字符串。

1 个答案:

答案 0 :(得分:0)

pre-push hook传递了本地/远程引用和提交ID(sha1)的列表,因此您必须逐行读取它们,拆分并获取本地提交ID。 See如何在shell脚本中完成。

拥有提交ID,您可以使用命令

提取完整的提交消息
var text = "lorem";
var HTMLString = '<div class="tagsingle" title="delete">'+ text +'</div>';
$(HTMLString).appendTo('#tagstore') // Notice the wrapping $()

在Python中它类似于:

git show --format='%B' -s $SHA1