【发布时间】:2017-01-26 23:48:57
【问题描述】:
我想利用预提交挂钩来包含 TFS/VSTS 项目编号。该数字可以从 1 到 5 位,提交消息需要看起来像这样#12345: some commit message,TFS 项目编号明确位于开头。那会是什么样子?
谢谢!
TFS:团队基础服务器
VSTS:Visual Studio 团队版本
【问题讨论】:
我想利用预提交挂钩来包含 TFS/VSTS 项目编号。该数字可以从 1 到 5 位,提交消息需要看起来像这样#12345: some commit message,TFS 项目编号明确位于开头。那会是什么样子?
谢谢!
TFS:团队基础服务器
VSTS:Visual Studio 团队版本
【问题讨论】:
我建议你使用prepare-commit-msg git hook。
这些文件位于本地 git 存储库的 /.git/hooks/ 文件夹下。
编辑prepare-commit-msg.sample文件,添加:
#!/bin/sh
ITEM=1234
echo "#($ITEM):`cat $1`" > "$1"
然后删除 .sample 文件扩展名,使这个文件开始工作。
您可以编写一个方法来根据您的要求生成 $ITEM 值。
【讨论】:
通过在prepare-commit-msg 中执行以下操作解决了它:
#!/bin/sh
if [[ $(cat "$1") =~ ^\#[0-9]{1,5}:.+ ]]; then
echo "Your commit message is valid."
else
echo "Your commit message have to be in format '#12345: Message'"
exit 1
fi
这可以防止我在开头没有项目编号的情况下提交任何内容。遗憾的是,Visual Studio 不支持客户端挂钩,因此只有在使用 TortoiseGit 或 SourceTree 等工具或普通的旧 bash 时才可行。
【讨论】: