首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Shell脚本- Bump版本自动git

Shell脚本- Bump版本自动git
EN

Stack Overflow用户
提问于 2018-04-04 15:55:12
回答 1查看 7.9K关注 0票数 6

我有下面的命令,我想通过'makefile‘用一个命令执行,我怎么做呢?

代码语言:javascript
复制
1. git tag -a v0.0.1 -m "new release"
2. git push origin v0.0.1

现在我创造了一些开始

代码语言:javascript
复制
git:
    git add .
    git commit -m "$m"
    git push origin master

现在我有两个问题,如何解决这个版本,例如,这里是v0.0.1,但是对于每一个新的版本,我需要它的第一个版本是v0.0.1,下一个版本应该是v0.0.2,它能以某种方式实现自动(可能有一些计数器.)吗?如果不是,可以将其作为参数添加到一个命令中。

  1. git标签-a v0.0.1 -m“新版本”
  2. git推送原点v0.0.1

更新

下面的答案看起来很好

代码语言:javascript
复制
git describe --tags --abbrev=0 | awk -F. '{$NF+=1; OFS="."; print $0}'

但我该怎么把它和?

  1. git标签-a v0.0.1 -m“新版本”
  2. git推送原点v0.0.1

更新2

当我按照凯文回答中的建议尝试以下内容时,我发现了错误:

.PHONY: git

VERSION=git describe --tags --abbrev=0 | awk -F. '{$NF+=1; OFS="."; print $0}'

代码语言:javascript
复制
git:
    git add .
    git commit -m "$m"
    git push origin master
    git tag -a $(VERSION) -m "new release"
    git push origin $(VERSION)

的错误是: fatal: tag 'ERSION' already exists,它似乎是不工作的颠簸,并且它以某种方式将v从版本中删除。

我做了另一次检查,删除回购,然后手动启动第一个版本的0.0.1 --现在我确实修改了一个文件并运行了脚本,如果它成功的话,版本现在应该是0.0.2,但是如果它成功的话,我没有得到错误fatal: tag 'v0.0.1' already exists,它解释了凸点不能工作,知道为什么吗?

我想这与代码‘{$NF+=1;OFS=’有关。“;打印$0}‘

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-04 16:15:47

使用最后一个推送标记,您可以自动增加版本号:

代码语言:javascript
复制
git describe --tags --abbrev=0 | awk -F. '{OFS="."; $NF+=1; print $0}'

请记住,您将其存储在变量中,并将其用于tagpush

代码语言:javascript
复制
VERSION=`git describe --tags --abbrev=0 | awk -F. '{OFS="."; $NF+=1; print $0}'`
git tag -a $VERSION -m "new release"
git push origin $VERSION

解释:

git描述-显示可通过提交访问的最新标记。

--标记--允许匹配轻量级(无注释)标记。

--缩写为0--将抑制长格式,只显示最近的标记。

awk -F. -进程模式使用".“作为分隔符

‘{OFS=“。”;$NF+=1;打印$0}' -只增加最后一个数字并与“联接”。

makefile

代码语言:javascript
复制
.PHONY: git

git:
    $(eval VERSION=$(shell git describe --tags --abbrev=0 | awk -F. '{OFS="."; $$NF+=1; print $0}'))
    git add .
    git commit -m "$m"
    git push origin master
    git tag -a $(VERSION) -m "new release"
    git push origin $(VERSION)
票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49655467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档