git - 有没有简单的方法来 "git describe"远程存储库?

标签 git clone

我想在远程服务器上执行以下命令:

git archive --prefix="$tag/" --remote="ssh://$gitserver/var/git/$repo" "$tag" | tar -xvf-

问题是我不知道$tag 是什么。它应该是 git describe --abbrev=0 在最新克隆上的输出,但我不知道如何在不对存储库进行本地克隆的情况下获取该信息。是否可以在不制作本地克隆的情况下执行此操作?

最佳答案

#!/usr/bin/awk -f
BEGIN {
  FS = "[ /^]+"
  while ("git ls-remote " ARGV[1] "| sort -Vk2" | getline) {
    if (!sha)
      sha = substr($0, 1, 7)
    tag = $3
  }
  while ("curl -s " ARGV[1] "/releases/tag/" tag | getline)
    if ($3 ~ "commits")
      com = $2
  printf com ? "%s-%s-g%s\n" : "%s\n", tag, com, sha
}

示例输出

$ git-describe-remote.awk https://github.com/stedolan/jq
jq-1.4-148-g89791a0

关于git - 有没有简单的方法来 "git describe"远程存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39841164/

相关文章:

git - git merge another-branch 和 git pull remote another-branch 的区别

conda - 克隆 Conda 环境时如何保留修订历史记录?

mysql - 复制表中的所有行并防止重复键

git - 使用 Git 创建跟踪分支的简洁方法

git - 如何将特定提交 merge 到 protected 分支中?

c# - .net 中 DataContract 属性和 Serializable 属性之间的区别

jquery - 克隆后在子级中添加类

javascript - 克隆无法正常工作

git merge into master 仅覆盖更改的文件

Git master 分支 merge 后根本没有新文件