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

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

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

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

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

Ответы [ 5 ]

14 голосов
/ 03 августа 2011

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

Номер сборки полезен для определения того, на какой сборке вы находитесь относительно некоторой начальной точки. Комбинация 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).

12 голосов
/ 03 августа 2011

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

3 голосов
/ 12 ноября 2014

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

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" 
3 голосов
/ 03 августа 2011

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

проверить http://git -scm.com / book / ru / Настройка-Git-Git-Hooks

1 голос
/ 03 августа 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...