如何在 SourceTree 中自动创建标签

How to create tag automatically in SourceTree

是否可以在要提交的编码发生版本更改时在 SourceTree 中自动创建标签?

例如iOS开发,如果CFBundleVersion改为12CFBundleShortVersionString改为1.1.2,创建标签v1.1.2-b12

对于 Android,每次 versionCodeversionName 更改时创建一个名为 v[versionName]-b[versionCode] 的标签。

查看 client hooks, you could consider a post-commit hook,它将查看最后一次提交 git log -p -l,如果它检测到 CFBundleVersionCFBundleShortVersionString 中的更改,则创建标签。

SourceTree won't influence that hook.

您可以使用 post-commit-hook, like described in 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 语句中创建一个新标签。