如何在 git 挂钩中获取当前项目目录?

How do I get current project directory inside a git hook?

我的 flutter 项目目录中有一个预提交挂钩 运行。

#!/bin/sh

cd D: || exit
cd AndroidProjects/json_test/ || exit

flutter pub run 

具体如下。我在项目目录的本地终端中 运行 git 命令(git 提交),所以 D:AndroidProjects/json_test/> git commit 然后执行挂钩。

有没有办法让我 运行 git 提交项目路径,直接挂钩,而不用在里面硬编码?

正如the githooks documentation所说:

Before Git invokes a hook, it changes its working directory to either $GIT_DIR in a bare repository or the root of the working tree in a non-bare repository.

(阅读链接文档以了解例外情况。)

因此,您可以检查当前工作目录以找到工作树的顶层,假设是非裸存储库。