我正在写一个shell脚本,我想查看最新版本的repo.具体来说,我想将这个过程分成多个步骤.
Checking out version: XX
我见过类似的问题,但我没有看到如何将标签的名称保存到变量中(可能是因为我是一个带有shell脚本的菜鸟).
输出git tag
按字母顺序排序.我希望它按时间顺序排序(它们被分配的提交日期,而不是它们被创建的日期),否则输出应该保持不变.
我已经尝试过来自http://networkadmin20.blogspot.de/2010/08/howto-list-git-tags-by-date.html的建议,但订单仍然相同.
为了确保它不是我的存储库的错误,我尝试使用干净的存储库:
soeren@ubuntu ~/Projects/sandbox % mkdir chronogit
soeren@ubuntu ~/Projects/sandbox % cd chronogit
soeren@ubuntu ~/Projects/sandbox/chronogit % git init
Initialized empty Git repository in /home/soeren/Projects/sandbox/chronogit/.git/
soeren@ubuntu ~/Projects/sandbox/chronogit (git)-[master] % touch a
soeren@ubuntu ~/Projects/sandbox/chronogit (git)-[master] % git add a
soeren@ubuntu ~/Projects/sandbox/chronogit (git)-[master] % git commit -m 'a'
[master (root-commit) f88e0e9] a
0 files changed
create mode 100644 a
soeren@ubuntu ~/Projects/sandbox/chronogit (git)-[master] % git tag 'A-first'
soeren@ubuntu ~/Projects/sandbox/chronogit (git)-[master] % git mv a b
soeren@ubuntu ~/Projects/sandbox/chronogit (git)-[master] % …
Run Code Online (Sandbox Code Playgroud) 如何获取工作副本的当前分支或标记名称?我已经看到指示rev-parse --abbrev-ref HEAD
将给出分支名称的引用,但是如果checkout是标记,则这不起作用,在这种情况下它只返回'HEAD'.我需要以某种方式获取这些修订的标记名称.
要清楚,我想要两个可能的名字之一:
有没有办法在git中显示最后N个标签?
我对模式不感兴趣,因为这可能会改变.例如,假设我有这些标签,我想得到最后3个:
v1.0.0
v1.0.1
v2.0.0
v2.1.0
v3.0.0
Run Code Online (Sandbox Code Playgroud)
基于Pro Git似乎无法实现这一点.或者我错过了什么?
我想在构建 Docker 映像时添加一个标签,到目前为止我正在这样做,但我不知道如何获取正在部署的存储库上的最新标签。
docker build -t company/app .
Run Code Online (Sandbox Code Playgroud)
我的目标 docker build -t company/app:$LATEST_TAG_IN_REPO? .