当要提交的编码有版本更改时,是否可以在SourceTree中自动创建标签?
例如,对于iOS开发,如果CFBundleVersion
更改为12
或CFBundleShortVersionString
更改为1.1.2
,请创建标记v1.1.2-b12
。
对于Android,每次v[versionName]-b[versionCode]
或versionCode
更改时都会创建一个名为versionName
的标记。
答案 0 :(得分:3)
您可以使用post-commit-hook执行此操作,如this blogpost中所述。对于npm package.json文件,您的.git/hooks/post-commit
看起来与此类似:
#! /bin/bash
version=`git diff HEAD^..HEAD -- "$(git rev-parse --show-toplevel)"/package.json | grep '^\+.*version' | sed -s 's/[^0-9\.]//g'`
if [ "$version" != "" ]; then
git tag -a "v$version" -m "`git log -1 --format=%s`"
echo "Created a new tag, v$version"
fi
基本上,您从第一行的plist.info
中获取所需的版本字符串,并在if
- 语句中创建一个新标记。
答案 1 :(得分:1)
查看client hooks,您可以考虑post-commit hook,它会查看最后一次提交git log -p -l,以及它是否检测到CFBundleVersion
或{{1}中的更改创建标记。