是否可以使用git / github添加版本号

时间:2011-08-03 00:58:45

标签: git github

我正在使用Github,并意识到他们有一个很好的小api来访问repit信息,比如提交,谁做了等等。

这是在外部网站上显示项目的先前版本的好方法,但我想知道是否有一种已知的方法可以将版本号添加到主提交中?

因此版本号会随着每次主提交而自动增加,或者我可以手动设置它。

我知道我可以在笔记中添加它,但如果有办法将它分开,我就不熟悉了。

5 个答案:

答案 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。

结帐http://git-scm.com/book/en/Customizing-Git-Git-Hooks

答案 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)

大多数人都使用git-tag

查看Vagrant ...向下滚动代码,您会看到所有版本。