Git相当于`svn cat`和远程存储库

san*_*iyn 23 svn git

我正在寻找相当于svn catgit.

是的,我知道这里提出了类似的问题.答案是使用git show rev:path.

但是,svn cat可以用于远程存储库.也就是说,我可以svn cat url@rev从远程存储库的指定版本获取文件,而无需获取整个存储库.我的理解是git show只适用于本地存储库.

我找到的解决方法是使用gitweb接口来获取blob.

Rus*_*lva 9

如果您的动机是最小化下载和/或存储在本地磁盘上的数据量,您可以尝试以下命令.

git clone --depth=1 --bare REPO
cd REPO.git
git show HEAD:PATH/TO/FILE
Run Code Online (Sandbox Code Playgroud)

--depth=1意味着您只下载最新版本,而不是任何历史记录. --bare意味着您将下载远程存储库,但实际上不会创建任何工作树,从而节省了本地磁盘上的空间.

请注意,如果您对最新版本以外的文件感兴趣,则上述命令将不起作用,因为它们不会下载任何历史记录.


Rob*_*low 9

git fetch
git show remotes/origin/master:<filename>
Run Code Online (Sandbox Code Playgroud)

显然你的远程分支可能不在remotes/origin/master.


rav*_*avi 8

这是一个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.修改您的需求.


iwe*_*ein 3

另一个线程中提到不可能获取单个文件。因此,唯一的选择是获取远程存储库,或使用其他工具(例如 Web 浏览器)查看文件。

Github 对在线查看文件有很好的支持,如果你想留在命令行上,你可以将其与c​​url 集成。对于其他存储库,可能没有这样的功能。