git diff 无法在裸仓库上工作,post-receive hook

git diff not working on a bare repo, post-receive hook

我正在研究一个 post-receive 挂钩在一个裸仓库上。 我想获取在这个裸仓库中更改和推送的文件名(只有最新的)。 为了得到它,我正在使用这个命令。

git diff --name-only HEAD^

当我推送到 bare repo 时,这给了我错误。

remote: fatal: This operation must be run in a work tree

我知道裸仓库中没有工作树所以这个命令失败了但是如何得到这个运行?

我相信您正在寻找的命令是 git diff --name-only HEAD^ HEAD。这会将 "current" 提交与之前的提交进行比较。