Можно ли добавить номер версии, используя git / github

Я использую Github, и понял, что у них есть хороший маленький API для доступа к информации репо, такой как коммиты, кто это сделал и т. Д.

Это был бы отличный способ показать предыдущие версии проекта на внешнем сайте, но мне было интересно, есть ли известный способ добавить номер версии в основной коммит?

Таким образом, номер версии будет автоматически увеличиваться с каждым генеральным коммитом, или я могу установить его вручную.

Я знаю, что могу добавить это в заметки, но я не знаю, есть ли способ отделить это.

5 ответов

Решение

Вы можете использовать тег для установки номера версии. Вы можете прочитать о команде tag на странице руководства git tag. На работе я настраиваю наш сервер сборки для автоматического увеличения номера версии сборки, который затем применяется с помощью тега. Я думаю, что это будет соответствовать вашим потребностям?

Есть два вида тегов: номер сборки и номер версии. Номер версии может применяться человеком в качестве тега при поставке продукта. Этот тег является историческим и определяет важные события (например, отправка товара).

Номер сборки полезен для определения того, на какой сборке вы находитесь относительно некоторой начальной точки. Комбинация git-tag и git-description обеспечивает хороший способ генерации номера сборки, который можно встроить в сборку. git-description может найти определенный предыдущий тег с шаблоном глобуса. Результаты описания git будут отформатированы как:

tagname-[0-9]+-g[0-9a-f]+

Где первый шаблон - это количество коммитов из тега, а второй шаблон - это хэш текущего коммита. Это может быть красиво отформатировано в номер сборки. Включение хэша (по крайней мере, первых 7 символов) упрощает определение конкретного коммита, связанного со сборкой.

Например, git description может вернуть release-2.2-42-gd788e0e, Это может быть отформатировано, чтобы стать release-2.2 build 42 (d788e0e),

Как было сказано ранее, проверьте команду git-tag, и вы можете комбинировать ее с ловушкой, чтобы она автоматически обновлялась при выполнении определенной операции, например, при выталкивании мастера.

проверить http://git-scm.com/book/en/Customizing-Git-Git-Hooks

Я использую это:

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" 

Большинство людей используют для этого git-tag.

Проверьте Vagrant... прокрутите вниз теги, вы увидите все версии.

Другие вопросы по тегам