Kor*_*tor 43 git command-line maven mavanagaiata
我目前正在使用三个命令的集合来获取当前标记,分支以及最近提交的日期和SHA1.
git describe --always --tag
git log -1 --format="%H%n%aD"
git rev-parse --abbrev-ref HEAD
Run Code Online (Sandbox Code Playgroud)
这将输出如下内容:
1.2.3-5-gdeadbeef
deadbeef3b8d90071c24f51ac8f26ce97a72727b
Wed, 19 May 2010 09:12:34 +0200
master
Run Code Online (Sandbox Code Playgroud)
说实话,我对此完全没问题.但是我正在使用Maven的这些命令以及之前使用过Maven的人,知道外部命令会让POM膨胀多少.我只想减少我的pom.xml,可能会减少执行时间.
Jee*_*eet 52
git log非常灵活,有很多很多选择.您可能无法重现上述三个命令的确切输出,但您可能已经足够接近以达到所需的效果.
例如:
git log --pretty=format:'%ad %h %d' --abbrev-commit --date=short -1
Run Code Online (Sandbox Code Playgroud)
生成最新(HEAD)提交的日期,SHA-1和符号引用(包括标记):
2010-05-20 45bd5e7(HEAD,origin/master)
之后,据推测,sed和/或awk或者Maven本地方法可以进行微调/抛光.请注意,特定标记与特定提交相关联,因此如果它是HEAD之前的三个提交,例如标记为"v1.0.0",则您不会看到"v1.0.0"显示为以上.
提供提交的succint描述的更简单的单个命令是:
git describe
Run Code Online (Sandbox Code Playgroud)
写出最新的适用标记,自标记提交以来的提交数量以及SHA1:
v3.3.0-46-g71a77dc
我对Maven一点也不熟悉,并且不知道运行外部进程有多么容易/困难,所以我不确定以下是否有任何帮助,但我想我可能会提到它以防万一.
为了您在autoconf/automake框架中描述的确切目的,即标记构建,我实际上使用了类似的东西:
BUILDTAG="`git symbolic-ref HEAD 2> /dev/null | cut -b 12-`-`git log --pretty=format:\"%h\" -1`"
Run Code Online (Sandbox Code Playgroud)
它产生适合于程序路径末尾的东西:
主c5282ff
更广泛的描述,适合作为注释或打印标识符包括:
BUILDDESC="$(git symbolic-ref HEAD 2> /dev/null | cut -b 12-)-$(git log --pretty=format:'%h, %ad' -1)"
Run Code Online (Sandbox Code Playgroud)
产生类似的东西:
master-c5282ff,Fri Mar 12 22:19:51 2010 -0600
我认为git log,可能与文本处理工具/方法结合使用可以获得您想要的效果.
Pet*_*mer 10
我不使用Maven,所以我不知道你是如何调用这些命令的,但是向git添加自定义命令相当简单.
创建一个名为git-tbc的脚本,如下所示:
#!/bin/bash
git describe --always --tag
git log -1 --format="%H%n%aD"
git rev-parse --abbrev-ref HEAD
Run Code Online (Sandbox Code Playgroud)
确保git-tbc在你的PATH中,你现在可以调用"git tbc".这是你在找什么?
| 归档时间: |
|
| 查看次数: |
30110 次 |
| 最近记录: |