我正在寻找一种方法来查询git服务器的日志,以获取给定的提交范围.作为一名SVN用户,我的思维方式错误,所以我希望GIT专家可以提供帮助.我正在寻找类似于:
svn log -r 5:20 --xml svn.myserver.com
Run Code Online (Sandbox Code Playgroud)
但对于一个git服务器.换句话说,显示第5次提交到第20次提交的日志.谢谢你的帮助.
Von*_*onC 19
首先,由于Git没有简单的修订号,您可以指定rev-parse命令中提到的修订版.
但是直接查询远程仓库(没有克隆或获取数据)的唯一命令是git ls-remote,和:
由于log可以显示diffstats和完全差异,因此您无法在不至少在本地仓库中获取远程数据的情况下请求日志.
我认为你试图从Subversion转移一些对git无效的假设.Git是一个分散的版本控制系统,因此所有¹命令都针对存储库的本地克隆而不是针对远程服务器.另外,在git中,没有一个单一的线性提交历史记录,因此您需要指定SHA-1提交ID; 你不能简单地使用修订号.
要获取日志,必须首先将提交传输到存储库的本地克隆,然后您可以查询它们.
如果尚未克隆远程存储库,则需要运行git clone REMOTE_URL.或者,如果您要使用辅助远程服务器,则可以git remote add ALIAS OTHER_REMOTE_URL在现有存储库中运行.
然后,您需要使用git fetch origin(或者git fetch ALIAS如果您已添加辅助远程服务器)获取提交.
完成后,您可以列出提交(在远程存储库中的分支上)git log origin/master~5..origin/master(例如,显示最后五次提交).或者您可以运行git log master..origin/master以显示尚未在本地合并的新远程提交.(还有许多其他方法可以指定提交范围;有关更多信息,请参阅文档或打开另一个问题.)
git ls-remote对远程服务器运行,但大多数命令不运行.