gpt4 book ai didi

git - 如何在没有本地仓库的情况下远程运行 git 命令

转载 作者:IT王子 更新时间:2023-10-29 01:29:55 28 4
gpt4 key购买 nike

我有一个名为“git-export”的脚本,它可以帮助我导出远程存储库。它是这样运行的:

git-export http://host.com/git-repo <-t tag or -b branch or -c commit> /local/dir

在使用它导出本地存储库之前,我使用了这些命令:

从分支获取提交:

git branch -v --no-abbrev|awk '($1=="'$BRANCH'") || ($1 == "*" && $2 == "'$BRANCH'"){if($1 == "*"){print $3;}else{print $2;}}'

git rev-parse -q --verify $BRANCH^{commit}

通过标签获取提交:

git rev-parse -q --verify $TAG^{commit}

我还有脚本来列出标签、版本(标签,以 v 开头),我使用 git branch -v 来显示分支....

问题是:我如何在没有本地的情况下在远程存储库上做这些事情。有没有一些通用的方法来查询远程。例如:git --remote=http://host.com/repo branch -vgit --remote=http://host.com/repo log

Resion: 如果我想在远程主机上安装软件我只想

  1. 列出版本、分支等
  2. 导出特定版本/分支/提交并显示提交的 SHA1,无论我导出其中的哪一个(导出我的意思是 git archive --remote=<repo>|tar x)

编辑:

我不想在远程运行命令。我想通过本地命令使用远程存储库并将其格式化显示。

最佳答案

您正在寻找 git ls-remote .例如:

$ git ls-remote git://git.kernel.org/pub/scm/git/git.git
4d8b32a2e1758236c4c1b714f179892e3bce982c HEAD
f75a94048af9e423a3d8cba694531d0d08bd82b4 refs/heads/html
810cae53e0f622d6804f063c04a83dbc3a11b7ca refs/heads/maint
70b5eebd65f2d47fd69073aed1d3da0f1fd7a017 refs/heads/man
4d8b32a2e1758236c4c1b714f179892e3bce982c refs/heads/master
b9f1b13437fd0b8b1857ffbdebb9e1adc50481f0 refs/heads/next
83a9d3226b19a683a9a783bde0784c2caf19e9a1 refs/heads/pu
2309986900ed1a5744b3a81c507943593000ce32 refs/heads/todo
d5aef6e4d58cfe1549adef5b436f3ace984e8c86 refs/tags/gitgui-0.10.0
3d654be48f65545c4d3e35f5d3bbed5489820930 refs/tags/gitgui-0.10.0^{}
33682a5e98adfd8ba4ce0e21363c443bd273eb77 refs/tags/gitgui-0.10.1
729ffa50f75a025935623bfc58d0932c65f7de2f refs/tags/gitgui-0.10.1^{}
...
(git.git has a lot of tags!)

您可以使用 --heads 将自己限制在分支机构内带有 --tags 的选项或标签选项,或指定一个模式来选择 refs,例如仅查看来自 git.git 的 git 版本标签,git ls-remote <url> refs/tags/v* .或者您可能已经确切地知道您想要什么引用:git ls-remote <url> HEAD .

不过,您不能在任意 Remote 上运行任意命令。传输协议(protocol)不支持这一点——它们旨在支持列出引用和传输对象(通过包)。特别是,您将无法执行类似于 rev-list 的任何操作。 .您将仅限于获取 refs 指向的提交的 SHA1。

关于git - 如何在没有本地仓库的情况下远程运行 git 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5686336/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com