我有一个预接收挂钩来验证提交消息,检查它是否在开始时有一个有效的JIRA问题。
但我有一些旧的提交不适合我的模式(很久以前就已经发布了)
示例:
A--B--C--D--E--F
^ ^
| |
| |_ HEAD
origin/master
答:这是我的出生地/主人指向的地方
A,B,C和D:不包含有效提交消息的提交(它们不应该,它们真的很旧)
E和F:他们没事,有效的消息。
当我尝试跑步时:
git push origin HEAD:master
这只是一个快进(所有提交已经在远程存储库中)
我想让我的预接收脚本“检测”它,并且没有尝试验证提交A,B,C,D,E和F的消息。
我的接收前脚本收到3个参数:'A','F'和'refs / heads / master'
我的预接收脚本正在运行:
git rev-list A..F
这将返回A和F之间的提交列表,我将逐个迭代。
感谢。
答案 0 :(得分:1)
使用git log --after=<date>
并根据日期和消息文本进行过滤
某个日期之后的每次提交都应该有Jira问题编号。
答案 1 :(得分:1)
为什么不用git branch --contains
之类的东西测试提交的可达性,只有在通过其他参考文件无法访问时才处理它?</ p>
alreadyPresent=$(git branch --contains ${commit} | wc -l)
if [ ${alreadyPresent} -ne 0 ]
then
echo "${commit} already processed"
else
echo "${commit} needs processing"
fi