有没有办法在git仓库中浏览和显示文件而不先克隆它?我可以使用命令在svn中执行这些操作:
svn ls /path/to/repo svn cat /path/to/repo/file-in-repo
我可以使用git show但是做:
git show /path/to/repo git show HEAD:/path/to/repo
结果
fatal: Not a git repository
jkp.. 71
您想要的命令git ls-remote
允许您获取有关远程存储库的一些信息,但您无法显示历史记录或列表目录或该级别的任何内容:实质上它只允许您在非常高级别查看远程对象(您可以看到例如当前的HEAD和标签).
做你想要的唯一真正的方法(如果我理解正确)将是使用ssh运行远程命令并返回结果,例如:
ssh me@otherhost "cd repo && git log -n 10"
你想要的是可爱的功能,如果他们可以添加它,但从我读到它不是很容易,因为获取历史记录等需要很多信息是git的本地信息,那时你也可以做一个git fetch .
您想要的命令git ls-remote
允许您获取有关远程存储库的一些信息,但您无法显示历史记录或列表目录或该级别的任何内容:实质上它只允许您在非常高级别查看远程对象(您可以看到例如当前的HEAD和标签).
做你想要的唯一真正的方法(如果我理解正确)将是使用ssh运行远程命令并返回结果,例如:
ssh me@otherhost "cd repo && git log -n 10"
你想要的是可爱的功能,如果他们可以添加它,但从我读到它不是很容易,因为获取历史记录等需要很多信息是git的本地信息,那时你也可以做一个git fetch .
Git是分布式版本控制系统,而Subversion是集中式(客户端 - 服务器)版本控制系统.他们的工作不同; 习惯了.请在StackOverflow上阅读我的答案,解释这种差异对git等效svn status -u
问题的影响.
重复一点:在集中式版本控制系统(如CVS或Subversion)中,几乎所有命令都在服务器上处理,并涉及网络.在本地执行的命令非常少.请注意,要获得"svn status"和"svn diff"的良好性能,Subversion会在客户端上存储已签出版本的"原始副本",而不必为这些常见操作涉及网络传输(这意味着Subversion checkout = 2 x至少工作目录的大小).
在分布式版本控制系统(如Git,Mercurial或Bazaar)中,您拥有整个存储库的本地副本(克隆),几乎所有命令都在客户端上执行.很少有命令需要网络连接到其他存储库(到服务器).
您可以在服务器上执行的命令数量有限.
您可以使用" git ls-remote
您可以使用
" git archive --remote =
您只能使用
" git clone --depth = 1
如果服务器向存储库提供git web界面,则可以使用它进行浏览.
请查看http://git-scm.com/book/en/Git-Internals-Transfer-Protocols,了解有关如何通过某些传输协议执行此操作的信息.请注意,这不适用于SSH上的标准git.
对于通过SSH的git,最新的服务器端git应该允许你直接从远程git-archive,然后你可以管道到"tar t"获取给定提交中所有文件的列表.
GitHub兼容svn,因此您可以使用svn ls
svn ls https://github.com/user/repository.git/branches/master/
BitBucket支持git存档,因此您可以下载tar存档并列出存档文件.效率不高但有效:
git archive --remote=git@bitbucket.org:repository HEAD directory | tar -t