我有下面的命令,我想通过'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
当我按照凯文回答中的建议尝试以下内容时,我发现了错误:
.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从版本中删除。
我做了另一次检查,删除回购,然后手动启动第一个版本的0.0.1 --现在我确实修改了一个文件并运行了脚本,如果它成功的话,版本现在应该是0.0.2,但是如果它成功的话,我没有得到错误fatal: tag 'v0.0.1' already exists,它解释了凸点不能工作,知道为什么吗?
我想这与代码‘{$NF+=1;OFS=’有关。“;打印$0}‘
发布于 2018-04-04 16:15:47
使用最后一个推送标记,您可以自动增加版本号:
git describe --tags --abbrev=0 | awk -F. '{OFS="."; $NF+=1; print $0}'请记住,您将其存储在变量中,并将其用于tag和push。
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}' -只增加最后一个数字并与“联接”。
.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)https://stackoverflow.com/questions/49655467
复制相似问题