有没有一种简单的方法可以从远程裸 git 存储库(最好通过 SSH 或 git:// 协议)获取文件或目录列表?
背景
我正在尝试从 SVN 迁移到 Git,我们有一些进程通过 DAV 直接从树深处的 Subversion 存储库下载文件(wgethttp://服务器/svn/分支/生产/dir1/文件)。我需要在 git 中复制此行为,但我认为如果不检出(并保持更新)由 apache 指向的远程工作目录,这是不可能的。
我看到了,git ls-remote git@server:repo.git
但我不认为你可以深入了解实际文件。
我意识到这样做不是最好的方法,并且我也愿意接受关于如何处理需要树中特定文件的进程的其他想法。
答案1
我认为实现你想要的效果的唯一方法是在本地维护更新的 git 树(尽管我可能错了,如果错了的话,有人会纠正我)。
您使用 SVN 所做的其实是一种黑客行为——如果您使用的是 svnserve 而不是 SVN-over-HTTP/DAV,我不认为您能够做到这些。您为 SVN 使用的软件融合恰好使这成为可能。我能
想到的最接近的类比是自动更新的 git 存储库,位于可通过 HTTP 访问的目录中,这是一个非常糟糕的解决方案。
答案2
您尝试过git show
( git show hash:filename
) 吗?这绝对适用于本地存储库,并且可能远程工作。