git diff 在一个裸仓库上

λq_*_*λq_ 5 git git-diff git-log

我想看看上个月 gitlab 服务器端的 repo 变化了多少

cd /path/to/my/bare/repo.git/
git --git-dir . diff --shortstat "@{1 month ago}"
fatal: Unable to read log 'logs/refs/heads/master': No such file or directory
Run Code Online (Sandbox Code Playgroud)

但是它在本地结帐工作分支中工作正常。

有没有办法在没有太多麻烦的情况下做到这一点?

为了避免 XY 问题:我想通过 Gitlab 服务器上的数百个存储库运行统计数据

Von*_*onC 4

尝试并确保在裸存储库中进行比较时指定两个提交(或者比较将默认为工作树,而工作树在裸存储库中不存在)。

你不需要--git-dir .

但是,在指定修订时使用日期是行不通的,因为它基于,而裸存储库中不存在该日期logs/refs

<refname>@{<date>}, e.g. master@{yesterday}, HEAD@{5 minutes ago}
Run Code Online (Sandbox Code Playgroud)

后跟后缀 @ 的 ref 以及括在大括号对(例如{yesterday}{1 month 2 weeks 3 days 1 hour 1 second ago}{1979-02-26 18:30:00})中的日期规范指定先前时间点的 ref 值。
该后缀只能紧跟在 ref 名称之后使用,并且该 ref 必须具有现有的 log( $GIT_DIR/logs/<ref>)