Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有一个简单的方法来;git descripe";远程存储库?_Git_Clone - Fatal编程技术网

有没有一个简单的方法来;git descripe";远程存储库?

有没有一个简单的方法来;git descripe";远程存储库?,git,clone,Git,Clone,我想在远程服务器上执行以下命令: git archive --prefix="$tag/" --remote="ssh://$gitserver/var/git/$repo" "$tag" | tar -xvf- 问题是我不知道什么是$tag。它应该是最新克隆上git descripe--abbrev=0的输出,但我不知道如何在不进行存储库本地克隆的情况下获取该信息。是否可以在不进行本地克隆的情况下执行此操作?在不向本地磁盘添加太多内容的情况下,开始解析标记的唯一方法是: 空头回购 添加远程

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

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

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

在不向本地磁盘添加太多内容的情况下,开始解析标记的唯一方法是:

  • 空头回购
  • 添加远程回购的远程地址
  • 尝试
    git获取--干运行
这将加载远程回购的包文件。
我不认为你不下载东西就可以查询这些信息

例如,我为gitolite回购做过这样的事情:

VonC@NETVONC /c/prog/git
$ git init g2
Initialized empty Git repository in c:/prog/git/g2/.git/

VonC@NETVONC /c/prog/git
$ cd g2

VonC@NETVONC /c/prog/git/g2 (master)
$ git remote add origin https://github.com/sitaramc/gitolite.git

VonC@NETVONC /c/prog/git/g2 (master)
$ git fetch --dry-run
remote: Counting objects: 5114, done.
remote: Compressing objects: 100% (1919/1919), done.
remote: Total 5114 (delta 3548), reused 4664 (delta 3142)
Receiving objects: 100% (5114/5114), 1.81 MiB | 722 KiB/s, done.
Resolving deltas: 100% (3548/3548), done.
From https://github.com/sitaramc/gitolite
 * [new branch]      bp-v2.0.3  -> origin/bp-v2.0.3
 * [new branch]      fedora-temp -> origin/fedora-temp
 * [new branch]      gh-pages   -> origin/gh-pages
 * [new branch]      master     -> origin/master
 * [new branch]      pu         -> origin/pu
 * [new branch]      temp-br--data-dumper-problem-demo -> origin/temp-br--data-dumper-problem-demo
 * [new branch]      vrs        -> origin/vrs
 * [new tag]         v2.1       -> v2.1
From https://github.com/sitaramc/gitolite
 * [new tag]         v0.50      -> v0.50
 * [new tag]         v0.55      -> v0.55
[...]
 * [new tag]         v2.0rc2    -> v2.0rc2
 * [new tag]         v2.1       -> v2.1
                                   ^^^^
                                    |
                                    --- could be the tag you need
如上所述,唯一的跟踪是包文件,因此,在获得信息后,至少可以轻松清理它们:

VonC@NETVONC /c/prog/git/g2 (master)
$ l .git/objects/pack/
total 1000
drwxr-xr-x    4 VonC     Administ        0 Nov  8 19:45 ..
-r--r--r--    1 VonC     Administ  1898987 Nov  8 19:46 pack-c70771bc8a5ecc099ed88da0c3f631f84b34fe9d.pack
-r--r--r--    1 VonC     Administ   144264 Nov  8 19:46 pack-c70771bc8a5ecc099ed88da0c3f631f84b34fe9d.idx
drwxr-xr-x    2 VonC     Administ     4096 Nov  8 19:46 .
#/usr/bin/awk-f
开始{
FS=“[/^]+”
while(“git ls remote”ARGV[1]“| sort-Vk2”| getline){
如果(!sha)
sha=substr($0,1,7)
标签=$3
}
while(“curl-s”ARGV[1]”/releases/tag/“tag | getline)
如果($3~“承诺”)
com=$2
printf com?”%s-%s-g%s\n:“%s\n”,标记,com,sha
}
样本输出

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

git ls remote
绝对是您想要的+1.这是一个非常酷的脚本,它在命令行上运行得非常好。。。但是我不能在我的项目中使用awk。所以我想提取它的含义
tag=$3
应该等于标记名,不带refs/tags/前缀,对吗?curl-s一直告诉我
找不到
好吧,我明白了,我希望完整的html不是预期的那样。但您只需在本版本的完整github.com html中查找$3是“提交”的行,并选择提交的数量。好吧谢谢