有没有简单的方法来“混帐描述”一个远程仓库? [英] Is there a simple way to "git describe" a remote repository?

查看:82
本文介绍了有没有简单的方法来“混帐描述”一个远程仓库?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

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

问题是我不知道 $ tag 是。它应该是 git describe --abbrev = 0 对最新克隆的输出,但是我不知道如何在没有本地化的情况下获取这些信息存储库的克隆。是否有可能做到这一点,而无需做一个本地克隆?

解决方案

唯一可以开始解析标签的方法, 太多到您的本地磁盘,会是:




  • 做一个空的回购

  • 添加远程仓库的远程地址
  • 尝试 git fetch --dry-run



这将加载远程回购的包文件,但是。
我不认为只要查询这些信息就可以下载



我为gitolite回购做了一个例子:

<$在c:/prog/git/g2/.git/ $ b中初始化为空的Git仓库
$ b VonC @ NETVONC / c / prog / git
$ cd g2

VonC @ NETVONC / c / prog / git / g2(master)
$ git远程添加源https://github.com/sitaramc/gitolite.git

VonC @ NETVONC / c / prog / git / g2(master)
$ git fetch --dry-run
remote:计数对象:5114,完成。
remote:压缩对象:100%(1919/1919),完成。
remote:总计5114(delta 3548),重用4664(delta 3142)
接收对象:100%(5114/5114),1.81 MiB |完成722 KiB / s。
解决三角洲问题:完成100%(3548/3548)。
从https://github.com/sitaramc/gitolite
* [新分支] bp-v2.0.3 - > origin / bp-v2.0.3
* [new branch] fedora-temp - > origin / fedora-temp
* [新分支] 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
从https://github.com/sitaramc/gitolite
* [新标签] v0.50 - > v0.50
* [新标签] v0.55 - > v0.55
[...]
* [新标签] v2.0rc2 - > v2.0rc2
* [新标签] v2.1 - > v2.1
^^^^
|
---可能是您需要的标签

如上所述,唯一的痕迹是包装文件,所以至少你可以很容易清理它们,一旦你有你的信息:

  VonC @ NETVONC / c / prog / git / g2(master)
$ l .git / objects / pack /
总计1000
drwxr-xr-x 4 VonC Administ 0 11月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。


I want to execute the following command on a remote server:

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

The problem is I don't know what $tag is. It should be the output of git describe --abbrev=0 on an up-to-date clone, but I don't know how to get that information without making a local clone of the repository. Is it possible to do this without making a local clone?

解决方案

The only way you could start parsing for your tag, without adding too much to your local disk, would be:

  • make an empty repo
  • add the remote address of your remote repo
  • try a git fetch --dry-run

That will load the pack files of the remote repo, though.
I don't think you can just query this information without downloading something.

I have done it for a gitolite repo for instance:

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

As mentioned above, the only traces are the pack files, so at least you can easily clean them once you have your information:

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 .

这篇关于有没有简单的方法来“混帐描述”一个远程仓库?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆