我正在寻找一种方法来查询git服务器以获取给定范围的提交的日志。作为一名SVN用户,我的思维方式错误,所以我希望GIT专家可以提供帮助。我正在寻找类似的东西:
svn log -r 5:20 --xml svn.myserver.com
但对于git服务器。换句话说,显示第5次提交到第20次提交的日志。谢谢你的帮助。
答案 0 :(得分:19)
首先,由于Git没有简单的修订号,您可以指定rev-parse command中提到的修订版。
但是直接查询远程仓库(没有克隆或获取数据)的唯一命令是git ls-remote
,并且:
由于log可以显示diffstats和完全差异,因此您无法在不至少在本地仓库中获取远程数据的情况下请求日志。
答案 1 :(得分:6)
我认为你试图从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
来显示尚未在本地合并的新远程提交。 (还有许多其他方法可以指定提交范围;有关更多信息,请参阅the documentation或打开另一个问题。)
git ls-remote
)会针对远程服务器运行,但大多数命令都没有。