我正在尝试访问远程存储库上的分支提交历史记录。我看了一下文档,但没有找到任何关于如何使用本地git客户端访问远程回购的提交历史的实质性信息。


当前回答

这里有一个bash函数,可以方便地在远程上查看日志。它有两个可选参数。第一个是分支,默认为master。第二个是远程,它默认为登台。

git_log_remote() {
  branch=${1:-master}
  remote=${2:-staging}
  
  git fetch $remote
  git checkout $remote/$branch
  git log
  git checkout -
}

例子:

 $ git_log_remote
 $ git_log_remote development origin

其他回答

这对我来说很管用:

git fetch --all 
git log production/master

注意,这是从所有远程获取的,也就是说,你可能“不得不克隆2GB的对象,只是为了查看提交日志”。

一个快速的方法是使用——bare关键字进行克隆,然后检查日志:

git clone --bare git@giturl tmpdir
cd tmpdir
git log branch

您只能在本地存储库上查看日志,但是其中可以包括已设置的所有远程的提取分支。

所以,如果你克隆一个回购…

git clone git@gitserver:folder/repo.git

这将默认为origin/master。

你可以添加一个远程到这个回购,除了原点让我们添加生产。在本地克隆文件夹中:

git remote add production git@production-server:folder/repo.git

如果我们想查看生产日志,我们需要做的是:

git fetch --all 

从所有的远程(默认获取没有——ALL将只从原点获取)

获取之后,我们可以查看生产远程上的日志,您还必须指定分支。

git log production/master

所有选项都将像登录本地分支一样工作。

我不确定什么时候添加了过滤,但如果你只想获取历史/ref-logs,这是一种排除对象blobs的方法:

git clone --filter=blob:none --no-checkout --single-branch --branch master git://some.repo.git .
git log

我不相信这是可能的。我相信你必须在本地克隆远程repo,并在它上执行git取回,然后才能对它发布git日志。