我正在使用Github,并意识到他们有一个很好的小api来访问repit信息,比如提交,谁做了等等。
这是在外部网站上显示项目的先前版本的好方法,但我想知道是否有一种已知的方法可以将版本号添加到主提交中?
因此版本号会随着每次主提交而自动增加,或者我可以手动设置它。
我知道我可以在笔记中添加它,但如果有办法将它分开,我就不熟悉了。
答案 0 :(得分:14)
要考虑两种标记,即内部版本号和版本号。当产品发货时,版本号可以作为标签应用。此标记是历史记录,可识别重要事件(例如,运送产品)。
构建号对于识别相对于某个起点的构建是有用的。 git-tag和git-describe的组合提供了一种生成可嵌入到构建中的构建号的好方法。 git-describe可以使用glob模式定位特定的先前标记。 git describe的结果将格式化为:
tagname-[0-9]+-g[0-9a-f]+
其中第一个模式是来自标记的提交数,第二个模式是当前提交的散列。这可以很好地格式化为内部版本号。包括哈希(至少前7个字符)使得识别与构建相关联的特定提交变得简单。
例如,git describe可以返回release-2.2-42-gd788e0e
。这可以格式化为release-2.2 build 42 (d788e0e)
。
答案 1 :(得分:12)
您可以使用标签设置版本号。您可以阅读有关标记命令on the git tag man page的信息。在工作中,我设置我们的构建服务器以自动增加构建版本号,然后使用标记应用该版本号。我认为这会满足您的需求吗?
答案 2 :(得分:3)
如前所述,检查git-tag命令,你可以将它与一个钩子结合起来,这样它就可以在做某些事情时自动更新,例如推出master。
答案 3 :(得分:3)
我正在使用它:
function git_func {
GITBIN=/usr/bin/git
if [[ $1 == "commit" ]] && [[ "$#" -ne 1 ]]
then
GIT_VERSION=`$GITBIN rev-list HEAD | wc -l`
let GIT_VERSION+=1
perl -e "s/(\d+\.\d+\.)\d+/\${1}$GIT_VERSION/;" -pi.save config.json
rm config.json.save
fi
GITCMD="$GITBIN "
for var in "$@"
do
GITCMD="$GITCMD \"$var\""
done
eval $GITCMD
}
alias git='git_func'
config.json
包含以下内容:
"version": "0.1.44"
答案 4 :(得分:1)