git - 从远程 git 存储库中查找最新的 git 标签

标签 git github git-tag

我必须从远程 git 存储库获取最新的 git 标签。 我使用以下命令查找最新标签

git ls-remote --tags xxxxx@xxxx.xxxx.net:xxxx.git |grep "\."|grep -v -|grep -v {| sort -n -t. -k3 -k4

这给了我以下输出

c8be4313ae8261214acb6d3d41f9ece8d47a4ad5    refs/tags/v0.2.1
9e776cff51a8bb15f0539b852a819723d1e37c69    refs/tags/v0.2.2
ee1f173f4e7da0996af9f7c91e0952bec8c2358b    refs/tags/v0.1.3
5d6777bf2b2e5bae41ae9ab966320c691c1f2ee2    refs/tags/v0.1.4
6d3040673330ed763bc0c1a6e6cd5dbc82392d4f    refs/tags/v0.1.5
4afd29dc48805053be911a85c6da6b195e96e786    refs/tags/v0.1.6
8d5cc76d50b153f836561bb933b1f5ad488748d1    refs/tags/v0.1.7
1c0cdebaed828aaef2897c9240b4440898f70766    refs/tags/v0.1.8
683de590ba8d633c801d2628f4d9de58f9de371a    refs/tags/v0.1.9
925797f07cfc94a3af1f56cdabd856e11b222b78    refs/tags/v0.1.10

但我必须找到最新创建的 v0.2.2。我怎样才能找到 latest created tag ( tag with latest created date) 。还有其他方法吗?

最佳答案

您可能需要可访问的最新标签,而不是创建的最新标签:

git describe --tags --abbrev=0

无论如何,以防万一您真的需要创建最后一个标签:

git 确实有两种标签:轻量级标签和注释标签。如果你的标签很轻那么运气不好,你不能这样做,创建日期不会被跟踪。如果您有权访问存储远程仓库的文件系统,那么您可以尝试检查/refs/tags 中文件的时间戳 - 但此信息不一定准确(它只是在该特定仓库中创建标签文件的时间戳)。

然而,对于带注释的标签,您可以获得创建日期;一旦你得到 sha(通过 ls-tree 或其他方式),运行:

git cat-file -p <sha>

显示标记器、消息和创建日期或简单地:

git show <sha>

另外显示引用的提交。

在脚本中使用此信息是可行的(由于日期格式可能不是微不足道的)。

我打算让你引用关于标签的 git 内部描述,但结果是,所有这些信息也在 ProGit, Git Basics - Tagging 上描述。 .

关于git - 从远程 git 存储库中查找最新的 git 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21439488/

相关文章:

git - 如何获取特定 Git 提交的文件 SHA?

git - 从哪里开始使用Pipeline Plugin创建Jenkins Gradle构建

git - 如何将功能分支 merge 到主分支中,以便新的更改也反射(reflect)出来

git - 删除不再在远程存储库中的本地 git 标签

git - 如何列出所有 Git 子模块的 URL?

git - Mercurial 与 GIT 和 SVN 相比如何?

github - Github Markdown 中的差异语法突出显示

r - devtools/GitHub 下载错误

git-tag - 如何使用 GitHub Mac 应用程序标记我的 git 存储库?

git pull --rebase 原始标记名?