Можно ли добавить номер версии, используя 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"