gpt4 book ai didi

git 钩子(Hook) : ensure each merge into the master has a message also the automatic merges

转载 作者:太空狗 更新时间:2023-10-29 14:46:49 26 4
gpt4 key购买 nike

在我们的部署过程中,最后一步是将发布分支 merge 到主分支中。

我想通过一个钩子(Hook)来确保,这些 merge 中的每一个都需要在提交中有一个手动消息,所以 merge 的人有机会写下这个 merge 将进入 master 的一般更改。又名 Change.log 或发行说明。

到目前为止,我发现我需要的钩子(Hook)是预 merge 。 https://gitorious.org/git/mjg/commit/c15bfac6d3f5a28b3cd5745fef71e7f93bc1f8a4它应该只在 merge 到 master 分支时被激活。我想当发生对 master 的非自动提交时,也应该调用它。

有没有人提示我该怎么做?首选 bash Hook ,但 php 也可以。或者我想从其他语言我可以尝试将这个概念翻译成 bash 或 php。

提前感谢您的任何提示!

最佳答案

正如这里所 promise 的那样,这是我的解决方案。在您的 commit.msg Hook 中传递它并适应您的需求。

#!/bin/bash
# give me the branch I am currently working on
mybranch=`git rev-parse --abbrev-ref HEAD`

# Depending on the branch we do different validation
if [ $mybranch = master ]; then
regex="^[^Merge|^#].{71,}"
message="ERROR: Commit message is too short."
else
regex="^(PMS|GKM)-[0-9]{3,4}\s\:\s.{10,}"
message="ERROR: Commit message is missing the Ticketnumber in the format GKM-nnnn: or PMS-nnnn :."
fi

test "" != "$(grep -E $regex "$1")" || {
cat $1 >&2
echo >&2 $message
exit 1
}

根据分支我选择不同的正则表达式和匹配的错误信息。

这确保对于任何不是 master 的分支,消息都以票号开头。对于 master 分支,我们不需要票号,而是更长的提交消息。

关于git 钩子(Hook) : ensure each merge into the master has a message also the automatic merges,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22297286/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com