我想通过' makefile'执行以下命令,我想用一个命令执行 我怎么能这样做?
1. git tag -a v0.0.1 -m "new release"
2. git push origin v0.0.1
现在我已经创造了一些可以开始的东西
git:
git add .
git commit -m "$m"
git push origin master
现在我有两个问题,如何解决版本,例如 这是v0.0.1但是对于每个新版本我都需要像第一个那样碰撞它 v0.0.1和下一个版本应该是v0.0.2,它可以以某种方式自动(也许有一些反...)?如果不是,可以将其作为参数添加到一个命令
更新
以下
有好看的回答git describe --tags --abbrev=0 | awk -F. '{$NF+=1; OFS="."; print $0}'
但我应该如何将其与?
更新2
当我在Kevin的回答中尝试以下建议时,我收到了错误:
.PHONY:git
VERSION = git describe --tags --abbrev=0 | awk -F. '{$NF+=1; OFS="."; print $0}'
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
我做了另一次检查,删除了repo并从头开始手动启动第一个版本0.0.1
现在我在一个文件中进行了更改并运行了脚本,现在版本应为0.0.2
成功,但没有我得到错误fatal: tag 'v0.0.1' already exists
,这解释了凹凸不起作用,任何想法为什么?
我猜它与此代码相关`' {$ NF + = 1; OFS ="&#34 ;;打印$ 0}'
答案 0 :(得分:3)
使用最后推送的标签,您可以自动增加版本号:
@ElementCollection(targetClass = Long.class, fetch = FetchType.EAGER)
@CollectionTable(name = "TABLE_A_B", joinColumns = @JoinColumn(name="fk_table_b_id"))
@Column(name = "fk_table_a_id")
private Collection<Long> entityBIds;
请注意,您将其存储在变量中并将其用于git describe --tags --abbrev=0 | awk -F. '{$NF+=1; OFS="."; print $0}'
和tag
:
push
git describe - 显示可以从提交中访问的最新标记
- 标记 - 启用匹配轻量级(非注释)标记。
- abbrev = 0 - 将禁止长格式,仅显示最接近的标记。
awk -F。 - 处理模式使用&#34;。&#34;作为分隔符
<强>&#39; {$ NF + = 1; OFS =&#34;&#34 ;;打印$ 0}&#39; - 只增加最后一个号码并加入&#34;。&#34;
VERSION=`git describe --tags --abbrev=0 | awk -F. '{$NF+=1; OFS="."; print $0}'`
git tag -a $VERSION -m "new release"
git push origin $VERSION