我正在寻找相当于svn catgit.
是的,我知道这里提出了类似的问题.答案是使用git show rev:path.
但是,svn cat可以用于远程存储库.也就是说,我可以svn cat url@rev从远程存储库的指定版本获取文件,而无需获取整个存储库.我的理解是git show只适用于本地存储库.
我找到的解决方法是使用gitweb接口来获取blob.
如果您的动机是最小化下载和/或存储在本地磁盘上的数据量,您可以尝试以下命令.
git clone --depth=1 --bare REPO
cd REPO.git
git show HEAD:PATH/TO/FILE
Run Code Online (Sandbox Code Playgroud)
--depth=1意味着您只下载最新版本,而不是任何历史记录. --bare意味着您将下载远程存储库,但实际上不会创建任何工作树,从而节省了本地磁盘上的空间.
请注意,如果您对最新版本以外的文件感兴趣,则上述命令将不起作用,因为它们不会下载任何历史记录.
git fetch
git show remotes/origin/master:<filename>
Run Code Online (Sandbox Code Playgroud)
显然你的远程分支可能不在remotes/origin/master.
这是一个hack,您可以使用最新版本的Git从远程仓库(您可以访问Git)获取单个文件,而无需克隆repo:
git archive --remote=git@gitserver.example.com:myrepo master path/to/file1 | tar -xOf - > file1
Run Code Online (Sandbox Code Playgroud)
以上从中获取文件master.修改您的需求.