在没有本地克隆的情况下在远程代码库上进行git操作

5
使用标准的git命令行工具,在没有本地克隆的情况下,可以对远程git存储库进行哪些只读操作?
  • 是否有一种方法可以列出远程存储库中的引用(特别是标签和分支)?
  • 是否有一种方法可以列出给定修订版本中给定目录的内容?
  • 是否可以检索给定修订版本中给定文件的内容?
我猜在没有本地克隆的情况下,这样做可能涉及一些低级原始操作,并且我认为通过一些简短的shell脚本来实现这一点可能是最好的。这仍然在本问题的范围内。

点2和点3取决于你的代码库托管在哪里?GitHub和Visual Studio Online通过REST API提供一些信息。如果您使用ssh访问您的代码库,那么您可能可以运行一些命令等。 - Edward Thomson
@EdwardThomson:对于我在这里提出的问题,我对git工具本身所提供的功能很感兴趣。就我提出这个问题的情况而言,它是一个私有的gitolite服务器,没有附带的gitweb。 - MvG
1个回答

3

有没有一种方法可以在远程仓库中列出引用(特别是标签和分支)?

是的,这就是git ls-remote的作用。

有没有办法列出给定修订版的给定目录中的内容?
是否可以检索给定修订版的给定文件内容?

2012年:但是,除了获取分支和标签之外,我认为您不能在没有克隆(完整克隆稀疏检出浅克隆)的情况下获取内容。
您不能针对特定提交或标记特定分支进行浅克隆

更新于2016年:


你已经更新了你的链接答案,提到了git 1.7.10的--single-branch克隆选项,所以我在这里只是把它放在评论中。(在跟随链接时偶然发现了这个旧答案。 :-) ) - torek
@torek 谢谢。我已经相应地更新了答案。并且我还添加了一个事实,即您实际上可以获取单个提交(而无需克隆整个存储库)。 - VonC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接