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


当前回答

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

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

其他回答

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

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

这对我来说很管用:

git fetch --all 
git log production/master

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

我正在寻找包含特定提交的远程分支

下面是一个快速脚本,您可以使用它作为示例

spark 
✦ ❯ cat run.sh
for b in $(git branch -r)
do

    hasKryoCommit=$(git log "$b" | grep 3e033035a3c0b7d46c2ae18d0d322d4af3808711)
    if test -n "$hasKryoCommit"
    then
        echo "$b"
    fi
done

spark 
✦ ❯ bash run.sh
origin/HEAD
fatal: unrecognized argument: ->
origin/master
origin/branch-2.4
origin/branch-3.0
origin/branch-3.1
origin/branch-3.2
origin/master

NB。下面的“origin”用于表示克隆存储库的上游,将“origin”替换为远程回购的描述性名称。“remote reference”与“clone”命令格式相同。

git remote add origin <remote reference>
git fetch
git log origin/master

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

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